方法一:加参数跳过检查
很多工具的报错信息里直接写了"加某某参数可以跳过"。
模板:
原来的命令 → 原来的命令 跳过参数=yes
我们实际用过的例子:
- 报错说 bookworm is unsupported, only available to experts (EXPERT=yes)
- 绕过:加 EXPERT=yes
---
方法二:用 grep 找到报错行,用 sed 注释掉
这是最厉害的一招,四步走:
第 1 步:从错误日志里找到报错的文件和行号。
错误堆栈里会写 文件名.sh:行号,比如:
qemu-static.sh:129
第 2 步:用 grep 找到具体行:
grep -n "错误里的关键词" 那个文件
第 3 步:用 sed 注释掉:
sed -i '行号s/^/#/' 那个文件
第 4 步:验证:
grep -n "关键词" 那个文件
看到行首有 # 就说明注释成功了。
---
方法三:改命令本身
当工具提示你"某用法已废弃"时:
- 报错:KERNEL_ONLY is not supported anymore; use new CLI commands
- 绕过:删掉 KERNEL_ONLY=yes,换成独立的子命令
# 旧的(不能用)
./compile.sh build BOARD=xxx KERNEL_ONLY=yes
# 新的(能用)
./compile.sh kernel BOARD=xxx BRANCH=current
---
方法四:四个万能参数
遇到编译类工具报错,按顺序试这四个:
1. EXPERT=yes # 跳过"非专家不可用"的限制
2. SKIP_BACKTICK_CHECK=yes # 跳过各种预检
3. IGNORE_ERRORS=yes # 忽略非致命错误(如果支持)
4. --force # 强制继续(如果支持)
并不是每个工具都支持,但试一下不亏。
---
你的作弊速查卡
┌──────────────────────────────────────────────┐
│ 遇到报错 → 看报错信息里有提示吗? │
│ ├─ 有 → 加它说的参数 │
│ └─ 没有 → 从堆栈里找到 文件名:行号 │
│ → grep -n "关键词" 文件 │
│ → sed -i '行号s/^/#/' 文件 │
│ → 重跑 │
│ │
│ 如果还是不过 → 换 RELEASE(bookworm→noble) │
│ → 换 BRANCH(current→vendor) │
│ → 换 BOARD(换一个板子先试通) │
└──────────────────────────────────────────────┘