среда, 24 сентября 2008 г.

Сборка ядра в Дебиан

Сразу замечание: троеточие в названиях пакетов, файлов и т.д. заменяют версии, т.е. вместо троеточия предполагается версия с которой вы работаете.

Для сборки ядра нам понадобятся:
  • Собственно, исходники ядра: linux-source-...
  • Компилятор: gcc-...
  • Утилита make
  • Утилита сборки пакетов ядра: kernel-package
  • Всё, что утилита сборки еще попросит. :) В моем случае для сборки утилиты конфигурирования ядра понадобились libgtk2.0-dev, libglib2.0-dev и libpango1.0-dev
После установки всего этого в папке /usr/src появится архив linux-source-....tar.bz2 его нужно распаковать здесь же... Исходники ядра должны оказаться в папке /usr/src/linux-source-...

Далее открываем консоль в папке с исходниками ядра и для запуска программы конфигурации набираем в ней из-под рута:
  • для GTK-оболочки: make gconfig
  • для QT-оболочки: make xconfig
  • для консольной ncurces-оболочки: make menuconfig
Если программа сразу не собралась, то вниательно читаем сообщения и ставим пакеты, которые просят, не забывая при этом, что нужны нам пакеты с суффиксом -dev, т.к. программа конфигурации именно собирается, а не просто запускается.

После удачного запуска конфигуратора настраиваем систему. На этом этапе, если вы захотите что-то кардинально поменять, делайте это осторожно! Читайте комментарии к опциям, скорее всего, там есть внятное объяснение и если вы не знаете, что ответить, то в комментариях можно найти ответ по-умолчанию, подходящий в большинстве случаев. Не отключайте модули работы с типом файловой системы, в которую отформатирована корневая система... сами знаете к чему это приведет. Из общих настроек (General setup) можно выделить одну полезную опцию, которая при сборке пригодится: "Local version - append to kernel release" - она позволяет задать некоторый суффикс, добавляемый к версии ядра. Полезна будет эта опция, если вы захотите установить несколько ядер одинаковой версии, но собранных по-разному (например, официальное и собственноручно собранное). Лучше именно так и сделать, иначе можно с первого раза собрать ядро так, что система не загрузится вообще и чтобы попасть обратно в рабочую систему, придется изрядно попотеть. Поэтому впишите лучше сюда что-нибудь вроде tuned.

Далее настраиваем ядро по собственному вкусу и по потребностям. Тут углублюсь в решение насущных проблем и зафиксирую пару полезных (для меня) опций. Для работы встроенной в ноутбук камеры нужно включить:
Device Drivers
-Multimedia Devices
--Video Capture Adapters
---V4L USB Devices
----USB Video Class (UVC)
Для работы индикатора Wi-Fi (у меня карта Intel Corporation PRO/Wireless 3945ABG) нужно включить:
Device Drivers
-Network device support
--Wireless LAN
---Intel PRO/Wireless 3945ABG/BG Network Connection
----Enable LEDS features in iwl3945 driver
После настройки сохраняем конфиг и выходим из конфигуратора, попадаем снова в консоль.

Далее, опять-таки из-под рута, выполняем следующее:
make-kpkg --initrd linux_image
и наслаждаемся сборкой ядра. Приготовьтесь к довольно длительному ожиданию.

После сборки в каталоге выше (/usr/src) появится deb-пакет именуемый linux-image-....deb
Ставим его командой из-под рута:
dpkg -i linux-image-....deb
Перезагружаемся.

Если вы указали суффикс к версии ядра, то выбираем из списка соответствующее ядро и грузимся. Если же суффикс указан не был, то новое ядро просто заменит предыдущее.

Теперь можно пользоваться.
В следующих постах расскажу, как вместе с ядром собирать еще и драйвер видеокарт Nvidia, чтобы не переустанавливать его после каждой сборки ядра.

Комментариев нет: