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

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

Непрочитанное сообщение skeletor » 2008-09-19 11:02:43

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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

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

Непрочитанное сообщение zingel » 2008-09-19 12:40:31

можно, но только с сурсами иначе фря не поймёт

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

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

[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 и добавить кросс-ссылку в конфиг ядра.

говорим дяде Зингелю спасибо.
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

Непрочитанное сообщение skeletor » 2008-09-19 13:08:22

Положил его в /boot/modules, которое для сторонних модулей, собственно, и предназначено. Всё работает.

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

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

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

Непрочитанное сообщение zingel » 2008-09-19 13:13:20

я буду не первый кто такую статью напишет, нет нужды в этом, в инете полно линков, вот к примеру, в гугле набирите, я просто свой опыт описал

write kernel module freebsd
Z301171463546 - можно пожертвовать мне денег