Сборка ядра

Добрый день, очень плохо представляю что это и как это делается, но есть огромное желание узнать.
Подскажите где можно хорошее описание для этой операции прочитать можно
http://wiki.archlinux.org/index.php/Spe … ext=Search
Разберемся, голубчик!
1. Ставим abs: sudo pacman -S abs
2. Получаем PKGBUILDs: sudo abs core/kernel26; sudo abs core/kernel26-firmware
3. высталяем свои права на папку local: sudo chown `whoami`:users /var/abs/local
4. Копируем папки /var/abs/core/kernel26 и /var/abs/core/kernel26-firmware в /var/abs/local
5. Заходим в папку/var/abs/local/kernel26-firmware и собираем и устанавливаем пакет: makepkg -ifc (если версия ядра совпадает с установленным, можно пропустить этот шаг)
6. Заходим в папку /var/abs/local/kernel26 и редактриуем PKGBUILD (для того чтобы сперва сконфигурировать ядро):
надо раскомментировать строки:
..  
  # load configuration
  # Configure the kernel. Replace the line below with one of your choice.
  #make menuconfig # CLI menu for configuration
  make gconfig # X-based configuration (я указал gconfig вместо xconfig потому что у меня GTK+ а не QT3)
  #make oldconfig # using old config from previous kernel version
  # ... or manually edit .config
  ####################
  # stop here
  # this is useful to configure the kernel
  msg "Stopping build"
  return 1  #(принудительно останавливаем процесс компиляции)
  ####################
..
На самом деле это грязный хак, но делается он один раз, для того чтобы получить свой .config, так что не страшно. :)

Запустится программа для конфигурации ядра, внимательно конфигурируем его под свои нужды. (Руководство - http://l4u.jinr.ru/docs/add04/kernel-2. … .0.html#34 слегка устаревшее но понятное).

После этого сохраняем в удобное место файл .config

7. Прибираемся: новый .config записываем поверх стандартного. В файле PKGBUILD возвращаем все на место, и добавляем новый md5-хэш нашего нового файла .config вместо стандартного. Удаляем подпапку srс.

Шаги 6-7 нужны только для того чтобы получить свой .config, в дальнейшем будет достаточно скопировать свой .config в папку, и разкомментировать make oldconfig в PKGBUILD, если версия ядра будет другой.

8. Светлый миг компиляции ядра ;D : makepkg -ifc .
У меня время компиляции занимает от трех часов (стандартное ядро без конфигурации) до 38 минут (сконфигурированное.). Чем больше ядер и герцов, тем быстрее все пройдет.

Если используются пропреоритатные драйвера на видео например Nvidia: обязательно сразу же после установки ядра необходимо перекомпилировать и драйвера на видео:
sudo abs extra/nvidia-…xx (тут ваш номер драйвера); sudo abs extra/nvidia-…xx-utils;
копируем их в local и потом в каждом из них make -ifc.

Теперь можно перезагрузится, если все впорядке - загрузится новое ядро и X-ы будут работать.

Hint: не забывайте в /etc/makepkg.conf указать опции компиляции под ваше ядро:
у меня Athlon XP, мой /etc/makepkg.conf без комментариев:
cat makepkg.conf | grep -v “^#” | grep “.”
DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
          'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
          'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
          'rsync::/usr/bin/rsync -z %u %o'
          'scp::/usr/bin/scp -C %u %o')
CARCH="i686"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
BUILDENV=(fakeroot !distcc color !ccache !xdelta)
OPTIONS=(strip !docs libtool emptydirs zipman)
INTEGRITY_CHECK=(md5)
DOC_DIRS=(usr/{,share/}{info,doc,gtk-doc} opt/*/{info,doc,gtk-doc})
STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
BUILDSCRIPT='PKGBUILD'
PKGEXT='.pkg.tar.gz'
SRCEXT='.src.tar.gz'
DB_COMPRESSION='gz'
DB_CHECKSUMS=(md5)

Комментарии и упрощения приветсвуются.
Nebulosa
Комментарии и упрощения приветсвуются.
Я в блоге описывал более простой способ сборки ядра под арч: сборка ядра
Господа, возможно я чего то не понимаю но зачем такие сложности?АБС и все последующие телодвижения?я делаю так.качаю исходники ванильного ядра перехожу в эту папку запускаю make menuconfig конфигурю как надо после чего make ,когда ядро скомпилится пишу make modules_install install. На этом собственно все,потом только в menu.lst прописываю это ядро и все.
kernel_panic
Господа, зачем такие сложности?
А если заглянуть в PKGBUILD ядра?

Арч-патчи ядра:
http://projects.archlinux.org/git/?p=li … ;a=summary
Разберемся, голубчик!
Ну во-первых централизованно, во-вторых получается пакет, который зело удобней чем простая компиляция с установкой.

Потом при компиляции ядра через ABS ядро патчится, фирмвари добавляются, ну и потом mkinitcpio отрабатывает.

Вообще превращать захламлять систему программами которые компилируются и устанавливаются прям так, без оформления в пакет, считаю кощунственным :) ABS настолько прост, что можно и нужно любые программы оформлять в пакеты, чтобы потом быстро и безболезненно удалять или обновлять их. Это вам не rpm или deb-ки собирать, все предельно просто и этим нужно пользоваться.
Amigo
А если заглянуть в PKGBUILD ядра?

Арч-патчи ядра:
http://projects.archlinux.org/git/?p=li … ;a=summary
Может вы расскажете мне что же за патчи и чем они полезны,почитал вроде но ничего толкового для себя не вынес.Пропатчить бы я и без ABS смог.Mkinitcpio у меня нет(ядро без initrd).Если честно признаться ABS никогда не пользовался (зря наверно) так как все что надо есть в репах ну изредка из AUR ставлю пакеты.Ан нет вру,один раз по первости ставил его,хотел AWN и его плагины собрать AWN собрал поставил а вот плагины он собирать не хотел как я не бился,поэтому для меня ABS сгорел на костре давно.И вдогонку:чтоже за железо надо иметь чтоб ядро 37 минут компилилось? у меня за 7минут компилится (Core2Duo)
Я в блоге описывал более простой способ сборки ядра под арч: сборка ядра
Ну по сути тоже самое, только у меня получается, что я сперва патчу ядро, потом настраиваю конфигурацию, насколько это важно даже не знаю.. :)

kernel_panic
Amigo
А если заглянуть в PKGBUILD ядра?

Арч-патчи ядра:
http://projects.archlinux.org/git/?p=li … ;a=summary
Может вы расскажете мне что же за патчи и чем они полезны,почитал вроде но ничего толкового для себя не вынес.Пропатчить бы я и без ABS смог.Mkinitcpio у меня нет(ядро без initrd).Если честно признаться ABS никогда не пользовался (зря наверно) так как все что надо есть в репах ну изредка из AUR ставлю пакеты.Ан нет вру,один раз по первости ставил его,хотел AWN и его плагины собрать AWN собрал поставил а вот плагины он собирать не хотел как я не бился,поэтому для меня ABS сгорел на костре давно.И вдогонку:чтоже за железо надо иметь чтоб ядро 37 минут компилилось? у меня за 7минут компилится (Core2Duo)
Кроме того что вы собираете не арчевское ядро(а это по сути разные сборки), а ванильное, разницы особо нету как вы это делаете - с ABS или нет. PKGBUILD-ы это теже обычные скрипты для компиляции плюс проверка зависимостей для успешной компиляции, да проверка целостности пакетов исходников (иногда эти простые вещи могут съэкономить немало времени и нервов.) Через ABS я собираю также wine и xorg-server под свой процессор, выжимаю из сборок еще несколько попугаев :D Модель своего процессора уже я написал, Athlon XP 2000.

Меня вот интересует вопрос как можно собирать ядро без initrd, и как его потом запускать и прочее, поделитесь ссылками и инструкцией пожалуйста.
D.Evsyukov
Nebulosa
Комментарии и упрощения приветсвуются.
Я в блоге описывал более простой способ сборки ядра под арч: сборка ядра

Самое лучшее что я видел, спасибо! :D
 
Зарегистрироваться или войдите чтобы оставить сообщение.