вівторок, 26 серпня 2008 р.

Драйвери Asus NX1001

В ніч з суботи на неділю була сильна гроза, внаслідок чого "накрилася" мережева плата, яка давала інет на локальну мережу. Після недовгих роздумів та пошуку грошей, вирішено купити мережеву плату Asus NX1001. Рішення прийшло в магазині, тим паче, що на упаковці гордо значилося, що мережева підтримується Лінаксом.
Завести з рідних драйверів мені цей чудо-агрегат не вдалося, компілятор мабуть був не в настрої, і відправив мене думати:

nx1001_main.c:228: error: expected ‘)’ before string constant
nx1001_main.c:229: error: expected ‘)’ before string constant
nx1001_main.c:230: error: expected ‘)’ before string constant
nx1001_main.c:231: error: expected ‘)’ before string constant
nx1001_main.c: In function ‘netdev_open’:
nx1001_main.c:924: warning: ‘deprecated_irq_flag’ is deprecated (declared at include/linux/interrupt.h:66)
nx1001_main.c:924: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
nx1001_main.c: In function ‘sundance_init’:
nx1001_main.c:1928: warning: implicit declaration of function ‘pci_module_init’
make[2]: *** [/home/distr/Drivers/Asus_Net/nx1001_main.o] Error 1


Швидкий пошук у гуглі показав, що мережева підтримується лише для ядер серії 2.4.x. Для ядер серії 2.6.х виробник рекомендував самому допиляти драйвер (от Вам і Асус).
Власне помилка, яку довелося виправляти є досить банальною. Дана мережева (якщо я правильно зрозумів опис у файлі) підтримується на рівні ядра модулем sundance. Однак перезбирувати ядро самому було ліньки, а тому я вирішив поправити таки модуль, взявши за основу модуль ядра 2.6.х (яке використовую на сервері).
Загалом невелика правка дозволила запустити драйвер у ролі модуля.
Завантажити правлену версію драйвера (працює з ядром 2.6.22) можна звідси.

Процес встановлення полягає в наступному (працює для Debian)
make all
sudo cp nx1001.ko /lib/modules/$(uname -r)/kernel/drivers/net
sudo modprobe nx1001

Далі прописуємо у /etc/modules рядок
nx1001
і насолоджуємося з'єднанням.

А можна просто перезібрати ядро (якщо у Вас нестандартне), включивши туди підтримку мережевої плати sundance.

Немає коментарів: