Ручная настройка - сложный и трудоемкий процесс, но зато она позволяет понять как работает ваша система, какие функции используются и создать ядро с минимально нужным набором функций под свои потребности. Мы рассмотрим только главные шаги, которые нужно выполнить чтобы ядро собралось и заработало. Со всем остальным вам придется разбираться самому опираясь на документацию ядра. Благо в утилите настройки для каждого параметра есть обширная документация которая поможет вам понять какие еще настройки нужно включить.
Начнем. Для запуска меню настроек ядра linux наберите:
$ make menuconfig
Откроется вот утилита с интерфейсом ncurses:
Как видите, некоторые обязательные опции уже включены, чтобы облегчить вам процесс настройки. Начнем с самых основных настроек. Чтобы включить параметр нажмите y, чтобы включить модулем - m, для перемещения используйте клавиши стрелок и Enter, возвратиться на уровень вверх можно кнопкой Exit Откройте пункт General Setup.
Здесь устанавливаем такие параметры:
Local Version - локальная версия ядра, будет увеличиваться при каждой сборке на единицу, чтобы новые ядра при установке не заменяли собой старые, устанавливаем значение 1.
Automatically append version information to the version string - добавлять версию в название файла ядра.
Kernel Compression Mode - режим сжатия образа ядра, самый эффективный lzma.
Default Hostname - имя компьютера, отображаемое в приглашении ввода
POSIX Message Queues - поддержка очередей POSTIX
Support for paging of anonymous memory -включаем поддержку swap
Control Group support - поддержка механизма распределения ресурсов между группами процессов
Kernel.config support и Enable access to.config through /proc/config.gz - включаем возможность извлечь конфигурацию ядра через /proc/config.gz
Здесь все, возвращаемся на уровень вверх и включаем Enable loadable module support, эта функция разрешает загрузку внешних модулей,дальше открываем его меню и включаем:
Module unloading - поддержка отключения модулей
Forced module unloading -принудительное отключение модулей
Опять возвращаемся назад и открываем Processor type and features:
Processor family (Opteron/Athlon64/Hammer/K8) - выбираем свой тип процессора.
Опять возвращаемся и переходим в раздел File systems, тут установите все нужные галочки.
Обязательно включите The Extended 3 (ext3) filesystem и The Extended 4 (ext4) filesystem - для поддержки стандартных ext3 и ext4 файловых систем
Возвращаемся и идем в Kernel hacking.
Здесь включаем Magic SysRq key - поддержка магических функций SysRq, вещь не первой необходимости, но временами полезная.
Остался еще один пункт, самый сложный, потому что вам его придется пройти самому. Device Drivers - нужно пройтись по разделам и повключать драйвера для своего оборудования. Под оборудованием я подразумеваю нестандартные жесткие диски, мышки, USB устройства, веб-камеры, Bluetooth, WIFI адаптеры, принтеры и т д.
Посмотреть какое оборудование подключено к вашей системе можно командой:
$ lspci
После выполнения всех действий ядро готово к сборке, но вам, скорее всего, предстоит разобраться с очень многим.
Чтобы сохранить настройки переместите указатель с помощью стрелок вправо-влево, з позиции Select в позицию Save и нажмите Enter, потом еще раз подтвердите сохранение:
Чтобы выйти нажмите пару раз кнопку Exit.
Сборка ядра Linux
После завершения всех приготовлений может быть выполнена сборка ядра linux. Для начала процесса сборки выполните:
$ make && make modules
Теперь можете идти пить кофе или гулять, потому что процесс сборки длинный и займет около получаса.
Установка нового ядра
Когда ядро и модули будут собраны новое ядро можно устанавливать. Можно вручную скопировать файл ядра в папку загрузчика:
$ cp arch/x86_64/boot/bzImage /boot/vmlinuz
А можно просто выполнить установочный скрипт, сразу установив заодно и модули:
$ sudo make install && sudo make modules_install
После установки не забудьте обновить конфигурацию загрузчика Grub:
$ grub-mkconfig -o /boot/grub/grub.cfg
И перезагружаем компьютер чтобы увидеть новое ядро в работе:
$ sudo reboot
Выводы
Вот и все. В этой статье мы подробно рассмотрели как собрать ядро Linux из исходников. Это будет полезно всем желающим лучшие понять свою систему, и тем, кто хочет получить самую новую версию ядра в своей системе. Если остались вопросы, задавайте комментарии!