好记性不如铅笔头

openwrt, 树莓派

树莓派4编译使用openwrt最简单流水账

openwrt是一个非常强大的路由器操作系统,这里简单的笔记下如何在树莓派4上跑起来。

树莓派4的spec:https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
可以看到,树莓派4的CPU为:

Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz

openwrt目前支持的树莓派系列预编译系统列表:https://openwrt.org/zh/toh/views/toh_fwdownload?dataflt%5BModel*%7E%5D=Raspberry
可以看到,树莓派4在openwrt中的型号定义如下,目前发行的openwrt中没有树莓派4的支持。

品牌:Raspberry Pi Foundation
型号:Raspberry Pi 4
CPU:  Broadcom BCM2838
目标类型:bcm27xx
子类型:bcm2711

这里我们通过源码编译一个最简单的openwrt系统。先笔记一些网址:

SD卡烧录工具:
https://www.balena.io/etcher/
https://sourceforge.net/projects/win32diskimager/

openwrt wiki中文指南:
https://openwrt.org/zh/docs/start

openwrt 官方编译指南:
https://openwrt.org/docs/guide-user/additional-software/beginners-build-guide
https://openwrt.org/zh/docs/guide-developer/quickstart-build-images

lede github指南:
https://github.com/coolsnowwolf/lede

openwrt github主线备份:
https://github.com/openwrt/openwrt

下面笔记下最简单编译步骤:

#安装必须的编译工具
$sudo apt-get install subversion g++ zlib1g-dev build-essential git python rsync man-db libncurses5-dev gawk gettext unzip file libssl-dev wget zip time
#从openwrt的github上拉去代码,也可以从官方或者lede下载,看个人网络和需求
# $git clone https://git.openwrt.org/openwrt/openwrt.git/
$git clone https://github.com/openwrt/openwrt.git
$cd openwrt/

# openwrt 最新release分支不支持树莓派4,所以直接从master上使用最新代码编译,默认在master分支
# $git branch
# $git checkout master
# $git pull
#下载安装其他依赖
$./scripts/feeds update -a
$./scripts/feeds install -a

#首先使用默认配置,然后打开menuconfig,配置为树莓派4,如下图:
$make defconfig
$make menuconfig


同时默认编译LuCI,方便操作:

> LuCI > 2. Modules 中打开:
 -*- luci-base
> LuCI > 2. Modules > Translations 中打开:
<*> Chinese Simplified (zh_Hans)

编译开始:

# 下载所有选中的组件,这里可以采用多线程方式下载:
$make -j8 download V=s

# 编译,第一次编译时最好单线程编译,避免不必要的依赖缺失
$make -j1 V=s

当编译完成后,固件在 openwrt\bin\targets\bcm27xx\bcm2711下,全烧录固件为:openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz,将该img解压缩后,使用SD卡烧录工具烧录,树莓派就可以跑起来了。

默认情况下,该固件设置树莓派有线口为LAN口,树莓派默认IP地址为192.168.1.1,因此我们可以通过网线将电脑和树莓派4连接,设置电脑本地IP为静态192.168.1.2,网关地址为192.168.1.1来建立一个临时局域网。
电脑网络设置OK后,浏览器访问192.168.1.1,就可以看到openwrt系统了。
配置WIFI国家为AU,信道设置为6可以打开WIFI热点,如下图:

 

 

一些备注:

#有修改后,需要重新编译时,可以使用多线程加速:
$make -j$(($(nproc) + 1)) V=s

#清空所有编译配置:
$rm -rf ./tmp && rm -rf .config

# 如果WSL比较慢,可以做如下配置,关闭windows路径搜索,参考链接【 https://openwrt.org/docs/guide-developer/build-system/wsl 】
$cat /etc/wsl.conf
[interop]
appendWindowsPath = false

 

Leave a Reply

7 + 20 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据