476 字
2 分钟
OpenWrt基础编译教程
部署一个基础的Debian系统
配置如下图:

共享dl目录
mkdir ../dlln -s ../dl dl如果需要重新配置:
rm -rf .configmake menuconfigmake V=s -j$(nproc)编译完成后输出路径:bin/targets
以上为参考内容,下面实操
安装环境(来自lede)
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额外需要的内容
sudo apt install python3-venv盘不够大,挂个盘先
sudo -ifdisk /dev/sda1mkfs.xfs /dev/sda1mount /dev/sda1 openwrt/chown -R ksqeib:ksqeib openwrtexit下载源码
cd /mnt/openwrt/git clone git@github.com:immortalwrt/immortalwrt.gitcd immortalwrt此时建议备份一次,或者使用复制后的,而不是直接在拉下来的进行修改,可以节约后续为其他路由器编译时拉取源码的时间
cp -R immortalwrt immortalwrt_bak可以使用openwrt编译添加小猫包(其他文章)而不是用下段代码
常规:
./scripts/feeds update -a./scripts/feeds install -amake menuconfig添加小猫包的:
sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.defaultsed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.defaultgit pull./scripts/feeds update -a./scripts/feeds install -amake menuconfig根据需求参考编译自定义合集进行修改
代理配置
使用国内镜像加速更新 crate 拉取
将如下配置写入 $HOME/.cargo/config 文件
# 放到 `$HOME/.cargo/config` 文件中[source.crates-io]registry = "https://github.com/rust-lang/crates.io-index"
# 替换成你偏好的镜像源replace-with = 'sjtu'
# 清华大学[source.tuna]registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
# 中国科学技术大学[source.ustc]registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 上海交通大学[source.sjtu]registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"export GOPROXY="https://mirrors.aliyun.com/goproxy"export RUSTUP_DIST_SERVER="https://rsproxy.cn"export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"export CARGO_BUILD_JOBS=16开始下载
make download -j8开始编译
make V=s -j16为什么不是j1?
先j16编译,报错再j1来提速
编译完成去找我们的编译后文件
在bin/targets下