OpenWrt是一款强大的开源路由器操作系统,提供了高度的自定义性和灵活性。本指南将详细介绍如何从源代码编译OpenWrt固件。
准备工作
- 不要使用root用户进行编译 - 这是安全最佳实践
- 网络准备 - 国内用户建议准备好梯子,某些依赖可能需要
- 默认登录信息 - 编译后的固件默认IP: 192.168.1.1,密码: password
系统要求
推荐使用Debian或Ubuntu LTS版本的Linux系统。
安装编译依赖
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 clang cmake cpio curl device-tree-compiler flex gawk gcc-multilib g++-multilib gettext \
genisoimage git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev \
libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev \
libreadline-dev libssl-dev libtool llvm lrzsz msmtp ninja-build p7zip p7zip-full patch pkgconf \
python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion \
swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
获取源代码并配置
git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
在make menuconfig
界面中,你可以选择需要的功能和驱动。
编译过程
首次编译建议使用单线程:
make download -j8 # 下载依赖
make V=s -j1 # 开始编译,V=s显示详细输出
编译成功后,固件将输出到bin/targets
目录。
二次编译
cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j$(nproc) # 使用所有可用核心
如需重新配置:
rm -rf .config
make menuconfig
make V=s -j$(nproc)
特殊环境编译指南
WSL/WSL2用户
由于PATH和文件系统问题,需要特殊处理:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make
解决大小写敏感问题(管理员权限):
fsutil.exe file setCaseSensitiveInfo <your_local_lede_path> enable
macOS用户
- 安装Xcode
- 安装Homebrew
- 安装必要工具链:
brew unlink awk
brew install coreutils diffutils findutils gawk gnu-getopt gnu-tar grep make ncurses pkg-config wget quilt xz
brew install gcc@11
设置环境变量(根据芯片类型选择):
Intel芯片:
echo 'export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"' >> ~/.bashrc
# 其他路径设置...
Apple芯片:
echo 'export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"' >> ~/.bashrc
# 其他路径设置...
重要声明
本项目的所有源代码均为开源,不含任何后门或监控HTTPS的闭源软件。SSL安全是互联网的重要保障,我们承诺提供安全干净的固件。
许可协议
你可以自由使用这些代码,但如果你基于此代码进行二次发布,请注明原始GitHub仓库链接:https://github.com/coolsnowwolf/lede
希望这篇指南能帮助你成功编译自己的OpenWrt固件!如有任何问题,可以参考项目文档或社区讨论。
评论