1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 全志A40i移植 RTL8188FTV/RTL8188FU USB-WiFi

全志A40i移植 RTL8188FTV/RTL8188FU USB-WiFi

时间:2019-02-02 16:13:30

相关推荐

全志A40i移植 RTL8188FTV/RTL8188FU USB-WiFi

第三天调试USB-WiFi,平台还是全志A40i,Linux内核:3.10.65

网上买了一个芯片型号写着RTL8188EU的USB-WiFi,但买回来,发现USB-ID号不是0x0bda 0x8179,而是0x0bda 0xf179,把网卡插到Windows系统一看,型号是RTL8188FTV,又闹了乌龙。。

在A40i的Linux内核驱动中(Linux3.10),只有一个RTL8189F的驱动,还是SDIO接口,就算在Makefile中将接口改成USB,也会编译失败。

无奈之下,只能到网上下载驱动了,我找的驱动:rtl8188FU_linux_v5.3.0.1

文章目录

驱动安装WiFi测试

驱动安装

原驱动不能直接编译,还需要做一些小修改:

修改Makefile文件

首先确认芯片型号接口选择

平台选择上取消I386_PC,选择SUN50IW1P1(没有SUN8I,选择SUN8I_W3P1我没编译成功)

搜索CONFIG_PLATFORM_ARM_SUN50IW1P1,找到该平台对应的配置项,修改ARCH,CROSS_COMPILE,KSRC,KVER几个与编译环境有关的配置(根据自己编译器和内核的路径修改):

make

修改完Makefile文件后,到驱动根目录使用make命令进行编译。

这个错误是我个人问题,驱动的目录不能包含中文字符(“(”也不行)

删掉目录的括号和中文字符后,再次编译,遇到mach/sys_config.h头文件未找到,

还好这个问题我遇到过,打开报错的文件驱动目录/platform/platform_ARM_SUNxI_usb.c,修改头文件如下:

再编译,又遇到了第一天的问题,is_zero_mac_addr等3个函数重复定义,

驱动目录/include/ieee80211.h进行以下修改(删除__inline前面的extern),这个错误可能和编译器版本有关,或者少装了什么东西:

终于,成功了!

3. 最后,将驱动目录下生成的8188fu.ko文件拷贝到开发板即可。

WiFi测试

接下来进行简单的测试,看看无线网卡能否正常运行。

安装驱动

使用insmod 8188fu.ko安装驱动,dmesg查看打印信息(如果loglevel较低),我的驱动安装log如下:

[ 3840.859997] RTW: module init start[ 3840.860066] RTW: rtl8188fu v5.3.0.1_28034.0525[ 3840.860073] RTW: build time: Nov 2 18:37:01[ 3840.860232] RTW: rtw_inetaddr_notifier_register[ 3840.860396] RTW:[ 3840.860396] usb_endpoint_descriptor(0):[ 3840.860404] RTW: bLength=7[ 3840.860409] RTW: bDescriptorType=5[ 3840.860414] RTW: bEndpointAddress=81[ 3840.860419] RTW: wMaxPacketSize=512[ 3840.860424] RTW: bInterval=0[ 3840.860430] RTW: RT_usb_endpoint_is_bulk_in = 1[ 3840.860435] RTW:[ 3840.860435] usb_endpoint_descriptor(1):[ 3840.860442] RTW: bLength=7[ 3840.860447] RTW: bDescriptorType=5[ 3840.860451] RTW: bEndpointAddress=2[ 3840.860456] RTW: wMaxPacketSize=512[ 3840.860461] RTW: bInterval=0[ 3840.860467] RTW: RT_usb_endpoint_is_bulk_out = 2[ 3840.860472] RTW:[ 3840.860472] usb_endpoint_descriptor(2):[ 3840.860478] RTW: bLength=7[ 3840.860483] RTW: bDescriptorType=5[ 3840.860488] RTW: bEndpointAddress=3[ 3840.860493] RTW: wMaxPacketSize=512[ 3840.860498] RTW: bInterval=0[ 3840.860502] RTW: RT_usb_endpoint_is_bulk_out = 3[ 3840.860509] RTW: nr_endpoint=3, in_num=1, out_num=2[ 3840.860509][ 3840.860516] RTW: USB_SPEED_HIGH[ 3840.860527] RTW: CHIP TYPE: RTL8188FU[ 3840.861013] RTW: rtw_hal_config_rftype RF_Type is 0 TotalTxPath is 1[ 3840.861035] RTW: Chip Version Info: CHIP_8188F_Normal_Chip_SMIC_B_CUT_1T1R_RomVer(0)[ 3840.861046] RTW: _ConfigChipOutEP_8188F OutEpQueueSel(0x05), OutEpNumber(2)[ 3840.861441] RTW: EEPROM type is E-FUSE[ 3840.862171] RTW: Boot from EFUSE, Autoload OK ![ 3840.862916] RTW: hal_EfuseSwitchToBank: Efuse switch bank to 0[ 3841.081549] RTW: hal_ReadEFuse_WiFi: data end at address=0x74[ 3841.081826] RTW: HW EFUSE[ 3841.081854] RTW: 0x000: 29 81 00 FC 0B 00 00 00 00 0C 04 4C 10 07 00 00[ 3841.081893] RTW: 0x010: 28 28 29 29 29 29 2B 2B 2C 2D 2D 03 FF FF FF FF[ 3841.081932] RTW: 0x020: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.081971] RTW: 0x030: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.08] RTW: 0x040: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082049] RTW: 0x050: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082088] RTW: 0x060: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082127] RTW: 0x070: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082166] RTW: 0x080: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082204] RTW: 0x090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082243] RTW: 0x0A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082282] RTW: 0x0B0: FF FF FF FF FF FF FF FF 20 30 1B 00 00 00 00 FF[ 3841.082321] RTW: 0x0C0: FF 12 00 10 00 FF 00 FF 00 00 FF FF FF FF FF FF[ 3841.082359] RTW: 0x0D0: DA 0B 79 F1 42 66 40 04 0C 73 20 6D 28 09 03 52[ 3841.082397] RTW: 0x0E0: 65 61 6C 74 65 6B 09 03 38 30 32 2E 31 31 6E 00[ 3841.082436] RTW: 0x0F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082475] RTW: 0x100: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082514] RTW: 0x110: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082553] RTW: 0x120: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082592] RTW: 0x130: C1 B6 FF FF FF FF FF FF FF FF 00 11 FF FF FF FF[ 3841.082631] RTW: 0x140: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082670] RTW: 0x150: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082709] RTW: 0x160: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082748] RTW: 0x170: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082787] RTW: 0x180: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082826] RTW: 0x190: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082865] RTW: 0x1A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082904] RTW: 0x1B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082943] RTW: 0x1C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.082982] RTW: 0x1D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.083021] RTW: 0x1E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.083060] RTW: 0x1F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF[ 3841.083103] RTW: EEPROM VID = 0x bda[ 3841.083110] RTW: EEPROM PID = 0xf179[ 3841.083137] RTW: hal_com_config_channel_plan chplan:0x20[ 3841.083146] RTW: Hal_EfuseParsePowerSavingMode_8188F...bHWPwrPindetect(0)-bHWPowerdown(0) ,bSupportRemoteWakeup(1)[ 3841.083152] RTW: ### PS params=> power_mgnt(2),usbss_enable(0) ###[ 3841.087669] RTW: kfree Pwr Trim flag:1[ 3841.087685] RTW: bb_gain:5[ 3841.095526] RTW: rtl8188f_FirmwareDownload fw: FW_NIC, size: 20288[ 3841.095548] RTW: rtl8188f_FirmwareDownload: fw_ver=d fw_subver=0000 sig=0x88f1, Month=02, Date=06, Hour=16, Minute=59[ 3841.095555] RTW: rtl8188f_FirmwareDownload(): Shift for fw header![ 3841.095561] RTW: rtl8188f_FirmwareDownload by IO write![ 3841.180007] RTW: polling_fwdl_chksum: Checksum report OK! (1, 0ms), REG_MCUFWDL:0x00040105[ 3841.184022] RTW: _8051Reset8188: Finish[ 3841.197599] RTW: _FWFreeToGo: Polling FW ready OK! (39, 10ms), REG_MCUFWDL:0x000401c6[ 3841.197617] RTW: rtl8188f_FirmwareDownload: DLFW OK ![ 3841.197625] RTW: rtl8188f_FirmwareDownload success. write_fw:1, 100ms[ 3841.198040] RTW: <=== rtl8188f_FirmwareDownload()[ 3841.202876] RTW: CardDisableRTL8188FU[ 3841.215505] RTW: hal_read_mac_hidden_rpt OK! (1, 20ms), fwdl:1, id:0x19[ 3841.215524] RTW: InitAdapterVariablesByPROM_8188FU(): REPLACEMENT = 0[ 3841.215531] RTW: rtw_hal_read_chip_info in 350 ms[ 3841.215593] RTW: init_channel_set((null)) ChannelPlan ID:0x20, ch num:13[ 3841.246315] RTW: NR_RECVBUFF: 8[ 3841.246332] RTW: MAX_RECVBUF_SZ: 32768[ 3841.246365] RTW: NR_PREALLOC_RECV_SKB: 8[ 3841.250318] RTW: rtw_alloc_macid((null)) if1, mac_addr:ff:ff:ff:ff:ff:ff macid:1[ 3841.251274] RTW: IQK FW offload:disable[ 3841.251303] RTW: Init_ODM_ComInfo_8188f(): fab_ver=0 cut_ver=12[ 3841.251317] RTW: rtw_regsty_chk_target_tx_power_valid return _FALSE for band:0, path:0, rs:0, t:-1[ 3841.251425] RTW: phy_ConfigBBWithPgParaFile(): No File PHY_REG_PG.txt, Load from HWImg Array![ 3841.251445] RTW: default power by rate loaded[ 3841.251643] RTW: pwrctrlpriv.bSupportRemoteWakeup~~~~~~[ 3841.251663] RTW: pwrctrlpriv.bSupportRemoteWakeup~~~[1]~~~[ 3841.251673] RTW: can't get autopm:[ 3841.251686] RTW: rtw_macaddr_cfg mac addr:04:0c:73:20:6d:28[ 3841.251695] RTW: bDriverStopped:True, bSurpriseRemoved:False, bup:0, hw_init_completed:0[ 3841.278647] RTW: NR_RECVBUFF: 8[ 3841.278663] RTW: MAX_RECVBUF_SZ: 32768[ 3841.278688] RTW: NR_PREALLOC_RECV_SKB: 8[ 3841.282590] RTW: rtw_alloc_macid((null)) if2, mac_addr:ff:ff:ff:ff:ff:ff macid:1[ 3841.282621] RTW: rtw_drv_add_vir_if if2 mac_addr : 06:0c:73:20:6d:28[ 3841.282755] RTW: rtw_wiphy_alloc(phy0)[ 3841.282765] RTW: rtw_wdev_alloc(padapter=eb8d4000)[ 3841.282843] RTW: rtw_wiphy_alloc(phy1)[ 3841.282849] RTW: rtw_wdev_alloc(padapter=eb946000)[ 3841.282863] RTW: rtw_wiphy_register(phy0)[ 3841.284386] RTW: rtw_ndev_init(wlan0) if1 mac_addr=04:0c:73:20:6d:28[ 3841.285812] RTW: rtw_ndev_notifier_call(wlan0) state:16[ 3841.300182] RTW: rtw_ndev_notifier_call(wlan0) state:5[ 3841.300277] RTW: rtw_wiphy_register(phy1)[ 3841.304877] RTW: rtw_ndev_init(wlan1) if2 mac_addr=06:0c:73:20:6d:28[ 3841.306241] RTW: rtw_ndev_notifier_call(wlan1) state:16[ 3841.319641] RTW: rtw_ndev_notifier_call(wlan1) state:5[ 3841.323722] usbcore: registered new interface driver rtl8188fu[ 3841.323740] RTW: module init ret=0

rtl8188F的打印信息比rtl8188EUrtl8192CU的多,不知道是不是DEBUG等级设置不同导致的。

驱动安装log中,提示我wlan0wlan1设备生成成功(不知道为什么有两个,但mac地址相同,所以其实就是同一个设备)

设置WiFi名称和密码

先用iw命令进行扫描,看看网卡能搜索到的WiFi名

iw dev wlan0 scan | grep SSID

如果SSID(WiFi名)为\xe7...这类奇怪字符,说明无法连接该WiFi。

配置/etc/wpa_supplicant.conf文件,ssid表示WiFi名,psk为密码,

设置网卡为STA模式(连接其他WiFi)

使用

wpa_supplicant -i wlan0 -Dnl80211 -c /etc/wpa_supplicant.conf -B

命令将wlan0设置成STA模式,用来连接配置里的WiFi。

使用

wpa_cli -i wlan0 status

命令查看wlan0状态:

或使用

iw dev wlan0 link

现在只是连接上了WiFi,但没有分配IP地址, 还不能上网,使用

udhcpc -i wlan0 &

进行动态分配IP地址:

再次查看wlan0的连接状态,多了一项address(IP地址)

此时网卡已经可以上网了:

网速测试

测试网速需要用到iperf3工具

首先在一台联网的电脑上使用iperf3 -s,将其作为服务端。(连接同一WiFi的电脑应该也可以用来当服务器,我这里用的是云服务器,相当于一台独立IP的外网电脑)

然后在开发板命令行使用iperf3 -c 服务端IP测试客户端的上传速率:约为4M/s。

客户端(开发板)使用iperf3 -c 服务端IP -R用来测试客户端下载速率,测得不到2M/s。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。