十一月19

編譯 ZD1211 無線網卡驅動

關於如何編譯 ZD1211/ZD1211B 晶片的 USB 無線網卡 driver,經常在各大討論區及 BBS 看到有人提出相同的問題,因此來寫個教學。
前往 ZD1211 專案網站可以知道目前有三種版本的驅動,其中建議使用 zd1211rw 這個版本,因為它持續在更新且已納入 Linux 2.6.18 以後的 kernel 裡。zd1211rw 支援這三種晶片:

ZyDAS ZD1211
ZyDAS ZD1211B
Atheros AR5007UG

不過既然都已經納入 kernel 了為什麼還要編譯驅動?因為還是有很多產品的 USB ID 不能被 zd1211rw 所辨識(我的 PCI GW-US54GXS 就是),當然就沒辦法驅動囉!這篇要做的就是從 kernel 裡的 zd1211rw source code 加入對應的 USB ID,主機環境是 ubuntu 7.10,其他版本應該也差不多。
首先要安裝編譯相關套件 & 下載 linux source
$ sudo apt-get install build-essential kernel-package linux-source
切換至 src 目錄並解開 linux source
$ [...]


八月18

USB 無線網卡驅動移植(ARM)

平台資訊:
核心板:Samsung S3C2410 ARM920T
無線網卡:PCI GW-US54GXS
Linux Kernel:2.6.14.7
Cross Compile:arm-linux-gcc 3.4.1

PCI 所推出的無線網卡大多採用 ZB1211(B) 的晶片,算是滿普遍的一種,所以相容性還不錯,成功移植機率比較大。先到官方下載好網卡的 Linux Driver。
1. 解壓縮檔案
tar zxvf GW-US54GXS_Linux_v2.15.0.0_CE.tar.gz
2. 修改 Makefile
# Cross Compile
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
CPP=/usr/local/arm/3.4.1/bin/arm-linux-g++
LD=/usr/local/arm/3.4.1/bin/arm-linux-ld
—————————————————————————-
# 修改 Kernel Source 所在路徑
KERN_26=y
KERNEL_SOURCE=/opt/linux-2.6.14.7
—————————————————————————-
# 修改 MOD_PATH
MODPATH=/opt/linux-2.6.14.7/Modules_install/lib/modules/2.6.14.7
—————————————————————————-
# 修改 KDIR
KDIR :=/opt/linux-2.6.14.7/Modules_install/lib/modules/2.6.14.7/build
—————————————————————————-
存檔離開
3. 開始編譯
make ZD1211REV_B=1
4. 完成
沒錯誤就會得到 zd1211b.ko,將它加入檔案系統並用 insmod 載入即可。
延伸閱讀

Embedded Linux + ARM
Wireless Tools for Linux