/ Note

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 看看。