Ubuntu 22
OpenWrt 19.07
MT7620A
前言
本文主要介绍了如何在 Ubuntu22
的环境下,编译打包官方的 OpenWrt 19.07
。
1. 安装编译所需工具
在下载源码之前,我们首先安装编译所需的工具:
代码语言:bash复制sudo apt-get update
sudo apt-get install -y time git-core subversion build-essential g bash make libssl-dev patch libncurses5 libncurses5-dev zlib1g-dev gawk flex gettext wget unzip xz-utils python python-distutils-extra python3 python3-distutils-extra python3-setuptools swig rsync curl libsnmp-dev liblzma-dev libpam0g-dev cpio rsync gcc-multilib
apt-get clean
这一步要反复执行,确认已经没有错误,再进行后续操作。
2. 下载源码,修改 feeds.conf.default
首先,我们要下载特定版本的源码,我们运行:
代码语言:bash复制git clone --branch v19.07.10 https://git.openwrt.org/openwrt/openwrt.git
接下来,我们要更新和安装 feeds
,介绍一下什么是 feed
In OpenWrt, a “feed” is a collection of packages which share a common location. Feeds may reside on a remote server, in a version control system, on the local filesystem, or in any other location addressable by a single name (path/URL) over a protocol with a supported feed method.Feeds are additional predefined package build recipes for OpenWrt Buildroot. They may be configured to support custom feeds or non-default feed packages via a feed configuration file.
简言之,就是“应用商店”。我们开始修改 openwrt/feeds.conf.default
,使其变成 :
src-git packages https://github.com/openwrt/packages.git;openwrt-19.07
src-git luci https://github.com/openwrt/luci.git;openwrt-19.07
src-git routing https://github.com/openwrt-routing/packages.git;openwrt-19.07
src-git telephony https://github.com/openwrt/telephony.git;openwrt-19.07
如果你需要很多国内的 feed
,你可以在github上搜索:openwrt package
,会有一些开源项目帮助你,比如你还可以添加上:
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
这些可以让你获得更多的 luci-app
。
3. 更新和安装 feeds
至此,我们在项目根目录下执行:
代码语言:bash复制./scripts/feeds update -a
./scripts/feeds install -a
一定要确保更新和安装正常结束,不然会出现后续找不到某些 package
的窘境。
4. 编译配置、下载与编译
4.1. 编译配置
我们首先运行 make menuconfig
,你将看到一个 TUI
界面。在这个界面中,我们要选择好以下内容:
Target System -- 根据你的开发板CPU指令集选择
Subtarget -- 根据开发板说明书选择
Target Profile -- 根据开发板说明书选择
LuCI --> Collections -> luci -- 一个运行在开发板上的带web界面的应用,建议勾选
LuCI --> Themes -> luci-theme-argon -- 推荐勾选,界面会好看一些
配置完成后,我们按 ESC
,在是否保存的提示框上选择保存。
4.2.下载
配置好后,我们先下载,我们执行命令:
代码语言:bash复制make download -j5
-j
的含义就是配置线程数,官方有更清晰的说法:--jobs
4.3.编译
首次编译,建议单线程执行:
代码语言:bash复制make -j1 V=99
V
的含义是 verbose,目的是打印出更多日志。
5. 刷写固件
一般来说,开发板已经为你做好了不死boot,你只需要按照开发板的说明书,将 类似于 openwrt/bin/targets/ramips/mt7620/openwrt-ramips-mt7620-mt7620a-squashfs-sysupgrade.bin
的文件刷写进开发板即可。
致谢
- 《MT7628学习笔记(20)——Feeds源修改(避免下载更新软件包速度慢)》
我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!