004 使用buildroot编译内核给树莓派zero w安装wifi驱动

本文档详细介绍了如何通过配置Buildroot和Linux内核来添加WiFi支持,包括配置WiFi固件、网络应用程序,如openssh和dhcpcd,并提供了相关配置脚本的示例,如wpa_supplicant.conf和init.d脚本。此外,还指导了如何将这些配置整合到文件系统中,以便在启动时自动连接WiFi。最后,文章强调了在完成配置后需要重新生成镜像并烧录到树莓派中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

上一篇博客中我们虽然已经成功编译出了内核,但是那只是一个最简单的驱动程序并没有对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生成镜像之前,把我们需要插入的信息插入到文件系统中去
我们需要插入的信息有以下文件

  1. interfaces //用来设置 wifi的开启与是否静态ip
  2. S30wpa_supplicant //会作为开机自启动的服务程序,自动加载wifi驱动等相关配置
  3. wpa_supplicant.conf //我们需要连接哪一个wifi在这里描述
  4. 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配置文件
到你的跟文件系统,因为如果你没有编译过,根本就没有那个目录给你配置。
最后,启动树莓派的效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值