0%

为树莓派3B+编译OpenWrt固件

为树莓派3B+编译OpenWrt固件

1. 源码获取

1.1 获取OpenWrt源代码

1
git clone https://github.com/coolsnowwolf/lede.git

1.2 获取插件源代码

方法一:联网获取

1
2
3
4
1. sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default
2. sed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.default
3. git pull
4. ./scripts/feeds update -a && ./scripts/feeds install -a

方法二:离线获取

1
2
3
1. 将其他插件下载到 lede/package 文件夹下
eg. git clone https://github.com/xiaorouji/openwrt-passwall /package
2. /scripts/feeds update -a && ./scripts/feeds install -a

2.开始编译

2.1 在OpenWrt源码目录内输入

1
1. make menuconfig

2.2 系统选择

以树莓派3B+ 为例

  1. Target System (Broadcom BCM27xx)
  2. Subtarget (BCM2710 boards (64 bit))
  3. Target Profile (Raspberry Pi 3B/3B+/3CM (64bit))
  4. Target Images —> #修改kernel和rootfs大小

(256) Kernel partition size (in MB)
(2048) Root filesystem partition size (in MB)

LUCI-> Application 中选择相应插件,插件说明 点击此处

1663769116486.png

2.3 开始编译

1
2
3
make -j8 download V=s    #下载dll库(国内请尽量全局科学上网)
make -j1 V=s #编译固件(单线程编译,首次编译尽量选择单线程)
make -j$(($(nproc) + 1)) V=s #编译固件(多线程)

2.4 编译之后的文件位置

/lede/bin/targets/bcm27xx/bcm2710
红色框选区域为生成的四个固件,按照文件类型可以分为ext4和sysupgrade。常用的为第一种,即ext4-factory.img。
1663502029155.png

3.可能遇见的问题

问题一:dial tcp 108.177.125.141:443: connect: connection refused
解决办法:更换国内的代理地址,如七牛云

问题二:尽量不要一次性编译太多插件,不同的插件可能存在兼容问题,容易导致编译过程异常。
解决办法:可以通过rm -rf ./tmp && rm -rf .config来删除配置。

参考资料

  1. Lean 的 Openwrt 源码仓库
  2. 树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) - RaspberryPi硬核系列(三)
  3. OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大
  4. openwrt插件