Ubuntu下编译OpenWrt(Lede)


1、准备Ubuntu系统,我用的VM WorkStation安装的Ubuntu 22 LTS,这个没有技术难度,不演示。

2、更新系统,安装编译需要的依赖,从这一步开始,Ubuntu要全局代理,实现科学上网,否则下载的文件不完整都会导致后面编译失败,具体下载时间根据网络情况而定,几个小时也很正常。

sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
Bash

3、下载OpenWrt(Lede)源代码

git clone https://github.com/coolsnowwolf/lede
cd lede
Bash

4、添加插件仓库到feeds

vi feeds.conf.default
Bash

在里面添加如下内容,然后保存feeds.conf.default文件,这里面是一些常用插件和插件依赖

src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
Bash

5、更新feeds

./scripts/feeds update -a
./scripts/feeds install -a
Bash

6、选择配置

make menuconfig
Bash

输入上面命令回车后,会弹出一个类似Bios的操作界面,根据自己的情况选择CPU架构,插件,主题后退出保存即可。看不懂英文的看下面的翻译。插件和主题都在Luci里面。

Target System (x86)--->指令集架构
Subtarget (x86_64)--->架构子项
Target Profile--->目标配置文件
Target Images--->固件保存格式
Global build settings--->全局构建设置
Advanced configuration options--->高级配置选项(适用于开发人员)
Build the OpenWrt Image Builder--->构建OpenWrt图像生成器
Build the OpenWrt SDK--->构建OpenWrt SDK
Package the OpenWrt-based Toolchain--->打包基于OpenWrt工具链
Image configuration--->镜像配置
Base system--->基本系统
Administration--->管理
Boot Loaders--->引导加载程序
Development--->开发
Extra packages--->额外包
Firmware--->固件
Fonts--->字体
Kernel modules--->内核模块
Languages--->语言
Libraries--->依赖
LuCI--->统一配置接口
Mail--->邮件
Multimedia--->多媒体
Network--->网络
Sound---> 声音
Utilities--->实用程序
Xorg--->Xorg
YAML

7、下载dl库,编译固件(-j 后面是线程数,第一次编译推荐用单线程)

make download -j8
make V=s -j1
Bash

编译时间根据电脑配置不同,我虚拟机单线程下3个小时左右才编译完,编译完的固件在bin/targets目录里面。

声明:麦子花开|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Ubuntu下编译OpenWrt(Lede)


休对故人思故国,且将新火试新茶。诗酒趁年华!