问题背景
在尝试使用 Google 最新推出的 antigravity-cli (命令 agy) 时,由于当前的服务器 CPU(例如 J1900 蜗牛星际)年代较老,不支持 AES-NI 硬件指令集,导致执行命令时直接崩溃,并出现以下报错:
| |
经过网络排查确认,这是因为 Antigravity CLI 底层使用 Go 语言编写,编译时启用了较高级别的微架构要求(如 GOAMD64=v3 或更高),强制要求 CPU 物理支持 AES 指令集。由于硬件上确实缺失该指令,常规的环境变量无法绕过该底层的验证逻辑。
根据之前修复 Antigravity IDE 崩溃的经验,我们可以继续使用 Intel® Software Development Emulator (SDE) 来拦截并模拟 AES 指令集,从而让 CLI 正常运行。
解决方案记录
以下是具体的操作步骤。需要注意的是,由于是通过 SDE 软件层面模拟硬件指令集,agy 命令的启动和响应速度可能会比正常情况有所下降。
1. 准备 Intel SDE 模拟器
如果你之前在解决 IDE 问题时已经安装过,可以直接跳过此步并使用已有的 sde64。
前往 Intel® Software Development Emulator 下载最新的 Linux 压缩包。
| |
2. 允许进程注入 (修改内核参数)
Intel SDE 需要通过 ptrace 机制来劫持二进制文件。确保你的 Debian 系统允许此操作:
| |
3. 劫持并替换 agy 命令行程序
首先,找到 agy 程序的实际安装路径:
| |
对原始可执行文件进行重命名,作为备份隐藏起来:
| |
创建一个新的拦截 Wrapper 脚本来顶替原来的 agy:
| |
将以下内容粘贴到脚本中(请确保 SDE_BIN 的路径与你的实际情况相符):
| |
赋予这个新的 Wrapper 脚本可执行权限:
| |
测试与回滚策略
测试运行
完成上述操作后,直接在终端中运行:
| |
如果能正常输出版本号且没有再次出现 Illegal instruction 报错,则说明劫持成功,可以正常使用 CLI 功能了。
🚨 快速回滚方法
如果你发现该方案导致机器负载过高卡死,或者想要恢复原始状态,只需执行以下两条命令,将备份的原始文件还原即可:
| |