从零开始自定义编译 OpenWrt(LEDE) 固件

OpenWrt路由固件可玩性极高。但是市面上的固件虽然做得很棒。但是里面有很多功能我们自身用不到,反而占用了系统资源。那么如何自己手动编译属于自己的固件呢?

编译固件也是一种乐趣,整个过程大约3小时左右,需要耐心等待。(当然和你的系统性能有关)

环境

  • Debian 11 或者 Ubuntu
  • 网络流畅

编译环境

# 升级
sudo apt update -y
sudo apt full-upgrade -y
# 安装依赖
sudo apt install -y ack antlr3 aria2 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
# 清理
sudo apt autoremove --purge
sudo apt clean

新建一个用户,用于编译固件

useradd -m openwrt  # 新建一个名为 openwrt 的用户

修改用户默认的 Shell

apt install -y sudo
usermod -s /bin/bash openwrt

切换用户拉取代码

su openwrt
cd ~
#拉取源码,这里用的是 Lean 大佬的 LEDE 分支源码
git clone https://github.com/coolsnowwolf/lede
cd lede
#添加软件源,L大源码里默认有四个软件源里面包含了大部分常用插件,如果要添加其他没有的插件则需要自行添加软件源至 feeds.conf.default 文件,当然也可以单独添加某个插件
vim feeds.conf.default
 
# 添加软件源(打开下方仓库链接可以查看包含的插件列表,一般选前两个源就行)
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
src-git haibo https://github.com/haiibo/openwrt-packages
src-git liuran001 https://github.com/liuran001/openwrt-packages
 

固件主题

rm -rf package/lean/luci-theme-argon
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git package/lean/luci-theme-argon

插件

git clone https://github.com/esirplayground/luci-app-poweroff.git package/luci-app-poweroff

更新并安装插件

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

自定义配置

# 修改默认IP为 10.0.0.2
sed -i 's/192.168.1.1/10.0.0.2/g' package/base-files/files/bin/config_generate
 
# 修改默认主机名
sed -i '/uci commit system/iuci set system.@system[0].hostname='Soft_Router'' package/lean/default-settings/files/zzz-default-settings
 
# 加入编译者信息
sed -i "s/OpenWrt /Kinoko build $(TZ=UTC-8 date "+%Y.%m.%d") @ OpenWrt /g" package/lean/default-settings/files/zzz-default-settings
 
# 修改默认主题
sed -i "s/luci-theme-bootstrap/luci-theme-argon/g" feeds/luci/collections/luci/Makefile

执行 make menuconfig 命令进入编译菜单

从零开始自定义编译 OpenWrt(LEDE) 固件

菜单简要说明

# 选择 CPU 类型
Target System (x86) --> # 软路由选择 x86,硬路由根据型号厂家自行选择
Subtarget (x86_64) --> # CPU 子选项
Target Profile (Generic x86/64) --> # 厂家具体型号
 
# 设置镜像编译的格式(squashfs,ext4)
Target Images --> # 默认 squashfs
 
# 添加较多插件时,为了避免空间不足,建议修改下面两项默认大小(x86/64)
Target Images --> (16) Kernel partition size (in MB) # 默认是16,建议修改为256
Target Images --> (400) Root filesystem partition size (in MB) # 默认是400,建议修改为512
 
# 开启 IPv6 支持
Extra packages --> ipv6helper(选定这个后,下面几项会自动选择)
Network --> odhcp6c
Network --> odhcpd-ipv6only
LuCI --> Protocols --> luci-proto-ipv6
LuCI --> Protocols --> luci-proto-ppp
 
# 开启适用于 VMware 的 VMware Tools
Utilities --> open-vm-tools
Utilities --> open-vm-tools-fuse
 
# 选择插件
LuCI --> Applications # 根据需要选择,* 代表编入固件,M 表示编译成模块或者IPK包,为空表示不编译
 
# 选择主题
LuCI --> Themes # 选择喜欢的主题,可以选多个
 
# 其他选项一般不需要调整,如感兴趣可以自行了解

最后编译固件,编译完成后输出路径是 bin/targets,默认密码是 password编译固件(-j 后面是线程数,首次编译推荐用单线程)

make V=s -j1

更多精彩文章 欢迎关注我们



原文始发于微信公众号(kali黑客笔记):从零开始自定义编译 OpenWrt(LEDE) 固件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/152137.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!