Ручная сборка ядра
Итак, вы решили собрать своё ядро. Это позволит вам уменьшить время загрузки системы, включить необходимую функциональность или удалить неиспользуемую.
переходим в режим администратора
$ su -
или
$ sudo -i
Первым делом устанавливаем исходные коды ядра
на моей машине с gentoo это делается так:
# emerge -vp gentoo-sources
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.30-r1 [2.6.29-r3] USE="-build -symlink" 58,068 kB
Total: 1 package (1 in new slot), Size of downloads: 58,068 kB
# emerge -q gentoo-sources
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) sys-kernel/gentoo-sources-2.6.30-r1
>>> Installing (1 of 1) sys-kernel/gentoo-sources-2.6.30-r1
* Messages for package sys-kernel/gentoo-sources-2.6.30-r1:
* If you are upgrading from a previous kernel, you may be interested
* in the following document:
* - General upgrade guide: http://www.gentoo.org/doc/en/kernel-upgrade.xml
* GNU info directory index is up-to-date.
Это новое ядро имеет впечатляющий changelog
Теперь обновляем ссылку /usr/src/linux
# eselect kernel --list
Available kernel symlink targets:
[1] linux-2.6.18-xen-r12
[2] linux-2.6.29-gentoo-r1
[3] linux-2.6.29-gentoo-r3 *
[4] linux-2.6.30-gentoo-r1
# eselect kernel --set 4
и идём в /usr/src/linux
# cd /usr/src/linux
Конфигурирование нового ядра
Запускаем menuconfig
# mkdir /root/2.6.30
# make O=/root/2.6.30 menuconfig
Но перед тем как начать ручную конфигурацию, я рекомендую создать конфигурационный файл с опциями по-умолчанию
make O=/root/2.6.30 defconfig
И уже потом менять только те настройки, в значении которых уверенны. Это поможет избежать лишних ошибок.
Несколько слов о том как пользоваться интерфейсом:
навигация осуществляется с помощью стрелок. <enter> переводит во вложенное меню, <y> включает опцию, <n> - выключает, <m> - включает как модуль. <?> - вызывает справку, </> - поиск <пробел> - активирует выбранный элемент.
Меню
General setup - основные настройки
Enable loadable module support - настройка загрузки модулей
Enable the block layer - блочные устройства
Processor type and features - настройки связанные с процессором
Power management and ACPI options - управление питанием и ACPI
Bus options (PCI etc.) - опции шин(PCI)
Executable file formats / Emulations - форматы исполняемых файлов
Networking support - опции поддержки сети
Device Drivers - драйвера устройств
Firmware Drivers - Firmware драйвера
File systems - настройка файловых систем
Kernel hacking - дополнительные настройки ядра
Security options - безопасность
Cryptographic API - шифрование
Virtualization - виртуализация
Library routines - дополнительные библиотеки
Расставляем в нужных местах галочки(в первый раз этот процесс займёт довольно много времени) и сохраняем конфиг
Собираем
# make O=/root/2.6.30
устанавливаем
# make O=/root/2.6.30 install
# make O=/root/2.6.30 modules_install
если /boot находится на отдельном разделе, то перед установкой нужно примонтировать его
# mount /boot
Перезагружаем машину
# init 6
Если загрузка прошла нормально значит всё сделали правильно
Если же возникли проблемы, то возвращаем старое ядро и повторяем настройку с начала.
Проверить версию загруженного ядра можно командой
# uname -a