?? arm9s3c2410.txt
字號:
TL_WN321G無線網卡的移植
首先需要感謝http://blog.21ic.com/user1/765/archives/2007/41046.html的作者張驛風,我在網上查了半天在arm平臺上移植無線網卡驅動的,他是唯一一個給出移植過程的,所以我也選擇這款TP-LINK WN321G的USB無線網卡。去中關村問了一下,結果是這款網卡太老了,基本沒賣的了,買回來的都是WN322G的,還好實驗室以前買過這款網卡,還能找到一個給我用.
打開TP-LINK WN321G的外殼可以查看該無線網卡所用的芯片,是Ralink的RT2571WF,于是找到Ralink的官網去看看,找到了該芯片Linux驅動的下載地址。
http://www.ralinktech.com.tw/data/RT73_Linux_STA_Drv1.0.4.0.tar.gz
下載解壓,cd Module 仔細閱讀其中的README,能了解其在PC上的安裝過程。到ARM平臺其實也是非常類似的,只不過是用交叉編譯器而已。
# cp -f Makefile.6 Makefile //使用2.6的Makefile文件
當然我們也需要修改這個Makefile文件,我就給出我的Makefile文件
######################################################################
# Module Name: Makefile
# Abstract: Makefile for rt73 linux driver on kernel series 2.6
######################################################################
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
CFLAGS += $(WFLAGS) -fsigned-char
obj-m := rt73.o
rt73-objs := rtmp_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o sync.o assoc.o auth.o auth_rsp.o rtusb_data.o rtmp_init.o sanity.o rtmp_wep.o rtmp_info.o rtmp_tkip.o wpa.o md5.o
KDIR := ~/linux-2.6.14
all:
make -C $(KDIR) SUBDIRS=$(shell pwd) modules
clean:
rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions built-in.o
很簡單吧,把install的命令都去掉了,只留下編譯命令,當然內核源代碼樹的目錄也是需要修改的了,還有一點很重要,我在網上搜了半天才知道的,在arm平臺下C語言char類型默認為unsigned char類型,所以一點要給CFLAGS加上一個-fsigned-char選項
不然編譯出現了很多warning,我是比較追求完美的人,另一個warning我也修改了一下,就是把"\0"該成用單引號的'\0',定義未使用的warning就把定義去了,這樣我就覺得很perfect了.編譯生成了rt73.ko模塊我把它copy到我的NorFlash的jffs2目錄下.
選則編譯成模塊是為了讓內核小點,不然內核過大燒到NorFlash中會覆蓋Ramdisk的.當然也可以編譯進內核的.
接著我們還需要linux下配置無線網卡的工具iwconfig
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
在這里我們可以找到Wireless Tools for Linux,不如就下載最新版本吧
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz
這個當然也是很簡單的,修改一下交叉編譯器,添加一個
CROSS =/usr/local/arm/3.4.1/bin/arm-linux-
然后把CC,AR,RANLIB前面都加上$(CROSS)啦
為了方便一些,在root下 mkdir iwconfig
然后還把Makefile中的PREFIX修改為 /root/iwconfig
這樣就把編譯結果安裝到這個目錄下
# make
# make install
ok,到/root/iwconfig目錄下,把sbin目錄下的工具copy到ramdisk的sbin中
lib目錄下的庫也copy到ramdisk的lib中去,工具安裝結束
下面配置內核,相信你一定已經為了用U盤而把USB驅動起來了吧,沒有的話
看看這篇文章先吧,s3c2410全線移植linux2.6.14.1 u盤 cs8900a busybox 詳細過程http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=embedded&Number=648878&page=0&view=collapsed&sb=5&o=all&fpart=
Networking --->
<*> Generic IEEE 802.11 Networking Stack
<*> IEEE 802.11 WEP encryption (802.1x)
Device Drivers --->
Network device support --->
Wireless LAN (non-hamradio) --->
<*> Wireless LAN drivers (non-hamradio) & Wireless Extensions
這幾個是無線網絡相關的選項,都選上比較好,編譯內核
配置完了就要開始test了,我這里沒有AP,選則兩塊無線網卡之間點對點地連線
在windows主機上用WN322G配置一個點對點的網絡,參考以下用戶說明書啦,很簡單.
設置網絡名稱dansen,信道1,網絡連接模式點對點,認證模式自動判別,網絡連接加密取消 WEP 加密,IP地址 192.168.0.1
在板子上插入網卡WN321G, cd jffs2 ,方便一點在這里寫個腳本load
# insmod rt73.ko
# ifconfig rausb0 inet 192.168.0.3 up
# route add default gw 192.168.0.1
# iwconfig rausb0 essid "dansen"
# iwconfig rausb0 mode Ad-hoc
# iwconfig rausb0 channel 1
那樣運行一下該腳本,就可和windows主機建立連接了
Ping一下,OK了
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -