<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 詳解USB無(wú)線(xiàn)網(wǎng)卡的Linux驅動(dòng)移植

詳解USB無(wú)線(xiàn)網(wǎng)卡的Linux驅動(dòng)移植

作者: 時(shí)間:2018-08-03 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

本文引用地址:http://dyxdggzs.com/article/201808/385301.htm

COMFAST CF150NS 使用IEEE802.11n無(wú)線(xiàn)技術(shù),無(wú)線(xiàn)傳輸速率最高達150 Mbps。相比傳統的54 Mbps IEEE802.11g產(chǎn)品,擁有更高的無(wú)線(xiàn)帶寬,讓局域網(wǎng)內的數據傳輸更加高效,能有效地減少網(wǎng)絡(luò )延遲,使語(yǔ)音視頻、網(wǎng)絡(luò )游戲、在線(xiàn)點(diǎn)播更流暢。CF150NS還使用了CCA(Clear Channel Assessment)空頻道檢測技術(shù),在檢測到周邊有無(wú)線(xiàn)信號干擾時(shí),可自動(dòng)調整頻寬模式,避開(kāi)信道干擾,使無(wú)線(xiàn)信號更加穩定。當干擾消失時(shí),又可自動(dòng)捆綁空閑信道,充分利用信道捆綁優(yōu)勢,提升無(wú)線(xiàn)性能。CF150NS主要技術(shù)參數:主芯片Realtek 8188SU,接口2.0,頻率范圍為2.4~2.48 GHz,支持IEEE802.11n/g/b無(wú)線(xiàn)標準;無(wú)線(xiàn)速率最高可達150 Mbps(IEEE802.11n);工作模式AdHoc和Infrastructre可選;加密特性為64/128位WEP、WPA/WPA2、WPAPSK/WPA2PSK(TKIP/AES);支持的操作系統為Windows//Mac[1]。

1 移植要求

移植目標是在原有ARM監測系統的基礎上實(shí)現功能擴展,為系統提供數據遠程無(wú)線(xiàn)采集方案。原ARM監測系統是在優(yōu)龍YLE2440開(kāi)發(fā)板上開(kāi)發(fā)的,其內核版本為2.6.12.7。USB是外部無(wú)線(xiàn)網(wǎng)絡(luò )系統提供的指定產(chǎn)品COMFAST CF150NS,其主芯片Realtek 8188SU的內核版本要求是2.6.18~2.6.33。也就是說(shuō),整個(gè)移植過(guò)程要求USB無(wú)線(xiàn)網(wǎng)卡驅動(dòng)必須是Realtek 8188SU,且工作環(huán)境是Linux2.6.12.7。Realtek公司對8188SU主芯片驅動(dòng)提供的建議是PC機Fedora Linux 2.6.24測試通過(guò)。經(jīng)測試,若直接將驅動(dòng)使用Linux 2.6.12.7內核編譯,將出現大量錯誤。如何將到Linux 2.6.12.7還需要進(jìn)一步研究。

2 移植過(guò)程

2.1 移植環(huán)境搭建

移植過(guò)程采用VM虛擬機下安裝RedHat9.0來(lái)完成。具體配置:PC操作系統為VMware Workstation5.5 RedHat 9.0(Linux 2.4.20);硬件為優(yōu)龍YLE2440開(kāi)發(fā)板;操作系統為L(cháng)inux 2.6.12.7,安裝位置為/test/yle2440_2.6.12;交叉編譯器為gcc3.4.1,安裝位置為/usr/local/arm/3.4.1/bin/;Busybox安裝位置為/test/busybox;文件系統為/test/rootfs/;文件系統生成工具為mkcramfs;USB無(wú)線(xiàn)網(wǎng)卡驅動(dòng)源碼為/test/8188su/driver/8188su;無(wú)線(xiàn)管理工具wirelesstools為/test/wireless_tools.29.tar.gz。另外,還需要準備Linux 2.6.24內核[2]。

2.2 Linux內核配置[3]

進(jìn)入內核安裝目錄/test/yle2440_2.6.12,運行內核配置:

[root@localhost test]# make menuconfig

(1) 增加WLAN支持

選擇[Device Driver]→[Networking support]→[Wireless LAN (nonhamradio)]→[Wireless LAN drivers (nonhamradio) Wireless Extensions]。

(2) 增加DHCP支持

選擇[Device Driver]→[Networkingsupport]→[Networking options]。務(wù)必選中“Packet socket”和“IP: DHCP support”、“Network packet filtering framework(Netfilter)”選項。

另外,還需要udhcpc的配置文件??截怋usybox目錄/examples/udhcp下的simple.script到文件系統/usr/share/udhcpc/下,并重命名為default.script。將default.script中的

RESOLV_CONF=/etc/resolv.conf

OR: rgb(68,68,68); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px>修改為

RESOLV_CONF=/tmp/resolv.conf

運行“mkcramfs rootfs rootfs.cramfs”生成根文件系統rootfs.cramfs,并重新下載到目標板。

2.3 Linux內核文件修改

首先將Linux2.6.24內核中的netdevice.h、wireless.h、iw_handler.h拷貝至Linux2.6.12內核相應目錄下。然后以L(fǎng)inux2.6.24內核為藍本進(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)行內核編譯:

make zImage

生成內核zImage后下載到目標板。在內核編譯的過(guò)程中,還會(huì )出現許多錯誤,主要是C90語(yǔ)法錯誤、所調用函數數據類(lèi)型不匹配、段符號未定義等問(wèn)題。主要的修改內容:

① 內核編譯時(shí)若出現C90語(yǔ)法和C99語(yǔ)法錯誤,只需按照本編譯系統所采用的編譯標準進(jìn)行語(yǔ)法修改。例如,/net/core/dev.c中函數“net_rx_action”的第1713~1729行提示有語(yǔ)法錯誤。其中,第1713行的錯誤按照C90語(yǔ)法修改即可消除,其他錯誤為所調用函數數據類(lèi)型不匹配所致,修改所調用函數的數據類(lèi)型即可。

② 出現提示“.data=no_cong_thresh”未定義之類(lèi)的錯誤時(shí),在相應源碼中將其注釋即可。

③ Wireless_seq_show函數錯誤直接采用2.6.24版本替換2.6.12版本即可。

④ net_sysctl_strdup類(lèi)錯誤和警告一定要消除,消除方法是替換neighbour.h文件及相關(guān)文件。

2.4 USB無(wú)線(xiàn)網(wǎng)卡驅動(dòng)編譯

首先,下載主芯片Realtek 8188SU的最新驅動(dòng)RTL8188SU_usb_linux_v2.6.6.0.20101111.zip,然后解壓進(jìn)入相應目錄修改config、Makefile文件。

(1) 修改config

[root@localhost 8188su]# gvim config

修改第16行,關(guān)閉PC模式:

16 CONFIG_PLATFORM_I386_PC=n

修改第18行,打開(kāi)ARM模式

18 CONFIG_PLATFORM_ARM_S3C=y

(2) 修改Makefile

修改交叉編譯器和ARM內核安裝目錄:

[root@localhost 8188su]# gvim Makefile

修改第94行為gcc交叉編譯器所在路徑:

CROSS_COMPILE:=/usr/local/arm/3.4.1/bin/armlinux

修改第95行,直接注釋掉以下語(yǔ)句:


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>