Страница 1 из 1

Как собрать ядро с поддержкой стороннего модуля?

Добавлено: 2008-09-19 11:02:43
skeletor
Есть сторонний модуль aacu64.ko для поддержки RAID\SAS контроллера Adaptec 5805. ОС FreeBSD 6.3 AMD x64. Модуль подгружаю через loader.conf. Но потребовалось пересобрать ядро, и после пересборки пришлось опять копировать модуль aacu64.ko в папку с модулями (/boot/kernel). Можно ли как-то включить готовый модуль, что бы ядро собралось с ним? Или обязательно нужны исходники модуля? Если только через исходники, то куда их запихнуть?

Re: Как собрать ядро с поддержкой стороннего модуля?

Добавлено: 2008-09-19 12:40:31
zingel
можно, но только с сурсами иначе фря не поймёт

Создаём папку

Код: Выделить всё

[root@zingel /]#mkdir -p /usr/local/black && cd /usr/local/black
копируем туда исходники модуля

Код: Выделить всё

[root@zingel /usr/local/black]# ls
black.c               black.o         device_if.h     machine
Makefile        black.c~             bus_if.h       
делаем make

Код: Выделить всё

[root@zingel /usr/local/black]#make  && ls
@               black.c         black.kld       black.o         device_if.h     machine
Makefile        black.c~        black.ko        bus_if.h        export_syms
копируем модуль

Код: Выделить всё

[root@zingel /usr/local/black]# cp black.ko /boot/kernel/
добавляем в /boot/loader.conf строку

Код: Выделить всё

[root@zingel /usr/local/black]# echo 'black_enable="YES"' >> /boot/loader.conf
проверяем

Код: Выделить всё

[root@zingel /usr/local/black]# kldload ./black.ko
[root@zingel /usr/local/black]# 
[root@zingel /usr/local/black]# kldstat -v | grep black
 7    1 0xccc90000 2000     black.ko
                226 black
[root@zingel /usr/local/black]# kldunload black
[root@zingel /usr/local/black]#
в мейкфайле должно быть

Код: Выделить всё

[root@zingel /usr/local/black]# cat Makefile
SRCS=black.c
KMOD=black

.include <bsd.kmod.mk>
Если хочется портировать в само ядро при сборки всей фри, то нужно проделать тоже самое в папке /usr/src/sys/modules и добавить кросс-ссылку в конфиг ядра.

говорим дяде Зингелю спасибо.

Re: Как собрать ядро с поддержкой стороннего модуля?

Добавлено: 2008-09-19 13:08:22
skeletor
Положил его в /boot/modules, которое для сторонних модулей, собственно, и предназначено. Всё работает.

Zingel - большое спасибо за помощь в случае исходников. Может оформите как статью и в раздел статьи? Довольно познавательная вышла статья.

Re: Как собрать ядро с поддержкой стороннего модуля?

Добавлено: 2008-09-19 13:13:20
zingel
я буду не первый кто такую статью напишет, нет нужды в этом, в инете полно линков, вот к примеру, в гугле набирите, я просто свой опыт описал

write kernel module freebsd