標準のFreeBSD 6.0-RELASEではcoregaのWLCB-54GTは動きません。

NDISを使うと、Windowsドライバを使用して
デバイスを有効化にすることができます。
その方法を解説します。




ネットワークの状況
基地局兼ルーター:192.168.1.1 SSID: MYSSID WEPなし
マイノートPC:192.168.1.12


windowsのドライバをhttp://www.corega.co.jp/support/download/wl_adp.htm#wlcb54gtからとってきて、その中のファイルwl54cb.infとwl54cb.sysをFreeBSDのドライブに持ってきます。

ndisgen wl54cb.inf wl54cb.sys

として、ドライバーを作成する。
(5系列ではndiscvtを使用していましたが、
どうも6.0-RELEASEではndisgenを使用しないとダメなようです。)

同じディレクトリーにwl54cb_sys.koが作成される。

このwl54cb_sys.koを/book/kernel/のしたにコピー

cp wl54cb_sys.ko /book/kernel/

さらにkldloadで読み込む

kldload wl54cb_sys.ko


次回起動時に読み込まれるように、

/boot/loader.conf

のなかに

wl54cb_sys_load="YES"

を追加

そうするとデバイスが認識され、

無線LANカードcoregaのCG-WLCB54GTに関係のあるdmesgは


ndis0: mem 0x88000000-0x88001fff irq 9 at device 0.0 on cardbus0
can't re-use a leaf (BusType)!
ndis0: NDIS API version: 5.1
ndis0: Ethernet address: 00:0a:79:5a:30:8b


となります。

マイノートPCを自動でIPを割り当てるために/etc/rc.confに、

ifconfig_ndis0="DHCP"

を追加。

基地局兼ルーターのIPが192.168.1.1
なので、

/etc/resolv.conf
(※スペル要注意)に、

nameserver 192.168.1.1

を追加
※仮りに同じ内容があっても書き換えること。


そして、

ifconfig ndis0 up ssid MYSSID

upを追加することを忘れないように。
WEPを設定したい場合はmanを見て便宜追加すること。
(というかとりあえずセキュリティより接続優先で、複雑なことは嫌なので)

1分ほど経過した後、LANカードのLinkが点灯。
点灯しない場合は、もういちど、ifconfig …をすること。

Linkが点灯したときのifconfig は

ndis0: flags=8843 mtu 1500
inet6 fe80::20a:79ff:fe5a:308b%ndis0 prefixlen 64 scopeid 0x4
inet 192.168.1.12 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:0a:79:5a:30:8b
media: IEEE 802.11 Wireless Ethernet autoselect
status: associated
ssid "" channel 1
authmode OPEN privacy OFF txpowmax 100 protmode CTS

statusはすぐにassociatedにはならず、最初はno carrierと表示されていて10秒ほど経ってから、associatedになる。

上のifconfig ndis0 up ssid MYSSIDでは
IPが割り当てられないことがあるので、
ifconfig ndis0のstatusがno carrierから associatedになったら、

ifconfig ndis0 inet 192.168.1.12 inet 255.255.255.0

として、さらに
route add default 192.168.1.1
とする。

これで、ping www.yahoo.co.jpの結果が

PING www.yahoo.co.jp (210.81.3.241): 56 data bytes
64 bytes from 210.81.3.241: icmp_seq=0 ttl=241 time=24.392 ms
64 bytes from 210.81.3.241: icmp_seq=1 ttl=241 time=24.451 ms
64 bytes from 210.81.3.241: icmp_seq=2 ttl=241 time=22.561 ms

となって接続成功。

次から簡単に接続できるように以下のスクリプトをテキストファイルで作成。


#!/bin/sh
##/etc/resolve.confを書き換えるため
echo nameserver 192.168.1.1 > /etc/resolv.conf
##ifconfig でSSIDの設定
ifconfig ndis0 up ssid MYSSID


今回、接続成功にたどり着けたのは、
2chで親切にアドバイスしていただいた方々のおかげです。
ありがとうございました。