如何编译自己需要的 OpenWrt 固件
注意
- 不要用 root 用户进行编译
- 国内用户编译前最好准备好梯子
- 默认登陆IP 192.168.1.1 密码 password
编译命令
首先装好 Linux 系统,推荐 Debian 11 或 Ubuntu LTS
安装编译依赖
1
2
3
4
5
6
7
8sudo 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下载源代码,更新 feeds 并选择配置
1
2
3
4
5git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig下载 download 库,编译固件
1
2
3
4
5make download -j8
make V=s -j1
#(-j1 后面是单线程数,第一次编译推荐用单线程,便于排错)
make V=s -j$(nproc)
#(-j$(nproc) 后面是最大线程数,速度更快但不便于排错)
二次编译:
1 |
|
如果需要重新配置:
1 |
|
编译完成后输出路径:bin/targets
如果你使用 WSL/WSL2 进行编译
由于 WSL 的 PATH 中包含带有空格的 Windows 路径,有可能会导致编译失败,请在 make
前面加上:
1 |
|
macOS 原生系统进行编译
在 AppStore 中安装 Xcode
安装 Homebrew:
1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
使用 Homebrew 安装工具链、依赖与基础软件包:
1
2
3brew unlink awk
brew install coreutils diffutils findutils gawk gnu-getopt gnu-tar grep make ncurses pkg-config wget quilt xz
brew install gcc@11然后输入以下命令,添加到系统环境变量中:
1
2
3
4
5
6
7echo 'export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/findutils/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/make/libexec/gnubin:$PATH"' >> ~/.bashrc重新加载一下 shell 启动文件
source ~/.bashrc
,然后输入bash
进入 bash shell,就可以和 Linux 一样正常编译了
特别提示
源代码中绝不含任何后门和可以监控或者劫持你的 HTTPS 的闭源软件, SSL 安全是互联网最后的壁垒。安全干净才是固件应该做到的。
如何编译自己需要的 OpenWrt 固件
http://example.com/2022/10/24/如何编译自己需要的OpenWrt固件/