Всем привет! Мне необходимо пондять сеть на микро линуксе, проблема заключается в том что драйвер не стартует. Название драйвера smc91x. Сетку поднимаю на отладочной плате 2C35 с ПЛИС CycloneII фирмы Альтера, разработчик рекомендует его делать встроеным (такой способ приведё у них в WiKi и на форуме), но у меня ничего не выходит, так же как и с модулем.
Компилируя модуль, драйвер компилится, на выходе получается файл smc91x.ko.
Кладу его в папку /usr (мне так удобне),
далее в файле modprobe.conf добавляю строку alias eth0 smc91x.
В заголовке исходника драйвера написано что ему нужно передать три аргумента: базовый адрес, прерывание и время ожидания.
Добавляю в modprobe.conf строку options smc91x io=0x300(подсмотрел из загрузки линукса скомпилинного производителем) irq=6 (знаю точно) nowait=0 (по умолчанию).
Затем в папке /usr делаю depmod -a smc91x.ko он у меня ругается на расположение файла, переношу его в /lib/modules/2.6.34 делаю depmod -a smc91x.ko. Никакого вывода не происходит (пробовал разные ключи), я так понял что зависимостей нет?
Делаю modprobe smc91x в ответ SEGV, так же был вариант - не поддерживаемый тип файла
Пробую insmod smc91x.ko - драйвер добавляется
lsmod
module smc91x size 21706 used 0
Пробую ifconfig eth0 up в ответ SIOCGIFFLAGS: no such device
В module_init и ещё несколько функций драйвера добавил свой printk, но не один ничего не вывел. Такое ощущение что он грузится в память, но управление ему не передается.
Если делать драйвер встроенным всё компилится, в файле который содержит названия встроенных модулей (не помню его название) имя нужного драйвера есть. Передаю параметры через kernelargs netdev=6,0x300,0x30f,0,eth0 в соответсвии с доком на параметры моего ядра, т.к. моему драйверу надо три параметра то лишние откинутся (я так предпологаю, точно не уверен)
Суть в том что драйвер молчит в обоих случаях. Подскажите куда копать? Может в ядре поддержу чегото ещё включить/убрать?
ПРИЛОЖЕНИЯ:
На скриншоте лог с нормальной загрузкой драйвера при старте образа от Альтеры