使用WSL编译OpenWRT需要注意的事项

|

首先是安装WSL,很多人直接在微软的应用商店里安装ubuntu后却运行不了。其实很简单,只要在管理员PowerShell 或 Windows 命令提示符中输入此命令:wsl –install (默认安装 Ubuntu)

其次就是为WSL配置国内apt源

sudo vi /etc/apt/sources.list

替换为以下内容

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

为了避免在编译OpenWRT时出现一些莫名奇妙的错误,这里要设置WSL不加载 Windows 的 PATH 内容:

sudo vim /etc/wsl.conf

写入以下内容

[interop]
enabled = true
appendWindowsPath = false

然后重启一下WSL,在管理员PowerShell 或 Windows 命令提示符中输入:wsl –shutdown
不要在root用户下编译OpenWRT!
不要在root用户下编译OpenWRT!
不要在root用户下编译OpenWRT!
重要的话说三遍。

安装必要的环境

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 qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

下载OpenWRT的源码包,我这里用的是Lean大的包

git clone https://github.com/coolsnowwolf/lede

进入lede目录并编辑目录下的feeds.conf.default

cd lede
vi feeds.conf.default

需要一些不可描述的功能时在文件的末尾追加以下内容:

src-git helloworld https://github.com/fw876/helloworld
src-git passwall https://github.com/xiaorouji/openwrt-passwall
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
src-git opentopd  https://github.com/sirpdboy/sirpdboy-package

然后就是正式开始定制编译你的OpenWRT

./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

先选择你需要的插件并保存退出,以及一些功能的设置方法:

(1)启用ipv6需要在Extra packages中选择ipv6helper

(2)启用samba4
Extra packages里取消勾选autosamba.
LuCI – Applications里取消勾选luci-app-samba,勾选luci-app-samba4.
Network里取消samba36-server.

(3) 如果需要cloudflare ddns服务
Network–IP Addresses and Names里勾选ddns-scripts_cloudflare.com-v4

make download -j8
make V=s -j1 #在第一次时建议用单线程编译
make V=s -j$(nproc) #之后可以用多线程这样速度快

二次编译:

cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j$(nproc)

如果需要重新配置:

rm -rf ./tmp && rm -rf .config
make menuconfig
make V=s -j$(nproc)

在编译出现一些错误的时候你可以尝试清空一下,下面是几个常用的清空命令:
./scripts/feeds clean 清空下载的源码包
make clean 清除旧的编译产物(可选),在源码有大规模更新或者内核更新后执行,以保证编译质量。此操作会删除/bin和/build_dir目录中的文件。
make dirclean 清除旧的编译产物、交叉编译工具及工具链等目录(可选),更换架构编译前必须执行。此操作会删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件

类似文章

发表回复

您的电子邮箱地址不会被公开。