Raspberry Pi Zero W Install OpenWrt
刷写 OpenWrt 系统镜像
进入 OpenWrt 系统的下载页面
根据树莓派的型号, 选择对应的系统镜像, 例如:
wget https://downloads.openwrt.org/releases/22.03.5/targets/bcm27xx/bcm2708/openwrt-22.03.5-bcm27xx-bcm2708-rpi-ext4-factory.img.gz
解压下载好的文件
gzip -d openwrt-22.03.5-bcm27xx-bcm2708-rpi-ext4-factory.img.gz
写入前建议先使用 fdisk -l
查看系统中的设备名, 千万不能写错设备
随后根据自己系统中SD卡的设备名, 写入镜像
dd if=openwrt-22.03.5-bcm27xx-bcm2708-rpi-ext4-factory.img of=/dev/sda bs=2M conv=fsync
sync
开启前的准备(可选)
由于树莓派 Zero W, 正常情况下只有一个 Wi-Fi 接口, 没有以太网口, 因此为了实现 headless 启动, 我们需要让其在开机后, 自动完成连接 Wi-Fi 的工作
参考官方文档中 flashing_openwrt_with_wifi_enabled_on_first_boot 和 connect_client_wifi, 可以使用以下配置, 在第一次开启树莓派的时候, 自动连接到我们的局域网中
#
# /etc/uci-defaults/xxx_config
#
uci set network.wan=interface
uci set network.wan.proto='dhcp'
uci set firewall.@zone[0]=zone
uci set firewall.@zone[0].name='wan'
uci set firewall.@zone[0].input='ACCEPT'
uci set firewall.@zone[0].output='ACCEPT'
uci set firewall.@zone[0].forward='ACCEPT'
uci set firewall.@zone[0].masq='1'
uci set firewall.@zone[0].mtu_fix='1'
uci set firewall.@zone[0].network='wan'
uci set wireless.@wifi-device[0].disabled="0"
uci set wireless.@wifi-iface[0].disabled="0"
uci set wireless.@wifi-iface[0].network='wan'
uci set wireless.@wifi-iface[0].country=CN
uci set wireless.@wifi-iface[0].mode='sta'
uci set wireless.@wifi-iface[0].ssid='ABCDEF'
uci set wireless.@wifi-iface[0].encryption='psk2'
uci set wireless.@wifi-iface[0].key='flz#3qcysyhl9day'
uci commit
至此开机前的准备就完成了
启动 USB 网卡
树莓派通电后, 应该就会自动连接上局域网, 此时我们可以直接 ssh
上去对其进行操作
换源(可选)
为了加快安装的速度, 我们可以更换为国内的源
cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak
sed -i 's/downloads\.openwrt\.org/mirrors\.tuna\.tsinghua\.edu\.cn\/openwrt/g' /etc/opkg/distfeeds.conf
安装驱动
我们一共需要安装两个驱动
opkg install kmod-usb-dwc2 kmod-usb-gadget-eth
echo 'g_ether' > /etc/modules.d/gadget-eth
echo 'dtoverlay=dwc2' >> /boot/config.txt
重启之后, OpenWrt 就可以支持 USB 网卡了, 但由于我们并没有对这块网卡做操作, 因此它仍然不能正常工作
设置网卡
我们登录至 OpenWrt 的 Web 管理页面, 进入 Network -> Interfaces -> Devices, 将这张网卡加入 br-lan 中
同时为了防止和现有网段冲突, 记得及时修改我们系统的网段
更新 root 分区
OpenWrt系统在刚安装好之后, 并不会使用全部的 SD 卡空间, 我们需要扩展这个分区
参考官方文档
opkg update
opkg install parted losetup resize2fs
uclient-fetch -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
. ./expand-root.sh
reboot
重启完成后, 就可以看到 root 分区已经扩展完成了