前言
上一篇博客中我们虽然已经成功编译出了内核,但是那只是一个最简单的驱动程序并没有对zero w 上面的WIFI进行支持,接下来我们开始配置
配置buildroot提取wifi固件
在buildroot目录下使用命令
sudo make menuconfig
对路径Target packages → Hardware handling → Firmware 下做如下配置
对如下路径Target packages → Networking applications
顺便把同路径的这些选项一起勾了,后面有用,基本都是关于wifi的
[*] openssh
[*] client (NEW)
[*] server (NEW)
[*] key utilities (NEW)
[*] dhcpcd
[*] dhcpdump
配置linux内核
最后我们还需要去配置
一下linux内核,因为wifi驱动程序是在哪里配置。
配置路径Target packages → Hardware handling → Firmware → WiFi firmware
电脑左右按键选择保存,到buildroot目录下的.config文件下,最后一直选择exit退出即可
个性化配置
这个算是在中间插入的,对功能没有影响,个人爱好,不配也没有关系
在这里可以配置,你的开机密码,账户等等
路径System configuration
添加有关WIFI的配置脚本
我们配置好以上基础选项以后,一些高度客制化的东西就无法再使用图形界面来配置
了,比如你要链接那一个WFI这种设置
所以我们需要在buildroot生成镜像之前,把我们需要插入的信息插入到文件系统中去
我们需要插入的信息有以下文件
- interfaces //用来设置 wifi的开启与是否静态ip
- S30wpa_supplicant //会作为开机自启动的服务程序,自动加载wifi驱动等相关配置
- wpa_supplicant.conf //我们需要连接哪一个wifi在这里描述
- env.sh //开机后需要运行的我们指定的内容,这里只设置了路径显示
下面是各个文件应该放置的位置,与文件中的内容
buildroot/output/target/etc/wpa_supplicant.conf
#ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
country=CN
network={
ssid="wifi名字"
psk="密码*"
key_mgmt=WPA-PSK
priority=1 //数字越大链接的优先级越高
}
network={
ssid="pulice"
psk="2831874767fc"
key_mgmt=WPA-PSK
priority=2
}
buildroot/output/target/etc/init.d/S30wpa_supplicant
#!/bin/sh
dev=wlan0
case "$1" in
start)
printf "Starting wpa_supplicant: "
modprobe brcmfmac
ifconfig $dev up
/usr/sbin/wpa_supplicant -B -Dnl80211 -i$dev -c/etc/wpa_supplicant.conf
[ $? = 0 ] && echo "OK" || echo "FAIL"
;;
stop)
printf "Stopping wpa_supplicant: "
killall wpa_supplicant
[ $? = 0 ] && echo "OK" || echo "FAIL"
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
buildroot/output/target/etc/network/interfaces
# interface file auto-generated by buildroot
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant.conf
buildroot/output/target/etc/profile.d/env.sh
export PS1="\[\e[1;36m\][\u@\h \W]\\$\[\e[0m\]"
烧录与启动
做完以上工作就可以回到buildroot重新使用make生成带有自启动wifi的镜象文件了
注意
如果你没编译过,一定要先编译过之后,再添加我们上面说到的wifi配置文件
到你的跟文件系统,因为如果你没有编译过,根本就没有那个目录给你配置。
最后,启动树莓派的效果