本文基于SSD201 移植RTL8723DU模块(wifi)记录移植流程。
由于USB是默认配置好的,那么我们只需要对模块单独配置就可以了。
获取RTL8723DU的wifi驱动,将驱动拷贝到kernel/drivers/net/wireless目录下。
修改kernel/drivers/net/wireless/Makefile :
# vi Makefile
+ obj-$(CONFIG_RTL8723DU) += rtl8723du/
修改kernel/drivers/net/wireless/Kconfig:
# vi Kconfig
+ source "drivers/net/wireless/rtl8723du/Kconfig"
# vi Kconfig + source "drivers/net/wireless/rtl8723du/Kconfig"
配置kernel:
# make menuconfig
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
<*> Realtek 8723D USB WiFi
-> Networking support (NET [=y]) (1) -> Wireless (WIRELESS [=y])
同步到相应的配置:
cp .config arch/arm/configs/infinity2m_spinand_ssc011a_s01a_minigui_cz_defconfig
编译一下:
./Release_to_customer.sh -f nand -p ssd201 -o cz
编译成功后烧录到板子上,发现没识别到模块,需要控制一下wifi供电。
echo 47 > sys/class/gpio/export
echo out > sys/class/gpio/gpio47/direction
echo 1 > sys/class/gpio/gpio47/vlaue
可以看到成功识别到模块了:
ifconfig 也出现了wlan0节点:
接下来在buildroot中获取一下wpa_supplicant工具:
# cd buildroot-2020.05/
# make menuconfig
-> Target packages
-> Networking applications
make 编译:
# make
拷贝文件系统至project:
# cp output/images/rootfs.tar ../project/image/rootfs
# cd ../project/image/rootfs
# tar xvf rootfs.tar -C rootfs/
# tar cvf rootfs.tar.gz rootfs/
重新编译:
./Release_to_customer.sh -f nand -p ssd201 -o cz
烧录到开发板。
可以看到有wpa_supplicant工具了。
搜索能识别到的wifi:
# iw wlan0 scan
配置wifi信息:
# cat appconfigs/wpa_supplicant.conf
注意:ctrl_interface 需要在/var/run/目录下新建 wpa_supplicant 连接wifi:
# wpa_supplicant -i wlan0 -D nl80211 -c /appconfigs/wpa_supplicant.conf -B &
因为之前有开启udhcp,所以看到wifi已经成功获取到IP了。
尝试ping 百度:
# ping www.baidu.com -I wlan0
成功ping通啦。