部署和调试应用

通过 SCP 部署

编译完成后,从 Ubuntu 主机执行:

scp myapp root@<开发板IP>:/root/
ssh root@<开发板IP> 'chmod +x /root/myapp'

登录开发板运行:

/root/myapp
echo $?

调试阶段将程序放在 /root/tmp,不需要每次重做系统镜像。

检查程序架构和依赖

Ubuntu 主机执行:

file myapp
arm-linux-gnueabihf-readelf -h myapp
arm-linux-gnueabihf-readelf -d myapp

开发板执行:

ldd /root/myapp

出现 not found 时,说明目标根文件系统缺少动态库。应将库加入 Buildroot 配置或 rootfs overlay,不要复制 Ubuntu 主机的 x86_64 库。

查看运行状态

ps | grep myapp
top
dmesg | tail

将标准输出保存为日志:

/root/myapp >/tmp/myapp.log 2>&1 &
tail -f /tmp/myapp.log

发布到系统镜像

程序验证完成后安装到板级覆盖层:

install -D -m 0755 myapp \
  ~/v3s-workspace/strongpi-v3s-support/rootfs_overlay/usr/bin/myapp

重新编译 Buildroot,并重新生成 TF 或 NAND 镜像。应用进入正式镜像后,目标路径为 /usr/bin/myapp

避免覆盖正在运行的文件

上传新版本前先停止旧进程:

killall myapp 2>/dev/null || true

再执行 SCP。直接覆盖正在运行的可执行文件可能返回 Text file busy