Pull to refresh

Ubuntu Developer Week: Пакуем модули ядра с DKMS

Reading time 2 min
Views 5.2K
Краткая компиляция irc-чата в рамках Ubuntu Developer Week на тему «Packaging Kernel modules with DKMS»

Пакуем модули ядра с DKMS. Докладчик: уже известный нам Ben Collins

Смотрю я на список материалов январского Ubuntu Developer Week и глаз радуется. Много хорошего материала было рассмотрено в добровольно-принудительном общении разработчиков с комьюнити. Начнем сегодня с разговора о ядерных модулях и одном замечательном фреймворке для ухода за ними.

DKMS — это, по мнению докладчика, программа, позволяющая легко управлять исходниками модулей и автоматически собирать их с требуемой версией ядра. В основном эту систему используют те, кто нуждается в сторонних модулях для дистрибутивного ядра. Еще DKMS используют с модулями от производителей железа, содержащих в себе бинарные или закрытые части (broadcom, fglrx, nvidia).

Ну что сказать, казалось бы интересная тема абсолютно не вызвала ажиотажа у слушателей. Бен дал ссылку на свою презентацию, вкратце рассказал о 2х технических нюансах и на этом все закончилось.
Ни единого вопроса.

Ок, пока качается видео ролик презентации от Бена, рассмотрим тему сами. У меня как раз есть в системе подходящий модуль на роль подопытного. Ядро моей Убунты не содержит драйвера веб-камеры ноутбука, поэтому пройдем все этапы его сборки с применением DKMS.

Устанавливаем сам фреймворк:
sudo aptitude install dkms
Смотрим что у нас есть:
dkms status
Получаем исходники драйвера прямо из апстрима:
sudo git clone repo.or.cz/r/microdia.git /usr/src/microdia-v2009.01
Создаем по шаблону конфигурацию:
sudo cp /usr/share/doc/dkms/sample.conf /usr/src/microdia-v2009.01/dkms.conf
Затем редактируем:
sudo vim /usr/src/microdia-v2009.01/dkms.conf
Приводим dkms.conf к следующему виду:
PACKAGE_VERSION="v2009.01"
PACKAGE_NAME="microdia"

MAKE[0]="make -C ${kernel_source_dir} SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build modules"
CLEAN="make -C ${kernel_source_dir} SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean"

BUILT_MODULE_NAME[0]="sn9c20x"
DEST_MODULE_LOCATION[0]="/kernel/drivers/media/video/usbvideo/"

REMAKE_INITRD="no"
AUTOINSTALL="yes"

Делаем 1-2-3:
sudo dkms add -m microdia -v v2009.01
sudo dkms build -m microdia -v v2009.01
sudo dkms install -m microdia -v v2009.01

Смотрим на статус:
dkms status
Проверяем работоспособность:
sudo ls /lib/modules/`uname -r`/updates/dkms
sudo modprobe sn9c20x
ls -l /dev/video0
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:device=/dev/video0 -vo xv


Теперь ждем когда очередное обновление ядра Jaunty протестирует эту автосборку. А пока радуемся рабочей веб-камере и не забываем, что у Дебиана(а значит и Убунту) есть родной module-assistant для подобных целей.

Начиная с этого поста, буду публиковать в Убунтариум, а то прошлые заметки об Open Week многие не увидели.
Tags:
Hubs:
+12
Comments 3
Comments Comments 3

Articles