教你如何编译OpenWrt,定制属于自己的固件

准备环境

首先,确保你的计算机满足以下要求:

  • 操作系统:Linux(建议使用Ubuntu 18.04或更高版本)
  • 至少30GB的硬盘空间
  • 至少4GB的RAM
  • 全局科学上网(中国大陆)不具备条件的朋友,可以选择购买海外云服务器,进行云端编译。

步骤1:安装依赖

在终端中输入以下命令安装所需的软件包:

sudo apt update -y
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-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev

步骤2:获取OpenWrt源代码

我这里使用的是Lede的源码仓库

使用以下命令,将lede源码库克隆到本地,并进入源码目录。

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

因为原仓库里的插件太少,不够使用。在这里,我们再添加一个仓库。kenzok8/openwrt-packages: openwrt常用软件包 (github.com)

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

步骤3:配置编译选项

make menuconfig

以下是menuconfig页面中各选项的说明:

  1. Target System:选择你的设备所使用的处理器架构。
  2. Subtarget:根据设备的详细型号,选择相应的子目标。
  3. Target Profile:选择你的设备型号。这会自动设置与设备兼容的预设选项。
  4. Target Images:选择生成的固件类型,例如:squashfsext4等。
  5. Global build settings:配置全局编译设置,例如:启用/禁用软件包的签名检查、IPv6支持等。
  6. Base system:选择基本系统组件,例如:网络配置、系统日志、防火墙等。
  7. Extra packages:选择额外的软件包,如:文件系统支持、VPN、代理等。
  8. Kernel modules:选择内核模块,如:支持的硬件设备、文件系统、网络协议等。
  9. LuCI:选择Web界面组件,包括主题、应用、协议支持等。
  10. Languages:选择系统支持的语言包。
  11. Libraries:选择编译时需要的库文件,如:加密库、数据库库等。
  12. Utilities:选择实用工具,如:文件管理器、终端模拟器、脚本语言支持等。

根据你的设备型号和需求进行配置,在配置过程中要注意不要选择有冲突的软件包。配置完成后,保存并退出。

每一个选项需要详细说明的人可以评论,如果需要的人多的话,我会在后面出一期配置页面中每个选项的详细说明。

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

make download -j8

这一步非常关键。如果您在执行这个命令的过程中出现报错,请多次执行命令。如还是报错,请检查您的网络。如果你忽略了这一步中的错误,那么在编译过程中很可能因缺失依赖而报错。

开始编译

make V=s -j1

步骤5:获取编译好的固件

编译完成后输出路径:bin/targets(lede目录下)

二次编译:

cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j$(nproc)

如果需要重新配置:

rm -rf ./tmp && rm -rf .config
make menuconfig
make V=s -j$(nproc)

总结

本教程介绍了使用LEDE源代码库编译OpenWrt固件的方法,以及menuconfig页面中各选项的说明。通过这些步骤,你可以为你的设备定制固件,添加新功能或优化性能。请注意,编译过程可能需要较长时间,确保在开始编译前已充分了解你的设备型号和需求。

智云海Telegram频道
技术支持:[email protected]
站长E-mail:[email protected]
如需转载,请注明文章出处
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇