1、准备Ubuntu系统,我用的VM WorkStation安装的Ubuntu 22 LTS,这个没有技术难度,不演示。
2、更新系统,安装编译需要的依赖,从这一步开始,Ubuntu要全局代理,实现科学上网,否则下载的文件不完整都会导致后面编译失败,具体下载时间根据网络情况而定,几个小时也很正常。
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-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
3、下载OpenWrt(Lede)源代码
git clone https://github.com/coolsnowwolf/lede
cd lede
4、添加插件仓库到feeds
vi feeds.conf.default
在里面添加如下内容,然后保存feeds.conf.default文件,这里面是一些常用插件和插件依赖
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
5、更新feeds
./scripts/feeds update -a
./scripts/feeds install -a
6、选择配置
make menuconfig
输入上面命令回车后,会弹出一个类似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
7、下载dl库,编译固件(-j 后面是线程数,第一次编译推荐用单线程)
make download -j8
make V=s -j1
编译时间根据电脑配置不同,我虚拟机单线程下3个小时左右才编译完,编译完的固件在bin/targets目录里面。
Comments | NOTHING