Показ дописів із міткою мережева плата. Показати всі дописи
Показ дописів із міткою мережева плата. Показати всі дописи

середа, 7 березня 2012 р.

Network-Manager та автоматичне вимкнення бездротового адаптера

Уже декілька разів стикався з тим, що нові дистрибутиви включають типово режим „у літаку“. Спроби відключити його через графічну утиліту не завжди приводять до успіху, а тому доводиться лізти в термінал, що для недосвідченого користувача є суцільним жахіттям. Насправді все не так страшно, як виглядає, просто потрібно трішки більше знати про обладнання на якому працюємо.

Основними засобами для перевірки параметрів мережевого з’єднання є утиліти ifconfig, iwlist та rfkill (пакунки net-tools, wireless-tools та rfkill, які в принципі є встановлені). Перша - налаштовує мережеві адаптери, друга - дозволяє сканувати мережі, третя - показує поточний стан мережевого безпровідного адапетра. Але про все по-порядку.

Перш за все, слід дізнатися модель мережевого адаптера. Для цього існує утиліта сканування PCI-пристроїв lspci (для USB-пристроїв lsusb відповідно). Її запуск видає повний перелік пристроїв, які наявні у системі, який я скоротив до прийнятного розміру. Мережевий адаптер для безпровідних мереж, який нас цікавить виділено товстим шрифтом. Важливо не сплутати його із Ethernet controller, який теж є мережевим адаптером, але для дротових мереж.

$ lspci
01:00.0 VGA compatible controller: ATI Technologies Inc Madison [Radeon HD 5000M Series]
01:00.1 Audio device: ATI Technologies Inc Redwood HDMI Audio [Radeon HD 5600 Series]
02:00.0 Network controller: Ralink corp. RT3090 Wireless 802.11n 1T/1R PCIe
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

Якщо пристрій відсутній у даному переліку, можливо його просто немає, а тому слід переконатися, що він підключений. Оскільки Network-Manager керує даним адаптером, то він найбільш ймовірним він є деактивованим, що можна перевірити командою ip link:
$ ip link
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 60:eb:69:6d:c5:58 brd ff:ff:ff:ff:ff:ff
3: wlan0: mtu 1500 qdisc mq state UP qlen 1000
    link/ether e0:2a:82:12:df:7d brd ff:ff:ff:ff:ff:ff
4: vboxnet0: mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff

Як згадувалось вище, за допомогою утиліти rfkill можна управляти блокуванням безпровідного адаптера. Одним з параметрів є list, задача якого, друк списку поточних адаптерів та статусів блокування :
$ rfkill list
0: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
32: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no


Інформація про безпровідний пристрій має наступні поля, які розділені двокрапкою: індекс пристрою, фізичну адресу, опис.
З цих полів індекс використовується при доступі до окремого елементу пристрою. М’яке та жорстке блокування є відповідно програмним та апаратним блокуванням.
У тому випадку, коли rfkill показує щось на кшалт Hard blocked: yes слід шукати відповідну кнопку на ноутбуці, яка вмикає адаптер. Після цього, запуск команди iwlist scan повинен вивести на екран (терміналу) перелік доступних Wi-Fi мереж. Якщо такий перелік є, а Network-Manager не показує перелік доступних мереж, ймовірною є проблема конфлікту кількох модулів бездротових адаптерів.

Перегляд списку адаптерів дозволяє виявити проблематичний модуль. Напр.:
0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
2: acer-wireless: Wireless LAN
    Soft blocked: yes
    Hard blocked: no

3: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

Конфліктуючим пристроєм є acer-wireless, а відповідним модулем - acer_wmi. Для того, щоб його видалити з системи назавжди треба додати відповідний запис до теки /etc/modprobe.d/<назва_файлу>.conf, який буде містити один рядок:
blacklist acer_wmi

вівторок, 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.