Пересборка ядра на Debian EEE

Опыт сборки ядра linux у меня напрочь отсутствует, в связи с этим я решил восполнить этот, поистине, недостойный пробел в образовании и поизучать вопрос.

Активное поскуливание в листе рассылке debian eee дало примерно следующий сценарий:

1. Устанавливаем пакет исходных текстов ядра с версией, совпадающей с версией текущего ядра. Посмотреть можно командой

uname -a

в командной строке.

2. После чего запускаем конфигуратор ядра командной

make menuconfig

Попадаем в весьма понятное меню настроек опций. Вообще-то говоря я особо не страдал головой и свистнул вот этот конфиг ядра.

3. После того, как настройка выполнена, в текущей директории появится файл конфигурации ядра.

Дальнейшие действия описаны в документации по  Debian. Необходимо собрать deb-файл c поддержкой initrd (использовать соответствующую опцию). Внимание ! Для сборки ядра лучше использовать «большой» компьютер. Если на нем не установлен Debian, то можно установить его на виртуальную машину. 

После сборки ядра нужно будет собрать еще

  • Драйвера сетевого интерфейса
  • Драйвера WiFi из пакета madwifi
  • Драйвер видеокамеры
  • Драйвер ACPI

Важное замечание ! При сборке make-файлы нужно подправить так, чтобы использовались header-файлы от вышеописаного ядра !! Иначе модули НЕ загрузятся. 

Собранные файлы перекидываем на  eee, устанавливаем deb через команду dpkg -i имя_пакета. После этого до перезагрузки закидываем файлы модулей в соотв. ядру директорию modules. Можно перегружаться, после логина в систему можно выполнить команду depmod -a.

В идеале все должно работать. Если не работает — пробуем вручную загрузить модули командой modprobe имя_модуля. Посмотреть модули можно командой lsmod. Эти команды выполняются под суперпользователем.
Зачем вообще пересобирать ядро ? В моем случае потребовалось включить 2 фичи — usb persistent (об этом ниже) и usb sleep (или как оно там — вобщем в конфигах лежит рядом с usb persistant). Последний нужен для того, чтобы «засыпать» порты usb, устройства на которых в данный момент неактивны. Обещают, что это сэкономит целый 1 ватт энергии.

Опция же USB_PERSISTANCE позволит держать порт включенным — это критично при использовании встроенного кардридера, если часть системы живет на нем или он используется для пространства подкачки.

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

Я черпал мудрость из форума на http://eeeuser.com. Ниже приложена копия  треда форума (в качестве документации) + патч для ядра 2.6.хх + скрипт включающий/выключающий фичу.

Копия треда

Патч ядра

Скрипт, включающий-выключающий USB persistant

 

Реклама

Обсуждение закрыто.

%d такие блоггеры, как: