realtek—wifi驱动移植

移植的驱动为usb RTL8188EUS的驱动。


一、先拿到realtek的驱动源码。

realtek# tree -d
.
├── rtl8188EUS
│   ├── core
│   │   └── efuse
│   ├── hal
│   │   ├── hal_hci
│   │   ├── led
│   │   ├── OUTSRC
│   │   │   └── rtl8188e
│   │   ├── OUTSRC-BTCoexist
│   │   └── rtl8188e
│   │       └── usb
│   ├── include
│   │   ├── byteorder
│   │   └── linux
│   ├── os_dep
│   │   └── linux
│   └── platform
├── rtl8189FS
│   ├── core
│   │   └── efuse
│   ├── hal
│   │   ├── btc
│   │   ├── efuse
│   │   │   └── rtl8188f
│   │   ├── hal_hci
│   │   ├── led
│   │   ├── phydm
│   │   │   ├── rtl8188f
│   │   │   └── txbf
│   │   └── rtl8188f
│   │       └── sdio
│   ├── include
│   │   ├── byteorder
│   │   └── linux
│   ├── os_dep
│   │   └── linux
│   └── platform
├── rtl8192CU
│   ├── core
│   │   └── efuse
│   ├── hal
│   │   └── rtl8192c
│   │       └── usb
│   ├── include
│   │   ├── byteorder
│   │   └── linux
│   └── os_dep
│       └── linux
└── rtl8723BU
    ├── core
    │   └── efuse
    ├── hal
    │   ├── efuse
    │   │   └── rtl8723b
    │   ├── hal_hci
    │   ├── led
    │   ├── OUTSRC
    │   │   └── rtl8723b
    │   ├── OUTSRC-BTCoexist
    │   └── rtl8723b
    │       └── usb
    ├── include
    │   ├── byteorder
    │   └── linux
    ├── os_dep
    │   └── linux
    └── platform

其实我们只需要里面的rtl8188EUS目录。

二、将realtek目录加入到driver/net/wireless目录下

去除wireless下原有的rtlwifi驱动(我们加入的realtek是全新的驱动,所以不需要它了),同时加上realtek的配置

打开wireless下面的Kconfig

.....
.....
source "drivers/net/wireless/ath/Kconfig"
source "drivers/net/wireless/b43/Kconfig"
source "drivers/net/wireless/b43legacy/Kconfig"
source "drivers/net/wireless/bcmdhd/Kconfig"
source "drivers/net/wireless/brcm80211/Kconfig"
source "drivers/net/wireless/hostap/Kconfig"
source "drivers/net/wireless/ipw2x00/Kconfig"
source "drivers/net/wireless/iwlwifi/Kconfig"
source "drivers/net/wireless/iwlegacy/Kconfig"
source "drivers/net/wireless/libertas/Kconfig"
source "drivers/net/wireless/orinoco/Kconfig"
source "drivers/net/wireless/p54/Kconfig"
source "drivers/net/wireless/rt2x00/Kconfig"
#source "drivers/net/wireless/rtlwifi/Kconfig"//将它注释掉,这样就不会出现在make meunconfig中了
source "drivers/net/wireless/ti/Kconfig"
source "drivers/net/wireless/zd1211rw/Kconfig"
source "drivers/net/wireless/mwifiex/Kconfig"
source "drivers/net/wireless/cw1200/Kconfig"
source "drivers/net/wireless/rsi/Kconfig"
source "drivers/net/wireless/realtek/Kconfig"//加上realtek的
endif # WLAN

打开wireless下面的Makefile

#obj-$(CONFIG_RTLWIFI)           += rtlwifi/ //注释掉rtlwifi

obj-y += realtek/  加上realtek的

三、配置make menuconfig

将对应的rtl8188eus编译到内核中去。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当然,配置这些还是不够的,因为我们是usb wifi驱动,usb的一些支持与wifi的一些支持也是要的!(其实如果之前使用这个usb host口成功,那么也是不用配的,比如我之前使用usb host作为usb转串口,没问题,那么这里我就不需要再配了)

usb支持:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

chipideal的三个都要配,原因是imx6ull的usb主控制器是使用的chipideal的。

wifi配置:

由于wifi是ieee:802.11的所以这个也要配(这个的路径和rtl8188eus配置的路径一样)
在这里插入图片描述

还有:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

OK,按道理配完这些就能驱动usb wifi了


四、启动内核

ifconfig发现有wlan0,很开心。

但是当我ifconfig wlan0 的时候竟然usb disconnected!

#
# ifconfig wlan0 up
==> rtl8188e_iol_efuse_patch
usb 1-1: USB disconnect, device number 15
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
RTL871X: indicate disassoc
RTL871X: rtw_cmd_thread: DriverStopped(0) SurpriseRemoved(1) break at line 478
RTL871X: rtw_ndev_uninit(wlan0)
# RTL871X: rtw_dev_unload: driver not in IPS

于是我在想:是usb 模块的原因还是 usb wifi驱动的原因?

就这样我先试了:换一个rtl8188eus驱动

于是就有了这篇:https://blog.csdn.net/m0_54657729/article/details/131766527


最后发现还是有问题!

但是我又用这个usb 模块到ubuntu和windows下使用都没问题。

就这里陷入了僵局!

其中也有在源码中打过log,最详细的发现是在读取usb wifi模块的0xeac的时候读取不到导致的usb disconnected,这不就是usb 模块的问题吗?(其实还有可能是usb wifi和我的usb host连接不稳定的原因)

之后,多次插拔usb wifi模块,竟然惊奇的发现有一次ifconfig wlan0 up成功了!(但是多数情况是失败的,而且在up上的情况下也有可能disconnected)

# ifconfig wlan0 up
==> rtl8188e_iol_efuse_patch
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

说明原因就是我的usb wifi模块和usb host接口不稳定照成的(之后我也用过这个usb host和usb 转串口进行实现,发现也有些不稳定,可能就是我这个usb host接口有点问题了)

至此:usb wifi移植完成!

==> rtl8188e_iol_efuse_patch
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready


说明原因就是我的usb wifi模块和usb host接口不稳定照成的(之后我也用过这个usb host和usb 转串口进行实现,发现也有些不稳定,可能就是我这个usb host接口有点问题了)

# 至此:usb wifi移植完成!

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值