Зададимся целью: собрать "универсальное" ядро, чтобы потом им делиться с друзьями, знакомыми, да и самим спокойно портировать куда угодно ;)
Для начала ставим пакеты fakeroot, kernel-package, libncurses5-dev:
Затем берём нужный архив с kernel.org и сливаем и распаковываем его в /usr/src (берём для примера ядро 2.6.31.4).
располагаться они будут в /usr/src.
Нам остаётся их только установить через dpkg:
Конфигурация к GRUB'у должна будет выполниться автоматически, равно как и собраться initrd.
Финальный шаг:
Для начала ставим пакеты fakeroot, kernel-package, libncurses5-dev:
aptitude install fakeroot kernel-package libncurses5-devВсе зависимости будут подтянуты автоматом...
Затем берём нужный архив с kernel.org и сливаем и распаковываем его в /usr/src (берём для примера ядро 2.6.31.4).
$ cd /usr/src $ sudo -s # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.4.tar.bz2 # tar xjf linux-2.6.31.4.tar.bz2 # if [ -d linux ]; then rm linux; fi; ln -s linux-2.6.31.4 linux # cd linuxТут есть один момент. Так как у нас уже есть рабочее ядро в установленной системе то, если не хотим выставлять все галочки в конфигурации нового ядра с нуля, берём готовый config либо из /boot либо из /proc:
# cp /boot/config-$( uname -r ) .config # zcat /proc/config.gz > .configВ итоге имеем предварительную заготовку к конфигурации нашего нового ядра. Теперь конфигурируем ядро под специфические для нас цели, либо добавляем опции для новых модулей, либо... Одним словом - творчество:# make menuconfigТут инетресно будет ответить, что если мы сразу-же выйдем из меню, то можем увидеть что-то подобное этому:.config:903:warning: symbol value 'm' invalid for RFKILL_INPUT .config:2920:warning: symbol value 'm' invalid for DRAGONRISE_FF .config:2937:warning: symbol value 'm' invalid for GREENASIA_FF .config:2939:warning: symbol value 'm' invalid for THRUSTMASTER_FF .config:2940:warning: symbol value 'm' invalid for ZEROPLUS_FFимеет смысл найти эти опции при конфигурировании нового ядра и посмотреть что да к чему... Кстати, если кому интересно под X-ами заниматься конфигурированием, то может сделать так:# make xconfigВажно! Не забываем сказать "Kernel module loader" в "Loadable module support", так как возможны варианты. Ну всё. Пимпочки поотмечали, кнопочки понажимали, из окошек вышли, новый конфиг сохранили, теперь приступим к сборке. Для начала сделаем:# make-kpkg cleanЕсли до этого сборка не производилась, то увидим что-то наподобие этого:exec make kpkg_version=12.021 -f /usr/share/kernel-package/ruleset/minimal.mk clean ====== making target minimal_clean [new prereqs: ]====== This is kernel package version 12.021. test ! -f .config || cp -pf .config config.precious test ! -e stamp-building || rm -f stamp-building test ! -f Makefile || \ make ARCH=i386 distclean make[1]: Entering directory `/usr/src/linux-2.6.31.4' CLEAN scripts/basic CLEAN scripts/kconfig CLEAN include/config CLEAN .config .config.old include/linux/autoconf.h make[1]: Leaving directory `/usr/src/linux-2.6.31.4' test ! -f config.precious || mv -f config.precious .config rm -f modules/modversions.h modules/ksyms.ver scripts/cramfs/cramfsck scripts/cramfs/mkcramfsНу, а теперь, собственно, собираем ядро:# fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_imageog.091015.00 - означает лишь ревизию нашей сборки. Может быть любой - у кого насколько фантазии хватит :) После того как предыдущая команда нормально выполнится, можно также дать такой "джентельменский набор":# fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_headers # fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_manual # fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_doc # fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_sourceПосле этого получим набор из следующих deb-пакетов:
- linux-image-2.6.31.4_og.091015.00_i386.deb
- linux-headers-2.6.31.4_og.091015.00_i386.deb
- linux-manual-2.6.31.4_og.091015.00_all.deb
- linux-doc-2.6.31.4_og.091015.00_all.deb
- linux-source-2.6.31.4_og.091015.00_all.deb
располагаться они будут в /usr/src.
Нам остаётся их только установить через dpkg:
# cd /usr/src # dpkg -i ./linux-image-2.6.31.4_og.091015.00_i386.debи т.д.
Конфигурация к GRUB'у должна будет выполниться автоматически, равно как и собраться initrd.
Финальный шаг:
# reboot
Немає коментарів:
Дописати коментар