日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

USB转WIFI无线网卡驱动程序(RT5370驱动程序)的移植记录之一

發(fā)布時間:2023/12/10 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USB转WIFI无线网卡驱动程序(RT5370驱动程序)的移植记录之一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學習交流加

  • 個人qq:
    1126137994
  • 個人微信:
    liu1126137994
  • 學習交流資源分享qq群:
    962535112

今天記錄我在I.MX6Q平臺移植RT5370無線網卡驅動程序的過程,加qq1126137994 微信:liu1126137994 共同學習更多技術!!!

兩種移植方法:1、移植官方下載的RT5370驅動程序源碼 2、在Linux內核配置自帶的RT5370驅動程序

今天先記錄移植官方下載的RT5370驅動程序源碼。內核自帶的驅動的配置方法放到以后的文章中!

一、移植官方下載的驅動程序源碼

***軟件環(huán)境:***虛擬機ubuntu12.04

硬件環(huán)境: IMX6Q單板 RT5370wifi芯片

RT5370驅動程序源碼下載點擊下載:

先說一下思路:當我們需要移植一個驅動程序的時候,大概有兩種移植的情況:移植內核自帶的驅動程序,移植非內核自帶的驅動程序

這里先說移植非內核自帶的驅動程序的思路:首先要看源程序的README文件,看別人說的是如何修改與配置。然后一定會修改的文件是Makefile文件(主要是指定編譯工具,內核樹,單板信息等),然后有可能還會需要修改其他配置文件(這與具體的驅動程序有關)。

1. 首先下載驅動程

下載好的驅動程序放到Linux系統(tǒng),解壓,打開README_STA_usb文件:

======================================================================= Build Instructions: ====================1> $tar -xvzf DPB_RT2870_Linux_STA_x.x.x.x.tgzgo to "./DPB_RT2870_Linux_STA_x.x.x.x" directory.2> In Makefileset the "MODE = STA" in Makefile and chose the TARGET to Linux by set "TARGET = LINUX"define the linux kernel source include file path LINUX_SRCmodify to meet your need.3> In os/linux/config.mk define the GCC and LD of the target machinedefine the compiler flags CFLAGSmodify to meet your need.** Build for being controlled by NetworkManager or wpa_supplicant wext functionsPlease set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'.=> #>cd wpa_supplicant-x.x=> #>./wpa_supplicant -Dwext -ira0 -c wpa_supplicant.conf -d** Build for being controlled by WpaSupplicant with Ralink DriverPlease set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n'.=> #>cd wpa_supplicant-0.5.7=> #>./wpa_supplicant -Dralink -ira0 -c wpa_supplicant.conf -d4> $make# compile driver source code# To fix "error: too few arguments to function ˉiwe_stream_add_event"=> $patch -i os/linux/sta_ioctl.c.patch os/linux/sta_ioctl.c5> $cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat6> load driver, go to "os/linux/" directory.#[kernel 2.4]# $/sbin/insmod rt2870sta.o# $/sbin/ifconfig ra0 inet YOUR_IP up#[kernel 2.6]# $/sbin/insmod rt2870sta.ko# $/sbin/ifconfig ra0 inet YOUR_IP up7> unload driver $/sbin/ifconfig ra0 down$/sbin/rmmod rt2870sta

在README_STA_usb文件中找到上述內容,上述內容就是告訴你如何修改編譯驅動程序的。
那么我們就根據(jù)上述7條內容來執(zhí)行:
(1)解壓
(2)修改Makefile:
打開源代碼程序Makefile,發(fā)現(xiàn)MODE = STA TARGET = LINUX 已經是與要求的一樣了,那么這兩個地方就不用修改!!!

然后找到PLATFORM = SMDK 將它的注釋去掉,用的平臺是SMDK,同時注釋掉本身設置的PLATFORM = PC 這句話。

找到:

ifeq ($(PLATFORM),SMDK) LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux- endif

修改為:

ifeq ($(PLATFORM),SMDK) LINUX_SRC = /home/zsl/work/system/linux-3.0.35 CROSS_COMPILE = /home/zsl/work/system/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- endif #其中LINUX_SRC代表我們開發(fā)板使用的Linux操作系統(tǒng)的內核目錄 # #CROSS_COMPILE代表我們編譯內核用的編譯工具的目錄#

(3)修改os/linux/config.mk
根據(jù)文檔:
define the GCC and LD of the target machine
define the compiler flags CFLAGS

查看config.mk發(fā)現(xiàn)如下:

CC := $(CROSS_COMPILE)gcc LD := $(CROSS_COMPILE)ld

$(CROSS_COMPILE)這個是變量引用,在Makefile中這個變量就代表:/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-

所以在這里就不需要修改!!!

然后找到:

# Support AP-Client function HAS_APCLI=n# Support Wpa_Supplicant HAS_WPA_SUPPLICANT=n# Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

把這幾個值的n全部變成y:

# Support AP-Client function HAS_APCLI=y# Support Wpa_Supplicant HAS_WPA_SUPPLICANT=y# Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

然后文檔中還有說關于wpa_supplicant的操作與使用放到下一篇文章講解!

(4)make
編譯源碼程序,會在os/linux/目錄下生成rt5370sta.ko驅動模塊程序!!!

(5)load driver
裝載驅動程序。裝載驅動程序之前需要

將/os/linux/目錄下的rt5370sta.ko拷貝到開發(fā)板上,并將驅動根目錄下的RT2870STA.dat拷貝到開發(fā)板的/etc/Wireless/RT2870STA/目錄下,前提是需要自己手動創(chuàng)建/etc/Wireless/RT2870STA/目錄

然后裝載驅動程序
insmod rt5370sta.ko

我的出現(xiàn)如下錯誤:

rt5370sta: Unknown symbol usb_alloc_urb (err 0)rt5370sta: Unknown symbol usb_free_urb (err 0)rt5370sta: Unknown symbol usb_alloc_coherent (err 0)rt5370sta: Unknown symbol usb_register_driver (err 0)rt5370sta: Unknown symbol usb_put_dev (err 0)rt5370sta: Unknown symbol usb_get_dev (err 0)rt5370sta: Unknown symbol usb_submit_urb (err 0)rt5370sta: Unknown symbol usb_free_coherent (err 0)rt5370sta: Unknown symbol usb_control_msg (err 0)rt5370sta: Unknown symbol usb_deregister (err 0)rt5370sta: Unknown symbol usb_kill_urb (err 0)insmod: error inserting 'rt5370sta.ko': -1 Unknown symbol in module

這些錯誤都是那些函數(shù)無符號,至于為什么無符號,我查了一下,有可能是沒有聲明GPL協(xié)議,需要更改os/linux下的usb_main_dev.c文件,在開頭的地方寫上:

MODULE_LICENSE("GPL");

然后make 重新編譯源碼程序!!!編譯成功
重新加載驅動程序:
insmod rt5370sta.ko

顯示裝載成功!!!

然后我們ifconfig ra0 up

打開ra0后,再ifconfig查看一下:

這說明我們的驅動程序已經可以正常使用了!!!

再卸載試一下:
首先:ifconfig ra0 down
然后: rmmod rt5370sta.ko

可以看出,我們的WIFI驅動程序可以正常使用與卸載!!!

那么接下來的README_STA_usb 文檔中的內容是介紹如何操作使用wpa_supplicant。

這里說一下wpa_supplicant

wpa_supplicant主要是用來支持WEP,WPA/WPA2和WAPI無線協(xié)議和加密認證的,由于linux本身并不支持WPA的加密,所以需要移植wpa_supplicant來使wifi能夠連接WPA加密的無線路由上,簡單的說,wpa_supplicant就是WiFi驅動和用戶的中轉站外加對協(xié)議和加密認證的支持。
wpa_supplicant的移植就放到下一篇文章中了~

想一起探討以及獲得各種學習資源加我:
qq:1126137994
微信:liu1126137994
可以共同交流關于嵌入式,操作系統(tǒng),C++語言,C語言,數(shù)據(jù)結構等技術問題。

總結

以上是生活随笔為你收集整理的USB转WIFI无线网卡驱动程序(RT5370驱动程序)的移植记录之一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。