驱动源码
RTL8723BS 驱动源码 github地址:
https://github.com/ferbar/rtl8723bs
硬件
将WIFI 插到 SD卡槽上,由于接口与SD一致,直接使用
移植适配
添加驱动到 linux/drivers/net/wireless 目录下
修改Kconfig 以及 Makefile 加入如下
执行
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
将如上位置打勾
Realtek 8723B SDIO or SPI WiFi
Enable SDIO interface for Realtek
编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
上电查看LOG
RTL8723BS: rtw_ndev_init(wlan0)
则驱动加载正常
ifcofnig -a
查看网卡状态
有wlan0 网卡OK
激活网卡
ifconfig wlan0 up
如果出现accquire FW from file
需要将驱动源码中的rtl8723bs_nic.bin 放置到
/lib/firmware/rtlwifi/ 的位置上
使用wpa_supplicant 验证网络
wpa_supplicant -i wlan0 -c wpa_supplicant.conf &
使用udhcpc 向网关申请IP地址 成功既可证明网络正常
ping www.baidu.com 基础验证网速
wpa_supplicant.conf 文件
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
network={
ssid="mkt"
psk="asd123456"
key_mgmt=WPA-PSK
}
WIFI扫卡流程
- 设备上电
- 主机通过硬件检测引脚 探测卡存在
- 主机发送CMD0 复位SDIO卡
- 发送CMD5 询问卡的操作电压范围,其支持的电压
- 发送CMD5 选择合适的电压,回复后 再次发送CMD5确认
- 发送ACMD41 进入卡初始化,这一步会多次执行,直到进入下一阶段
- 发送CMD8 查询卡能力,如支持的传输模式和功能
- 发送CMD3 获取卡的RCA,发送CMD9 读取CSD寄存器,获取卡存储容量和性能信息
- 发送CMD7 带RCA 选择卡,设置为传输状态
- 发送ACMD6 配置SDIO卡的数据总线宽度,优化数据传输速率
- 发送CMD52和CMD53来读写SDIO卡的I/O寄存器
- 发送CMD13来检查卡的状态
这样子扫卡和握手流程完毕,切换到高速状态