ARM Linux 安裝 ZyAIR B-220 無線網路卡
課程結束開發板學校都收回去啦,所以,如果照下面方式還是不能動,就請再 google 看看網路上有沒有其他資源,請見諒。
以下使用由 Advantech 出產的 PCM-7230 開發板,安裝 Linux 作業系統(版本:2.4.19-rmk4-pxa1),並使用 ZyXEL ZyAIR B-220 USB 無線網路卡進行測試。
該網路卡使用 Zydas 1201 無線網路晶片,可以在網路上找到開放原始碼的驅動程式,使用的驅動程式為 0.2 版,解壓後裡面應該有三個檔案,包含驅動程式、kernel patch,以及PDF說明文件。需要的是驅動程式 zdsta_3912_USB.tar.gz
。
編譯驅動程式需要 ARM Linux kernel 原始碼,請自行下載原始碼並解壓,以下用 <KERNEL_SRC>
代表 ARM Linux kernel 原始碼的存放路徑。
解壓縮驅動程式,並執行
make config
進行設定,build driver 回答 y 並指定 Linux source directory 為剛剛解壓縮 ARM Linux kernel 之目錄,接著設定程式會提示 kernel 版本,並警告 kernel source 版本與目前執行之 kernel 版本不同,不需理會。其餘就 enter 連打用預設值
$ make config -------------- Linux WLAN Configuration Script ------------- The default responses are correct for most users. Build Prism2.5 USB (_usb) driver? (y/n) [n]: y Linux source directory [/usr/src/linux]: <KERNEL_SRC> The kernel source tree is version 2.4.19-rmk4-pxa1. WARNING: the current running kernel is actually version 2.4.20-8. The current kernel build date is Thu Mar 13 17:54:28 2003. Module install directory [/lib/modules/2.4.19-rmk4-pxa1]: It looks like you have a System V init file setup. Prefix for build host compiler? (rarely needed) []: Build for debugging (see doc/config.debug) (y/n) [n]: Configuration successful.
設定完成將產生 config.mk 設定檔,以 nano 或 vi 開啟,搜尋下列欄位,修改加入紅色字的部分。這些修改是把 module 及 exe 之安裝目錄,由 / 更改為 /a ,避免產生之檔案與 host computer 上的檔案混在一起,以及新增 TARGET_ROOT_ON_HOST 設定。
TARGET_MODDIR=/a/lib/modules/2.4.19-rmk4-pxa1 TARGET_INST_EXEDIR=/a/sbin TARGET_ROOT_ON_HOST=/a
同時順便檢查 cross compiler 之設定是否正確(預設值應該正確):
CROSS_COMPILE=arm-linux- CROSS_COMPILE_ENABLED=y CFLAGS=-O2 -Wall -Wstrict-prototypes -pipe AS=arm-linux-as LD=arm-linux-ld CC=arm-linux-gcc CPP=arm-linux-gcc -E AR=arm-linux-ar NM=arm-linux-nm STRIP=arm-linux-strip OBJCOPY=arm-linux-objcopy OBJDUMP=arm-linux-objdump RANLIB=arm-linux-ranlib
修改完成即可編譯驅動程式
make all
編譯應可順利完成,接成 su 進 root 並執行
make install
若產生錯誤,請再回頭檢查剛剛 config.mk 的修改。
完成編譯後 /a 目錄下應有 etc、lib、sbin 及 usr 四個目錄,裡面是驅動程式模組檔以及協助工具。請依照下面步驟複製至 ARM Linux 內:
解壓並掛載 ARM Linux 之 ramdisk:
gunzip ramdisk.gz
mount -o loop -t ext2 ramdisk /mnt
複製驅動程式模組檔到 ramdisk:
cp -R /a/* /mnt
卸載 ramdisk 並重新壓縮:
umount /mnt
gzip ramdisk
將 ramdisk.gz 複製到 PCM-7230 的 flash memory 或 CF 卡中即可完成驅動程式安裝。
接著啟動開發版上的 ARM Linux 系統,登入後就可以啟動無線網路卡:
modprobe prism2_usb prism2_doreset=1 wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable wlanctl-ng wlan0 dot11req_mibset mibattribute=p2CnfPortType=1 wlanctl-ng wlan0 lnxreq_autojoin ssid=WL1 authtype=opensystem
ssid 要改成你要連結的 access point 的 ESSID 。如果 AP 開啟了 DHCP,請執行:
dhcpcd wlan0
進行 DHCP 設定。如果沒有 DHCP,就需要手動設定 IP:
ifconfig wlan0 inet <IP> netmask <NETMASK> route add default gw <GATEWAY>
需要填的就是 IP、net mask 跟 gateway。
執行到這邊 B-220 應該有順利啟動…大概吧?先隨便 ping 個 google 看看。