解决RDK X5(ARM64架构)板卡Remote-SSH运行Antigravity AI崩溃(SIGILL):Samba网络盘本地挂载方案

一、前言

最近在折腾 D-Robotics 的 RDK X5 板卡(搭载 Sunrise X5 芯片,ARM Cortex-A55 架构)。在尝试使用强大的 Antigravity IDE 通过 Remote-SSH 远程连接板卡进行开发时,遇到了一个极其头疼的问题:AI 侧边栏完全不可用,并且一直弹出报错提示。

查看日志后发现,Language Server 刚启动就直接退出了,抛出了 SIGILL(非法指令)错误:

`Language server killed with signal SIGILL`
`Language server exited before sending start data`

image

踩坑分析:
经过排查,问题的根源在于官方最新版的 Antigravity 服务端二进制文件在编译时,开启了过于激进的 ARM64 硬件指令集优化(例如 ARMv8.2 的加密指令或 RCPC 锁机制)。而 RDK X5 的 Cortex-A55 作为通用型核心,并不包含这些高级扩展指令集,导致程序一运行就触发了 CPU 的非法指令异常。

如果等待官方发兼容补丁,不仅遥遥无期,而且把沉重的 AI Language Server 跑在资源有限的板卡上,原本就会大量占用极其宝贵的内存。

最终的完美解决方案:
放弃 Remote-SSH 跑 AI 的思路!我们在板卡上架设 Samba 服务,将板卡上的代码目录映射为 Windows 电脑本地的一个网络硬盘(比如 Z: 盘)。然后用 Windows 本地的 Antigravity 直接打开这个盘。
这样一来,所有吃 CPU 和内存的 AI 代码分析、语法补全全部在性能强劲的 Windows 上运行,而修改的代码又会通过局域网实时、零延迟地写入板卡。不仅完美绕过了 ARM 的兼容性 Bug,还榨干了 PC 的算力,这才是嵌入式 AI 开发的究极形态!


二、Windows 挂载流程:

整个流程非常简单,分为三步:板卡安装配置 SambaWindows 映射驱动器本地开发配合

1. 在 RDK X5 上安装并配置 Samba

首先,通过普通的 SSH 终端连接到你的板卡,安装 Samba 服务:

sunrise@ubuntu:~$ sudo apt update
sunrise@ubuntu:~$ sudo apt install samba -y

安装完成后,我们需要修改配置文件,把存放代码的目录共享出来。

# 编辑 smb.conf 配置文件
sunrise@ubuntu:~$ sudo nano /etc/samba/smb.conf

使用方向键将光标移动到文件的最末尾,添加以下配置(假设你的代码都在 /home/sunrise/ 目录下,用户名也是 sunrise):

[RDK_Code]
   comment = RDK X5 Workspace
   path = /home/sunrise/
   browsable = yes
   guest ok = no
   read only = no
   create mask = 0755
   valid users = sunrise

提示:在 nano 编辑器中,按 Ctrl+O 然后回车保存,按 Ctrl+X 退出。

2. 设置共享密码并重启服务

Samba 有自己独立的密码系统(不依赖于 Linux 系统的登录密码,虽然为了方便你也可以设置成一样的)。我们需要为 sunrise 用户添加 Samba 访问密码:

# 添加用户并设置密码
sunrise@ubuntu:~$ sudo smbpasswd -a sunrise
New SMB password:
Retype new SMB password:
Added user sunrise.

设置好密码后,重启 Samba 服务让刚刚的配置文件生效:

# 重启 smbd 服务
sunrise@ubuntu:~$ sudo systemctl restart smbd

3. 在 Windows 上映射网络驱动器

回到我们的 Windows 电脑上,让这块板卡的存储空间变成我们的本地硬盘。

image

  1. 打开 Windows 的 “此电脑” (资源管理器)
  2. 在顶部工具栏找到并点击 “映射网络驱动器”
  3. 驱动器号:随意选择一个,这里我选了 Z:
  4. 文件夹路径:输入板卡的 IP 和我们刚才配置的共享节点名称,格式如下(请将 IP 换成你板卡的实际局域网 IP):
    \\192.168.1.31\RDK_Code
    
  5. 勾选 “登录时重新连接”,点击 完成
  6. 在弹出的凭据窗口中,输入用户名 sunrise 和刚才用 smbpasswd 设置的密码。

映射成功后,你的“此电脑”里就会多出一个 Z: 盘,点进去就是 RDK X5 板卡里的文件系统!

4. 开启丝滑开发模式

现在,请关闭那个不断报错的 Remote-SSH 窗口
直接打开你 Windows 本地安装的 Antigravity,点击左上角 文件 -> 打开文件夹...,选中刚才映射的 Z: 盘里对应的项目目录。

image


三、进阶:在 WSL 中原生挂载板卡磁盘

有时候我们不仅需要 Windows 上的 Antigravity 来写代码,还希望能利用 WSL (Windows Subsystem for Linux) 里的强大工具链来处理板卡上的文件。
既然 WSL 也是一个完整的 Linux 环境,它完全可以“绕开” Windows 的 Z 盘,自己直接和 RDK X5 板卡建立局域网 Samba 连接。这种方式文件读写性能最好,权限管理也更接近原生 Linux。

1. 安装挂载依赖工具

在你的 WSL 终端中执行以下命令,安装用于挂载 Samba 的 cifs-utils 工具:

vsonic12138@DESKTOP-IMBN9QK:~$ sudo apt update
vsonic12138@DESKTOP-IMBN9QK:~$ sudo apt install cifs-utils -y

2. 创建挂载点并挂载

在 WSL 中创建一个专属目录,并执行挂载命令:

# 1. 创建挂载点
vsonic12138@DESKTOP-IMBN9QK:~$ sudo mkdir -p /mnt/rdk_board

# 2. 执行挂载(密码填写你刚才 smbpasswd 设置的密码)
vsonic12138@DESKTOP-IMBN9QK:~$ sudo mount -t cifs //192.168.1.31/RDK_Code /mnt/rdk_board -o username=sunrise,password=sunrise,uid=$(id -u),gid=$(id -g)

注:-o uid=$(id -u),gid=$(id -g) 这个参数非常关键,它能确保挂载进来的文件所有权属于你当前 WSL 的用户,这样修改文件就不会遇到权限拒绝的问题。

3. 测试访问

vsonic12138@DESKTOP-IMBN9QK:~$ cd /mnt/rdk_board
vsonic12138@DESKTOP-IMBN9QK:/mnt/rdk_board$ ls
Desktop  MA4_workspace  arm_-x4  pi-apps  tsinghua_mission

看到上面的输出,说明 WSL 已经成功直连板卡的磁盘了!


四、必看避坑指南与工作流总结

这种“Samba 挂载”的开发模式虽然极度舒适,但有两个新手极易踩坑的地方,请务必注意:

坑点 1:Git 提示 "dubious ownership" 拒绝访问

由于网络盘物理上属于板卡里的 sunrise 用户,而你用 Windows/WSL 访问时是另外的用户,Git 出于安全考虑会拦截操作并提示:

fatal: detected dubious ownership in repository at '//192.168.1.31/RDK_Code/arm_-x4'

解决方法(一劳永逸):
直接在你的 Windows PowerShell 或 WSL 终端里执行一次全局信任命令即可(因为这是你自己的开发板局域网,非常安全):

git config --global --add safe.directory "*"

执行后,Antigravity 里的代码变更检测、Git 侧边栏全部恢复正常。

坑点 2:千万不要在 Windows/WSL 终端里“运行”硬件代码

由于你映射的 Z: 盘本质上只共享了“文件”,并没有共享板卡的“硬件”
如果在 Windows 本地的终端执行 python3 main.py,它调用的是电脑的 CPU 去跑代码,绝对找不到板卡上插着的 USB 摄像头(/dev/video0)或底层 GPIO 接口。

正确的双持工作流:

posted @ 2026-03-15 16:34  笑眯眯办大事  阅读(20)  评论(0)    收藏  举报