色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>USB無線網(wǎng)卡的Linux驅(qū)動移植的要求與過程分析

USB無線網(wǎng)卡的Linux驅(qū)動移植的要求與過程分析

2017-10-19 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

 引言
  COMFAST CF150NS USB無線網(wǎng)卡使用IEEE802.11n無線技術(shù),無線傳輸速率最高達(dá)150 Mbps。相比傳統(tǒng)的54 Mbps IEEE802.11g產(chǎn)品,擁有更高的無線帶寬,讓局域網(wǎng)內(nèi)的數(shù)據(jù)傳輸更加高效,能有效地減少網(wǎng)絡(luò)延遲,使語音視頻、網(wǎng)絡(luò)游戲、在線點播更流暢。CF150NS還使用了CCA(Clear Channel Assessment)空頻道檢測技術(shù),在檢測到周邊有無線信號干擾時,可自動調(diào)整頻寬模式,避開信道干擾,使無線信號更加穩(wěn)定。當(dāng)干擾消失時,又可自動捆綁空閑信道,充分利用信道捆綁優(yōu)勢,提升無線性能。CF150NS主要技術(shù)參數(shù):主芯片Realtek 8188SU,接口USB2.0,頻率范圍為2.4~2.48 GHz,支持IEEE802.11n/g/b無線標(biāo)準(zhǔn);無線速率最高可達(dá)150 Mbps(IEEE802.11n);工作模式AdHoc和Infrastructre可選;加密特性為64/128位WEP、WPA/WPA2、WPAPSK/WPA2PSK(TKIP/AES);支持的操作系統(tǒng)為Windows/Linux/Mac[1]。
  1 移植要求
  移植目標(biāo)是在原有ARM監(jiān)測系統(tǒng)的基礎(chǔ)上實現(xiàn)USB無線網(wǎng)卡功能擴(kuò)展,為系統(tǒng)提供數(shù)據(jù)遠(yuǎn)程無線采集方案。原ARM監(jiān)測系統(tǒng)是在優(yōu)龍YLE2440開發(fā)板上開發(fā)的,其Linux內(nèi)核版本為2.6.12.7。USB無線網(wǎng)卡是外部無線網(wǎng)絡(luò)系統(tǒng)提供的指定產(chǎn)品COMFAST CF150NS,其主芯片Realtek 8188SU的Linux內(nèi)核版本要求是2.6.18~2.6.33。也就是說,整個移植過程要求USB無線網(wǎng)卡驅(qū)動必須是Realtek 8188SU,且工作環(huán)境是Linux2.6.12.7。Realtek公司對8188SU主芯片驅(qū)動提供的建議是PC機Fedora Linux 2.6.24測試通過。經(jīng)測試,若直接將驅(qū)動使用Linux 2.6.12.7內(nèi)核編譯,將出現(xiàn)大量錯誤。如何將驅(qū)動移植到Linux 2.6.12.7還需要進(jìn)一步研究。
  2 移植過程
  2.1 移植環(huán)境搭建
  移植過程采用VM虛擬機下安裝RedHat9.0來完成。具體配置:PC操作系統(tǒng)為VMware Workstation5.5 & RedHat 9.0(Linux 2.4.20);硬件為優(yōu)龍YLE2440開發(fā)板;操作系統(tǒng)為Linux 2.6.12.7,安裝位置為/test/yle2440_2.6.12;交叉編譯器為gcc3.4.1,安裝位置為/usr/local/arm/3.4.1/bin/;Busybox安裝位置為/test/busybox;文件系統(tǒng)為/test/rootfs/;文件系統(tǒng)生成工具為mkcramfs;USB無線網(wǎng)卡驅(qū)動源碼為/test/8188su/driver/8188su;無線管理工具wirelesstools為/test/wireless_tools.29.tar.gz。另外,還需要準(zhǔn)備Linux 2.6.24內(nèi)核[2]。
  2.2 Linux內(nèi)核配置[3]
  進(jìn)入內(nèi)核安裝目錄/test/yle2440_2.6.12,運行內(nèi)核配置:
  [root@localhost test]# make menuconfig
  (1) 增加WLAN支持
  選擇[Device Driver]→[Networking support]→[Wireless LAN (nonhamradio)]→[Wireless LAN drivers (nonhamradio) & Wireless Extensions]。
  (2) 增加DHCP支持
  選擇[Device Driver]→[Networkingsupport]→[Networking options]。務(wù)必選中“Packet socket”和“IP: DHCP support”、“Network packet filtering framework(Netfilter)”選項。
  另外,還需要udhcpc的配置文件。拷貝Busybox目錄/examples/udhcp下的simple.script到文件系統(tǒng)/usr/share/udhcpc/下,并重命名為default.script。將default.script中的
  RESOLV_CONF=“/etc/resolv.conf”
  修改為
  RESOLV_CONF=“/tmp/resolv.conf”
  運行“mkcramfs rootfs rootfs.cramfs”生成根文件系統(tǒng)rootfs.cramfs,并重新下載到目標(biāo)板。
  2.3 Linux內(nèi)核文件修改
  首先將Linux2.6.24內(nèi)核中的netdevice.h、wireless.h、iw_handler.h拷貝至Linux2.6.12內(nèi)核相應(yīng)目錄下。然后以Linux2.6.24內(nèi)核為藍(lán)本進(jìn)行文件建立、修改和替換。需要替換的文本清單為:
  ① /include/linux/目錄,wireless.h、skbuff.h、textsearch.h、netdevice.h、slab.h、ip.h、icmp.h、socket.h;
  ② /include/net/目錄,iw_handler.h、sock.h;
  ③ /include/sound/目錄,core.h;
  ④ /net/core/目錄,dev.c、skbuff.c、wireless.c、neighbour.h;
  ⑤ /net/ipv4/目錄,ip_output.c、devinet.c、socket.c;
  ⑥ /net/netlink目錄,af_netlink.c;
  ⑦ /mm/目錄,slab.c。
  文件替換完畢進(jìn)行內(nèi)核編譯:
  make zImage
  生成內(nèi)核zImage后下載到目標(biāo)板。在內(nèi)核編譯的過程中,還會出現(xiàn)許多錯誤,主要是C90語法錯誤、所調(diào)用函數(shù)數(shù)據(jù)類型不匹配、段符號未定義等問題。主要的修改內(nèi)容:
  ① 內(nèi)核編譯時若出現(xiàn)C90語法和C99語法錯誤,只需按照本編譯系統(tǒng)所采用的編譯標(biāo)準(zhǔn)進(jìn)行語法修改。例如,/net/core/dev.c中函數(shù)“net_rx_action”的第1713~1729行提示有語法錯誤。其中,第1713行的錯誤按照C90語法修改即可消除,其他錯誤為所調(diào)用函數(shù)數(shù)據(jù)類型不匹配所致,修改所調(diào)用函數(shù)的數(shù)據(jù)類型即可。
  ② 出現(xiàn)提示“.data=&no_cong_thresh”未定義之類的錯誤時,在相應(yīng)源碼中將其注釋即可。
  ③ Wireless_seq_show函數(shù)錯誤直接采用2.6.24版本替換2.6.12版本即可。
  ④ net_sysctl_strdup類錯誤和警告一定要消除,消除方法是替換neighbour.h文件及相關(guān)文件。
  2.4 USB無線網(wǎng)卡驅(qū)動編譯
  首先,下載主芯片Realtek 8188SU的最新驅(qū)動RTL8188SU_usb_linux_v2.6.6.0.20101111.zip,然后解壓進(jìn)入相應(yīng)目錄修改config、Makefile文件。
  (1) 修改config
  [root@localhost 8188su]# gvim config
  修改第16行,關(guān)閉PC模式:
  16 CONFIG_PLATFORM_I386_PC=n
  修改第18行,打開ARM模式
  18 CONFIG_PLATFORM_ARM_S3C=y
  (2) 修改Makefile
  修改交叉編譯器和ARM內(nèi)核安裝目錄:
  [root@localhost 8188su]# gvim Makefile
  修改第94行為gcc交叉編譯器所在路徑:
  CROSS_COMPILE:=/usr/local/arm/3.4.1/bin/armlinux
  修改第95行,直接注釋掉以下語句:
  #KVER:= 2.6.24.7_$(ARCH)
  修改第96行,指定2.6.12內(nèi)核路徑:
  KSRC:= /test/yle2440_2.6.12
  修改完畢后,直接make即可在目錄下生成8712u.ko。下載8712u.ko驅(qū)動到目標(biāo)板。
  2.5 安裝wirelesstools[3]
  無線網(wǎng)卡配置需要使用一些無線網(wǎng)絡(luò)管理工具,如wpa_supplicant、wirelesstools等。本項目使用wirelesstools來實現(xiàn)。首先下載wireless_tools.29.tar.gz,然后解壓、編譯、安裝。 下面介紹具體步驟。
  ① 解壓。
  tar zxvf wireless_tools.29.tar.gz
  ② 修改Makefile。
  修改第8行,設(shè)置可執(zhí)行文件安裝路徑:
  PREFIX=/usr/local/wireless
  修改第12行,設(shè)置gcc交叉編譯器:
  CC=/usr/local/arm/3.4.1/bin/armlinuxgcc
  修改第15行,設(shè)置ar交叉編譯器:
  AR=/usr/local/arm/3.4.1/bin/armlinuxar
  修改第16行,設(shè)置ranlib交叉編譯器:
  RANLIB=/usr/local/arm/3.4.1/bin/armlinuxranlib
  ③ 運行make命令。
  ④ 運行make install命令。可執(zhí)行文件安裝于/usr/local/wireless目錄下。
  ⑤ 拷貝兩個庫libiw.so和libiw.so.29到文件系統(tǒng)/test/rootfs/lib目錄下,運行chmod 777命令后重新生成壓縮根文件rootfs.cramfs,并下載到ARM板。
  ⑥ 將安裝目錄下的iwconfig、iwlist等下載到目標(biāo)板。主要使用的命令及功能:
  ◆ iwconfig,回車,查看所有無線網(wǎng)卡;
  ◆ iwconfig wlan0,查看wlan0;
  ◆ iwconfig wlan0 essid “xx”,配置網(wǎng)卡SSID為xx;
  ◆ iwlist wlan0 scan|grep ESSID,搜索周邊所有無線網(wǎng)卡的ESSID。
  2.6 無線網(wǎng)卡測試
  (1) 插入無線網(wǎng)卡,自動安裝USB host驅(qū)動
  [root@(none) tmp]# uname a
  Linux(none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
  [root@(none) tmp]# usb 11:new full speed USB device using s3c2410ohci and address 4
  usb 11: Product: RTL8188S WLAN Adapter
  usb 11: Manufacturer: Manufacturer Realtek
  usb 11: SerialNumber: 00e04c000001
  (2) 加載模塊8712u.ko
  insmod 8712u.ko
  (3) 喚醒USB無線網(wǎng)卡驅(qū)動
  ifconfig wlan0 up
  (4) 搜索周邊無線網(wǎng)絡(luò)
  [root@(none) tmp]# iwlist wlan0 scan | grep ESSID
  fwdbg: get survey cmd
  fwdbg: survey done (00000005, 00000000)
  ESSID: “TPLINK_WSW”
  ESSID: “TPLINK_717E24”
  ESSID: “dlink”
  ESSID: “newnav”
  ESSID: “dgdz”
  (5) 配置wlan0的SSID
  iwconfig wlan essid TPLINK_717E24
  配置成功后利用iwconfig回顯:
  [root@(none) tmp]# uname a
  Linux (none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
  [root@(none) tmp]# iwconfig wlan0
  wlan0IEEE 802.11bg ESSID:“TPLINK_717E24”
  Mode: Managed Frequency: 2.437 GHz Access Point: 00:25:86:71:7E:24
  Bit Rate: 54 Mb/s
  Encryption key:off
  Power Management: off
  Link Quality=52/100 Signal level=52/100 Noise level=0/100
  Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
  Tx excessive retries:0 Invalid misc:0 Missed beacon:0
  (6) IP動態(tài)分配
  自動申請動態(tài)IP:
  udhcpc i wlan0
  顯示如下信息
  [root@(none) tmp]# uname a
  Linux (none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
  [root@(none) tmp]# udhcpc i wlan0
  udhcpc (v0.9.9pre) started
  udhcpc[490]: udhcpc (v0.9.9pre) started
  Sending discover.。.
  udhcpc[490]: Sending discover.。.
  Sending select for 172.16.51.9.。.
  udhcpc[490]: Sending select for 172.16.51.9.。.
  Lease of 172.16.51.9 obtained, lease time 691200
  udhcpc[490]: Lease of 172.16.51.9 obtained, lease time 691200
  deleting routers
  route: SIOC[ADD|DEL]RT: No such process
  adding dns 61.153.216.99
  adding dns 61.153.216.104
  運行ifconfig命令后,顯示最終配置:
  [root@(none) tmp]# uname a
  Linux (none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
  [root@(none) tmp]# ifconfig wlan0
  wlan0 Line encap: Ethernet HWaddr 00:0F:10:54:0E:1B
  inet addr: 172.16.51.9 Bcast:172.16.255.255 Mask: 255.255 Mask:255.255.255.0
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  RX packets:618 errors:0 dropped:0 overruns:0 frame:0
  TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
  (7) ping測試
  ping測試時需要加c參數(shù)控制ping次數(shù),否則會一直不停測試,并且無法kill。
  [root@(none) tmp]# ping c 2 172.16.51.9
  PING 172.16.51.9 (172.16.51.9): 56 data bytes
  64 bytes from 172.16.51.9: icmp_seq=0 ttl=64 time=1.4 ms
  64 bytes from 172.16.51.9: icmp_seq=1 ttl=64 time=0.7 ms
  ---172.16.51.9 ping statistics 
  2 packets transmitted, 2 packets received, 0% packet loss
  roundtrip min/avg/max=0.7/1.0/1.4 ms
  3 討論
  在USB無線網(wǎng)卡驅(qū)動移植過程中,將主要的文件netdevice.h、wireless.h、iw_handler.h、dev.c等進(jìn)行替換后,內(nèi)核已經(jīng)能編譯成功。將內(nèi)核下載并重啟開發(fā)板后,加載驅(qū)動成功,并能利用iwlist搜索到周邊的WLAN網(wǎng)絡(luò)。在利用iwconfig給驅(qū)動指定SSID時iwconfig引起內(nèi)核崩潰。初判原因不應(yīng)為wirelesstools程序。加入ip.h、icmp.h socket.h等文件后iwconfig指定SSID成功。最后進(jìn)行ping測試時,出現(xiàn)ping 127.1和本機IP均失敗的情況。使用strace跟蹤ping執(zhí)行過程,發(fā)現(xiàn)recvfrom()函數(shù)參數(shù)傳遞錯誤,替換neighbour.c af_netlink.c等文件后ping 127.1成功。
  若系統(tǒng)內(nèi)核升級到Linux 2.6.30,驅(qū)動能編譯通過,但只要一發(fā)出ifconfig命令,內(nèi)核即崩潰。即使高版本內(nèi)核在移植時也有問題,這些問題需要進(jìn)一步研究。
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設(shè)計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 99热精品一区| 亚洲一区二区免费看| 寂寞护士中文字幕 mp4| SAO货腿张开JI巴CAO死我| 亚洲精品一卡二卡三卡四卡2021| 男女牲交全过程免费播放| 韩剧甜性涩爱| 国产精品国产三级国产an| 99久久做夜夜爱天天做精品| 亚洲色t图| 邪恶肉肉全彩色无遮盖| 日韩精品人成在线播放| 男女无遮挡吃奶gift动态图| 久久久久久久尹人综合网亚洲| 国产线精品视频在线观看| 成人网络电视破解版| ai换脸在线全集观看| 最近高清中文字幕无吗免费看| 亚洲精品无码专区在线播放| 胸大美女又黄的网站| 甜性涩爱下载| 视频一区亚洲中文字幕| 欧美特黄99久久毛片免费| 免费观看桶机十分钟| 巨乳中文无码亚洲| 久久操韩国自偷拍| 久久99国产精品蜜臀AV| 极品色αv影院| 极品 女神校花 露脸91| 黄色直接观看| 精品国产自在现线拍国语| 黑人巨大两根一起挤进欧美| 国产在线午夜| 国产亚洲美女精品久久久2020| 国产精品亚洲欧美| 国产免费麻传媒精品国产AV| 国产乱码精品一区二区三区四川| 国产成人mv 在线播放| 国产精品av免费观看| 国产精品人成在线播放新网站| 国产精品高清在线观看93 |