谷动谷力

标题: 【openwrt】基于 WSL的openwrt开发环境(构建系统)配置 [打印本页]

作者: sunsili    时间: 2023-7-4 10:13
标题: 【openwrt】基于 WSL的openwrt开发环境(构建系统)配置
本帖最后由 sunsili 于 2023-7-28 16:23 编辑

【openwrt】基于 WSL的openwrt开发环境(构建系统)配置

【前言】

虽然此方法不受官方支持, 官方建议使用原生 GNU/Linux 环境。原生GNU/Linux 环境固然好,然我们大部人电脑安装的都是windows系统,还有的文法就是使用虚拟机,但用vmware等虚拟机效率低。所以, wsl做开发环境是一个不错的选择。

【开始配置】

OpenWrt构建系统基于WSL须安装Debian或ubuntu等linux子系统。

sudo apt update
sudo apt dist-upgrade


【查看环境变量】


为了能够构建 OpenWrt 映像,在 PATH 或驱动器上的工作文件夹中不得有空格。 但默认情况下,在 WSL 环境中也有窗口文件夹,这些文件夹在路径中有空格:
> echo ${PATH}
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files (x86)/GnuPG/bin:/mnt/c/Program Files (x86)/dotnet/:/mnt/c/Program Files/WireGuard/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files (x86)/AOMEI/AOMEI Backupper/6.5.1:/mnt/c/Program Files (x86)/Bitvise SSH Client:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Users/Bas Mevissen/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Bas Mevissen/.dotnet/tools
可以看到,wsl:ubuntu的环境变量包涵了windows的环境,如果这样的话,在这个环境下编译,是会出错的,那怎么样才能在这个环境编译呢?

【临时解决方案】


在 OpenWrt 构建系统文件夹中启动命令时,您可以仅使用所需的文件夹覆盖路径(即仅使用 Linux 文件夹,因为编译 OpenWrt 不需要来自 Windows 的任何内容)这是一个我们只是调用 :make
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make


【永久性解决方案】

配置 WSL,以便 Linux 发行版的 PATH 环境变量中没有 Windows 路径元素(以 开头)。 在 Linux 环境中创建:/etc/wsl.conf

sudo tee -a /etc/wsl.conf << EOF > /dev/null
[interop]
appendWindowsPath = false
EOF
exit


重新启动 WSL 以应用更改:
wsl --shutdown

在 Linux 环境中,通过以下命令验证 PATH 环境变量中是否未显示任何 Windows 路径元素。

echo ${PATH}/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:home/fan/openwrt_21.02.0_mt76x8_jotale_source/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin


额外
限制内存/CPU 使用率
另请参阅:使用 .wslconfig 配置全局选项

可以通过创建/编辑来限制 WSL2 对 RAM/CPU 资源的使用。%USERPROFILE%\.wslconfig

[wsl2]
memory=8GB # Limits VM memory in WSL 2 to 8 GB
processors=4 # Makes the WSL 2 VM use four virtual processors


重新启动 WSL 以应用更改:

wsl --shutdown

访问文件
默认情况下,WSL2 将 Windows 驱动器装载到 ,以便您可以从 WSL2 访问 Windows。/mnt/c

您可以从 Windows 2 访问 WSL10 文件系统.exe方法是打开资源管理器并输入 ,例如 。 您可以将其映射到驱动器号,以便从 Windows 程序(如 Atom 或其他图形 IDE 软件)轻松访问 WSL2 系统。\\wsl$\<name of WSL Instance>\\wsl$\Ubuntu-20.04






欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2