Ключевые слова:freebsd, drvier, wifi, ndis, (найти похожие документы)
From: Bocha <root@solink.ru.>
Date: Sun, 10 Mar 2008 17:02:14 +0000 (UTC)
Subject: Подключение во FreeBSD PCMCIA-беспроводной карты при помощи NDIS
Оригинал: http://www.livejournal.com/users/bochafreebsd/19730.html
На втором месте, после проблемы неработы игрушек, причина, по которой
люди не переходят на FreeBSD с Windows - это "знание железа", то есть
наличсае драйверов устройств. В плане сетевых устройств этой проблемой
стало меньше. Слышали ли вы о стандарте ndis? Сейчас все сетевые
устройства этому стандарту соотвествуют. Точнее их драйвера. Как
беспроводные адаптеры, так и привычные проводные.
Сегодня я взял PCMCIA-беспроводную карту 3Com OfficeConnect Wireless
WL-532 и вставил в свой ноутбук. Получил:
notebook kernel: cardbus0: <network, ethernet> at device 0.0 (no driver attached)
Ну ладно, бог с ним, понятно, драйвера как обычно нет. (device ath не
канает для этого устройства). Тогда я вставил родной диск из коробки
этого девайса и глянул драйвера там. Только для Windows XP. Годится.
Взял ar5211.sys и net5211.inf, скатал их в /usr/src/3com.
Затем обратился к ndis-у:
cd /usr/src/sys/modules/if_ndis
Там попробовал дизасемблировать дрова для экспи:
ndiscvt -i /usr/src/3com/ar5211.inf -s /usr/src/d-link/net5211.sys -o ndis_driver_data.h
Он выдал мне синтаксическую ошибку на 184й строке inf-файла. Удалил
нафиг эту строчку и попробовал еще раз. Создался файл
ndis_driver_data.h, набитый кодами асемблера, но сам файл был
представлен в Си-формате, значит и компилироваться должен стандартно.
Зашибись.
Пошел в cd /usr/src/sys/dev/if_ndis/
Там были Си-файлы. Поправил:
if_ndis.c
if_ndis_pccard.c
if_ndis_pci.c
на предмет замены в них строчки
#include "ndis_driver_data.h" на
#include "/usr/src/sys/modules/if_ndis/ndis_driver_data.h"
затем опять в
cd /usr/src/sys/modules/if_ndis и make && make install
В конфиг ядра добавил:
options NDISAPI
device ndis
затем стандартно сделал config notebook && cd ../compile/notebook &&
make depend && make && make install && reboot
И, о чудо, после перезагрузки получил следующее:
notebook kernel: ndis0: <3Com OfficeConnect Wireless 108Mbps 11g XJACK
PC Card> mem 0x88000000-0x8800ffff irq 5 at device 0.0 on cardbus0
Взял на складе точку доступа DLink DWL 2000 AP+ поставил рядом,
подключил к свитчу, затем во фре дал две команды:
ifconfig ndis0 add 192.168.1.100 ssid default
и
route add default 192.168.1.1
И запостил вот этот пост, что вы сейчас читаете. Во FreeBSD сетевой
адаптер вполне может работать на драйверах для Windows XP. Для этого
надо 3 минуты и точно следовать вышеизложеной инструкции :-)))
А по какой логике inf и sys кладутся в разные каталоги? То, что результирующая вышеприведенной строчки будет в третьем каталоге - это уж начинаешь понимать раза с пятого.:) Тщательнее надо шаги описывать.