前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenWrt-编译官方19.07

OpenWrt-编译官方19.07

原创
作者头像
鸥哞
发布2024-04-22 09:46:59
2170
发布2024-04-22 09:46:59
举报
文章被收录于专栏:OpenWrt
代码语言:txt
复制
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,使其变成 :

代码语言:txt
复制
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 ,会有一些开源项目帮助你,比如你还可以添加上:

代码语言:txt
复制
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 界面。在这个界面中,我们要选择好以下内容:

代码语言:txt
复制
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的文件刷写进开发板即可。

致谢

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. 安装编译所需工具
  • 2. 下载源码,修改 feeds.conf.default
  • 3. 更新和安装 feeds
  • 4. 编译配置、下载与编译
    • 4.1. 编译配置
      • 4.2.下载
        • 4.3.编译
        • 5. 刷写固件
        • 致谢
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档