WiFi迷

Github云编译OpenWRT失败 rust错误 空间不足…

今年 3 月份时折腾过 x86 OpenWRT 编译,在 vps Debian 11 系统以及使用 Github Actions 均编译成功,目前已在 VMWare 虚拟机中运行作旁路由稳定使用半年多。

「Github云编译OpenWRT失败 rust错误 空间不足…:https://wifimi.net/github-build-openwrt-failed-no-space-rust-error」

Github 云编译 OpenWRT 失败

国庆假期「捡到」一个玩客云 WS1608,usb 线刷很容易,只是没找到合适的简洁固件,openwrt.ai 可以定制带酸酸乳+插件的线刷直刷固件,不过实际测试中发现酸酸插件貌似支持协议只有一小部分,有些飞机点使用不了……

那就自己折腾到 Github 编译一个?想着半年前 x86 版本编译还算顺利,这次应该更容易……没想到遇到几个新问题,编译四五次才成功……

「Github云编译OpenWRT失败 rust错误 空间不足…:https://wifimi.net/github-build-openwrt-failed-no-space-rust-error」

本文简单记录一下 Github 云编译 OpenWRT 失败:rust 错误、空间不足、clang++: not found 等解决方法。

Github 云编译玩客云 OpenWRT 直刷固件教程参考:玩客云 openwrt 自动编译(onecloud-openwrt,懒折腾估计直接用这个项目定时编译的固件也不错)

P3TERX 大神的 Actions-OpenWrt 目前已归档了,有需要建议备份一下。

「Github云编译OpenWRT失败 rust错误 空间不足…:https://wifimi.net/github-build-openwrt-failed-no-space-rust-error」

rust 错误

这次编译遇到第一个问题是 rust 报错,无法下载 rust,地址 404 了:

downloading https://ci-artifacts.rust-lang.org/rustc-builds/9b00956e56009bab2aa15d7bff10916599e3d6d6/rust-dev-1.78.0-x86_64-unknown-linux-gnu.tar.xz
curl: (22) The requested URL returned error: 404
ERROR: failed to download llvm from ci

HELP: There could be two reasons behind this:
1) The host triple is not supported for `download-ci-llvm`.
2) Old builds get deleted after a certain time.
HELP: In either case, disable `download-ci-llvm` in your config.toml:

[llvm]
download-ci-llvm = false

Github 可以找到类似错误,和解决方法:

云编译在 build 前面加上如下代码可正常编译:

run: |
cd openwrt
sed -i 's/--set=llvm.download-ci-llvm=true/--set=source.crates-io.replace-with=mirror \\\
--set=source.mirror.registry=sparse+https:\/\/mirrors.bfsu.edu.cn\/crates.io-index\/ \\\
--set=llvm.download-ci-llvm=false/' package/feeds/packages/rust/Makefile

仅记录代码,目前酸酸插件项目已经修复,正常编译已经不会提示 rust 错误了。

「Github云编译OpenWRT失败 rust错误 空间不足…:https://wifimi.net/github-build-openwrt-failed-no-space-rust-error」

Github 云编译 openwrt 提示 clang++: not found

这次编译遇到第二个错误是 clang++: not found:

/bin/sh: 1: clang++: not found
ninja: build stopped: subcommand failed.

这个好解决,在 onecloud-openwrt 项目中安装依赖的 dependson 文件中加上 llvm clang 即可。

如果是在 vps Debian 11 系统中编译,执行如下代码安装依赖即可:

sudo apt-get install llvm clang -y

OpenWrt Github 云编译 No space left on device

解决完前面的问题,Github 云编译玩客云 OpenWRT 直刷固件应该就没问题了,但是使用 P3TERX 大神的 Actions-OpenWrt 编译 x86 op 固件可能还会来一个 No space left on device。

解决方法参考 Github,修改 /main/.github/workflows/openwrt-builder.yml 文件:

steps:
- name: Checkout
  uses: actions/checkout@main

在上面代码块前面或者后面添加如下代码即可:

- name: 释放磁盘空间
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: true
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true


2024-10-28:玩客云 openwrt 固件虽然编译成功了,不过直刷进去连接,启动完成网络连接不上去,可能配置还是有点问题。

退出移动版