這篇要說的是將 ZD1211 架 AP 的筆記.
zd1211 的 driver 在 kernel 裡已經有準備一份 zd1211rw 了, 當然的, 這個只能支援 manager 跟 ad-hoc 兩種模式, 要架 AP 的話首要條件就是網卡要支援 master mode. ok, 支援 master mode 的 driver 來
這裡找.
小弟不才, 用的是 CentOS 5.3, 以上的 driver 要重新編譯過才行, 在裝了 gcc 跟所有相關套件 (11個的樣子, 懶的列... 反正 driver 裝完就可以全拔了, 看人高興) 以外, 不要忘了裝 kernel-devel 這個套件包進去. 接著, 請先建好一個工作目錄後再解壓縮上面給的 driver 包, 進去 ar2524drv 裡面 make, 它會自己編譯跟安裝.
driver 裝好了之後開始有一個問題,
zd1211 如果是一開始直接連上某個 AP 這樣沒事,
或是一開始連上某個 AP 後, 再斷線, 再切到 master mode 的話這樣也沒事,
但如果是開機就直接設 master mode 的話, 會直接跳出一大票錯誤訊息, 甚至在切 master mode 時就直接 kernel panic 給你看, 發生原因我不清楚, 我是懷疑跟 AES key 還哪些跟 SSL 有關的 public key 還啥鬼的東西沒建好, 導致 driver 直接當掉. 而且就算沒發生 kernel panic, 也會無法連線, 讓這張無線網卡形同噓設.
我網卡是一開機後跑一個 script 去設定的:
ifconfig ath0 10.10.10.1 netmask 255.255.255.0 up
iwconfig ath0 essid GasPumpStation //名字自己取....
iwconfig ath0 enc 5978978978 [1] //密碼也自己取....
iwpriv ath0 set_Region 1 //設定 region, 可以略過不設.
iwpriv ath0 set_auth 1 //0:open 1:share key
iwlist ath0 scan //掃瞄有哪些基地台, 這是假動作.
iwpriv ath0 connect 99 //隨便連一個不存在的基地台
iwconfig ath0 mode master //切 master mode....
[後記] 後來發現, 不是 code 的問題, 是機器的問題...
機器用的是 AMD GeodeLX, 而這顆 CPU 正是 Cyrix 6x86MX 這個前朝遺物, 而且 FPU 的 bug 很佛心, 完整的保留下來.. -_- 後來我把 makefile 裡參數加上 -mtune=geode 後, 就一切正常了.. 一開機就進 master mode 也不會當了.. -_-