自编译适用于树莓派4B的Openwrt镜像

openwrtraspberrypi.png

原来一直都在使用 https://github.com/SuLingGG/OpenWrt-Rpi 的镜像,但是不知道因为什么,在使用该镜像的时候,系统总是莫明其妙的间隔一段时间就会重启,排查的一圈也没有找到具体的问题,在自己尝试使用官方原版镜像的时候,发现好像是因为网卡驱动问题,导致网卡工作不正常,具体表现为断流(ping 都无法正常工作)。

而在最近一次使用命令 opkg list-upgradable | cut -f 1 -d ' ' | xargs -r opkg upgrade 更新全部系统包的时候,导致系统崩溃,首先是 wget-ssl 包,出现Error relocating /usr/bin/wget-ssl: reallocarray: symbol not found的错误,通过降级 wget-ssl 得到解决;但是后续更新的时候发现 luci 出错,而且无法通过 cli 进行固件更新,嘶~头皮发麻。稳定性堪忧,而且最近这个项目还把 issue 关闭,简直了。

于是准备自编译固件镜像。

自编译 Openwrt 镜像

前提准备

1. 查询树莓派的官方固件支持情况。

https://openwrt.org/toh/hwdata/raspberry_pi_foundation/raspberry_pi_foundation_raspberry_pi_4_b

得到CPU型号为 Broadcom BCM2711

2. 下载对应的 image-builder

https://downloads.openwrt.org/releases/21.02.1/targets/bcm27xx/bcm2711/

image.png

3. 解压压缩包并查看构建帮助

tcy@tcy ~/D/openwrt-imagebuilder-21.02.1-bcm27xx-bcm2711.Linux-x86_64> make info
Current Target: "bcm27xx/bcm2711"
Current Revision: "r16325-88151b8303"
Default Packages: base-files ca-bundle dropbear fstools libc libgcc libustream-wolfssl logd mtd netifd opkg uci uclient-fetch urandom-seed busybox procd bcm27xx-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835 kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 partx-utils mkf2fs e2fsprogs dnsmasq firewall ip6tables iptables kmod-ipt-offload odhcp6c odhcpd-ipv6only ppp ppp-mod-pppoe
Available Profiles:

rpi-4:
    Raspberry Pi 4B/400/4CM (64bit)
    Packages: cypress-firmware-43455-sdio cypress-nvram-43455-sdio-rpi-4b kmod-brcmfmac wpad-basic-wolfssl iwinfo
    hasImageMetadata: 1
    SupportedDevices: raspberrypi,400 raspberrypi,4-compute-module raspberrypi,4-model-b

5. 开始构建镜像

考虑到可能是因为驱动问题导致网络不稳定,所以在这里加入了 kmod-rtl8187 kmod-rtl8192c-common kmod-rtl8192cu kmod-rtlwifi kmod-rtlwifi-usb kmod-usb-net-rtl8150 kmod-usb-net-rtl8152 这些内核模块,目前外置USB网卡也稳定运行、效果不错。

make image  PACKAGES="kmod-rtl8187 kmod-rtl8192c-common kmod-rtl8192cu kmod-rtlwifi kmod-rtlwifi-usb kmod-usb-net-rtl8150 kmod-usb-net-rtl8152 luci"

6. 刷入新镜像

image.png


标题:自编译适用于树莓派4B的Openwrt镜像
作者:糖醋鱼
地址:https://expoli.tech/articles/2021/12/15/1639564263986.html

    评论
    3 评论
    2022-04-23 15:16 回复»

    OpenWrt repo didn't have its 'libc' package listed in the 'Packages.gz' index file, therefore this package didn't get upgraded, causing that symbol resolution issue.

    You will need to manually download and install the latest version of this package, such as:

    wget https://downloads.openwrt.org/snapshots/targets/x86/64/packages/libc_1.2.3-4_x86_64.ipk
    opkg install libc_1.2.3-4_x86_64.ipk
    
    2022-03-16 16:11 回复»

    不好意思,这个暂时没有了呢,你跟据我上面所写的步骤进行逐步操作就行了

    2022-01-17 23:28 回复»

    我也正为这个苦恼呢,自己懒的编译(其实是不会),请问能发我一个你编好的固件吗?shuangll@hotmail.com 谢谢

avatar

取消