Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Шелезяки —> Atheros AR5007EG

Победа разума над бездушным железом

Автор: lissyara.


Дано: Ноутбук Toshiba L40-139 с wifi-карточкой Atheros AR5007EG на борту.
Надо: Заставить ее работать в FreeBSD :)

pciconf поведал мне, что у этой карточки card
0x7128144f, chip 0x001c168c

То есть это самая обычная Atheros-карточка. Но увы, при загрузке я вижу следующее:
ath0: <Atheros 5424/2424> mem 0xff2f0000-0xff2fffff irq 17 at device 0.0 on pci2
ath0: unable to attach hardware; HAL status 13
device_attach: ath0 returned 6

На опеннетовском форуме нашел рекомендацию обновить Atheros HAL. Скачал с http://people.freebsd.org/~sam/ath_hal-20070428.tgz, обновил. Те же грабли.

Ладно, подумал я, давайте попробуем через хваленый ndisrwapper. Качаю виндовый драйвер, собираю модуль через ndisgen и получаю вот что:

# kldload ar5211_sys.ko
no match for ZwDeleteKey
no match for ZwOpenKey
no match for ZwCreateKey
no match for IoOpenDeviceRegistryKey
ndis0: <Atheros AR5006X Wireless Network Adapter> mem
0xff2f0000-0xff2fffff irq 17 at device 0.0 on pci2
ndis0: NDIS API version: 5.1
ntoskrnl dummy called...

fatal trap 9: general protection fault while in kernel mode
instruction pointer = 0x20:0xc55966db
stack pointer = 0x28:0xe7374a42
frame pointer = 0x28:0xc4fb8000
code segment = base 0x0, limit 0xffff, type 0x1b, DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL=0
current process = 859 (kldload)
trap number = 9
panic: general protection fault

"Если ничего не помогает - пишите разработчику". Sam Leffler ответил, что поддержки этой карточки еще нет в HAL, но разработчикам madwifi вроде бы был отправлен бинарный патч. И посоветовал посмотреть у них на сайте.

В конце концов квест был пройден :) Итак, пошаговое решение:

1. Скачиваем последний снапшот madwifi и нужный патч к нему, как описано в http://madwifi.org/ticket/1679 :
http://snapshots.madwifi.org/madwifi-ng/madwifi-ng-r2756-20071018.tar.gz
http://madwifi.org/attachment/ticket/1679/madwifi-ng-0933.ar2425.20071130.i386.patch

2. Распаковываем и патчим:
tar xzvf madwifi-ng-r2756-20071018.tar.gz
patch -p0 < madwifi-ng-0933.ar2425.20071130.i386.patch

3. Удаляем содержимое каталога /usr/src/sys/contrib/dev/ath

4. Копируем в этот каталог содержимое каталога hal из пропатченного нами дистрибутива madwifi.

5. Редактируем файл ah_desc.h - удаляем строчку
#include "opt_ah.h"

6. Пересобираем ядро.

==========
Cтатья отсюда, опубликована по просьбе автора - techni[X], он же разрабочик Frenzy.



размещено: 2008-01-09,
последнее обновление: 2008-01-09,
автор: lissyara


BlackHat, 2008-01-12 в 19:27:23

Забавно, но кажись эту статейку я видел в блоге, украинца, который Frenzy делает.

lissyara, 2008-01-12 в 19:42:59

походу, последнюю строчку статьи ты не осилил?

BlackHat, 2008-01-12 в 20:37:58

Да ладно, я ее в блоге ее прочел, здесть так только по заголовку посмотрел, думаю непорядок :)

smilealex, 2008-01-13 в 22:31:17

Супер! Победа коллективного разума над грудой холодного.. не разогретого железа))

FreePascal, 2008-01-28 в 16:04:41

FreeBSD 7.0-PRERELEASE #0: Mon Jan 28 13:04:30 EET 2008
Ядро собралось при условии что #include "opt_ah.h" удалять не нужно!!!

Ashim, 2008-03-15 в 19:29:46

Респект за размещение статьи, 2 часа секса и ноут терь с вайфаем, осталось тока подружить переходник USB2COM и дождацца изменений в лучшую сторону по поводу драйверов ATI

olenevod, 2008-06-17 в 13:49:42

спасибо, только теперь патчить не надо, выложен свежий релиз http://snapshots.madwifi.org/special/madwifi-hal-0.10.5.6-r3698-20080604.tar.gzединственное что, под 7.0 amd64 ругается на using obsoleted if_watchdog interface

Cobalt, 2008-08-23 в 0:31:36

Спасибо, выручили офигенно. Единственное что удивляет, последний френзи так и не нашел сетевуху)

supagood, 2008-12-03 в 17:44:19

Огромное спасибо!!!
Ядро собралось при условии что #include "opt_ah.h" удалять не нужно!!! У меня тоже собралось только если не удалять.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.039 секунд
Из них PHP: 23%; SQL: 77%; Число SQL-запросов: 77 шт.
Исходный размер: 20024; Сжатая: 6115