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
输入密码
测试结果可以上外网