在 Linux 上使用 WirelessLAN 的經驗
剛剛瞥見 Eason 的 blog [
Linux Supported Wireless Adapter Chipset Directory] 提到由 HJ Heins 所整理的 [
Linux wireless LAN support],這是很棒的 native Linux WLAN driver list。我第一次在 Linux 使用 WirelessLAN,是在「某公司」(其實也沒這麼神秘,只是「某公司」已經消失了),使用 PRISM2 chipset,時間是 2002 年春季。兩年前從事 Linux-based Thin-client 開發,考慮到產品的多元,開始提供 WirelessLAN support,執行畫面類似下圖: (click to enlarge)

使用的 chipset 除了 Atmel AT76C5xx 外,也包含 PRISM2/3 與 TI ACX100 系列,有部份成果已經 merge 到 upstream。據我記憶所及,當時在 CeBIT 展覽的迴響還不惡,也是當時少數 Linux-based Thin-client 有內建無線網路的解決方案 (其實我一直沒有看到其他也具備的)。在去年,以 GPLv2 釋出相關的計畫 [
Linetconf - Linux Network Configurator],這是全新的 codebase,與兩年前直接用 ioctl 驅動 iwpriv 的 dirty-hack 是截然不同的,離職後,手頭沒有保有 source code,我也忘記自己到底用了多少 tricks 與 workaround 了。
開發的過程發生了一個插曲,當時就讀交大資工系的小貓,利用暑期來到前公司作工讀生,協助我作 driver development & testing,同時也維護一部分 WLAN Kit 的 user-space application,不過或許是因為我對小貓的期許較高,而我忽略小貓還有其他計畫要忙,結果我就在辦公室把小貓罵哭了... 有時候,lover 與 partner 的角色還是分開比較好,到現在才學會這點,為此,還是覺得很愧疚。
後來在去年年初的休假中,我接觸了幾款 ACX100 / ACX11x 的 chipset,起初驅動不是很成功,後來在許多前輩的協助下,最後達到可用的境界,再來是玩了 Atheros 的 chipset,這部份的 Linux/*BSD driver 可參考 [
MadWifi],這是非常優秀的專案計畫,展示如何跨越平台對 close firmware 做出完整的 WLAN 驅動支援。說到這裡,又要炫耀一下,在參與 2004 年的 Asia BSD Developer Conference 時,跟 [
MadWifi] 核心開發者 Sam Leffler 前輩要了親筆簽名與合照,從此以後,遇到的 Atheros chipset 運作都相當順暢,所以收集簽名還是有點用的 :P
以上提到的是有 native Linux driver support 的 chipset,至於 close-source driver 的部份,我用過 VIA Solomon 系列,以及最近 P 公司與 M 公司的解決方案,說來也很有趣,Linux driver 有時候反而是先 ready,過好一段時日才有 Windows Mobile 的 WDM,而且現在大多也全力支持 LWE (Linux Wireless Extension),才過兩年,發現這些通訊與硬體廠商的態度有很大的轉變,這是值得欣慰之處。有時候也幫一些朋友修改 Linux driver,比方說之前在 blog [
3Com 3CRWE62092A 驅動],就是在手頭沒有硬體時 hacking 的,沒想到還因此幫了 Jouston 與一個老外的忙,前幾月也幫了某公司處理,也是瞎子摸象亂改 driver,運氣還不差,最後有驅動。
我個人的感覺是,Linux kernel 2.6 在相關的 API 與 driver model 有收斂的趨勢,雖然每次改版還是忍不住罵一下,但隨著相關廠商的釋出善意、大量 WLAN 相關 Free/open source 軟體的現身,以及 Linux Desktop 的整合,才短短兩年間,這些變化是巨大的,衷心期望明天會更好。
由 jserv 發表於 April 6, 2006 01:25 AM
To droger,
我說的是 native Linux driver,而非透過 NDIS emulation / loader 載入 WDM 的途徑
To fc,
本文的「某公司」是指我更早去過的,非 W-Channel
By the way,這篇怎麼被刊出來? http://freesf.tnc.edu.tw/modules/news/article.php?storyid=2412
我只是隨便寫的,附加炫耀文與自省罷了 XD