1、在路径添加rtl8723du模块代码
kernel/drivers/net/wireless/rockchip_wlan
添加rtl8723du

2、修改Makefile
修改对应的路径

修改交叉编译的工具的路径和内核路径

3、修改rockchip_wlan目录下的Makefile

添加这个 obj-$(CONFIG_RTL8723DU) += rtl8723du/
4、修改rockchip_wlan目录下的Kconfig

添加 source "drivers/net/wireless/rockchip_wlan/rtl8723du/Kconfig"
5、修改kernel/arch/arm64/configs/rockchip_linux_defconfig

添加CONFIG_RTL8723DU=y
6、配置完成make编译
在kernel目录下的.config 配置文件查看是否有

编译完成可以生成如下模块驱动

rtl8723du.ko 就是模块驱动
7、硬件设置如下

GPIO3_B7 IO控制这wifi的电压所以要配置DTS拉高 io口
修改文件rk3568-evb1-ddr4-v10.dtsi
添加如下

//wifi
wireless_wlan {
compatible = "wlan-platdata";
wifi_chip_type = "rtl8723du";
rockchip,grf = <&grf>;
WIFI,poweren_gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
keep_wifi_power_on;
status = "okay";
};
重新编译kernel
8、安装驱动
insmod /mnt/rtl8723du.ko ifname=ra0
9、开启udhcpd
cd buildroot
make busybox-menuconfig
确保Networking Utilities->udhcpd (DHCP server)为’*’,保存修改
make busybox-update-config
在文件buildroot/package/busybox/busybox.config增加了如下几个宏定义

./build.sh buildroot
在文件buildroot/output/rockchip_rk3568/build/busybox-1.34.1/.config中也增加了个宏定义

最终在目录buildroot/output/rockchip_rk3568/target/usr/sbin中有了udhcpd

cd kernel
make menuconfig
确保Networking support->Networking options->IP: DHCP support为’*’
cd ..
./build.sh kernel
重新下载kernel 和rootfs

10 、移植hostapd
下载wpa_supplicant_8_M_6.x_rtw_r17190.20160415.tar,解压修改Makefile、.config
生成hostapd、hostapd_cli
拷贝到目录buildroot/output/rockchip_rk3568/target/usr/sbin

11、启动ra0 wifi接口
ifconfig ra0 up
12、运行hostapd
创建文件hostapd.conf,添加内容如下
touch /tmp/hostapd.conf
ctrl_interface=/tmp/run/hostapd
interface=ra0
driver=nl80211
ssid=wifi_ap33
channel=1
auth_algs=3
hw_mode=g
max_num_sta=64
ap_max_inactivity=300
wpa=3
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
ieee80211n=1
ht_capab=HT40+
创建目录mkdirr/tmp/run

13、创建网桥 br0 ,添加ra0
root@RK356X:~]# brctl addbr br0
[root@RK356X:~]# ifconfig br0 192.168.63.1
[root@RK356X:~]# brctl addif br0 ra0
[root@RK356X:~]#

14、添加地址转发
[root@RK356X:~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@RK356X:~]# iptables -t nat -F
[root@RK356X:~]# iptables -t nat -A POSTROUTING -o eth0 --jump MASQUERADE
[root@RK356X:~]#

route 查询默认网关

iptables -t nat -L 是否添加了eth0 转发

15、运行udhcpd
创建文件 touch /tmp/udhcpd.conf
start 192.168.63.2
end 192.168.63.254
interface br0
opt dns 114.114.114.114
option subnet 255.255.255.0
opt router 192.168.63.1
option domain local
option lease 864000

提示错误,创建文件 touch /tmp/udhcpd.leases
[root@RK356X:/tmp]# touch udhcpd.leases
[root@RK356X:/tmp]#

地址被占用
执行命令
ps aux

杀死进程dnsmasq
[root@RK356X:/tmp]# kill -9 689
[root@RK356X:/tmp]#
再运行 udhcpd

15 、ping 8.8.8.8

如果网络可以通
16、手机连接wifi_ap33
输入密码
测试结果可以上外网
















