通过 vscode ssh 远程连接 ARM linux
近日,在使用 RK3588 时,移植的精简 Linux 既没有 apt 等安装工具,同时也没有 C 编译器。 这样就需要首先在 PC 端使用交叉编译通过后,再将编译的文件传到 RK3588 上才能使用。
1 遇到问题
RK3588 通过 buildroot 定制的 Linux 啥安装工具也没有,必须使用源码编译才能安装必须的软件。
1 | apt |
然而,源码编译在 ARM 端无法通过,因为 ARM 没有编译工具。同时,由于 ARM 端没有安装工具无法安装 C 编译器。
同时,该定制版本 Linux 中的 tar 压缩解压工具由于版本问题无法实现 tar.gz 文件的解压,导致很多问题的产生。例如,通过 vscode 无法 ssh 远程 ARM 端。
2 解决思路
要想解决上述问题,有两条可行的道路,要不重新移植 Linux,要不通过交叉编译实现 ARM 端软件工具的安装。
重新移植 Linux 无论是时间成本还是技术成本上而言,都是特别高的,而且容易一步错、步步错。
交叉编译环境的搭建无论是哪种方案都需要去做的,于是,我们选取了通过交叉编译实现 ARM 端软件工具的安装。
3 手到擒来
老版本 tar 工具在使用 -zxvf 指令时总会报 -z 不是可用的配置项。
首先,下载新版本 tar 源码包,在 PC 端使用交叉编译工具编译,最终会在 result/bin 文件夹下生成 tar 文件。
1 | tar zxvf tar-1.27.1.tar.gz |
生成的 tar 文件,通过 ssh 传递至 ARM 端。
1 | scp ./result/bin/tar root@ip:/ |
然后,连接至 ARM 端,进行删除 usr/bin 下原来的 tar,移动新编译的 tar 至 usr/bin 文件下,即可实现 tar 的更新。
需要注意的是,最好是别直接删除原来的文件,可以备份防止意外。
4 回归重点
更新 tar 后,发现 vscode 可以 ssh 连接 ARM 端了。
原因很简单,vscode 连接远程时,会从服务器下载 tar.gz 的文件,然后这个文件在 ARM 本地无法解压,于是就报错了。
更新 tar 后就不存在问题了。
当然,vscode 感觉可以在本地 PC 解压后 ssh 传递至 ARM 设备,这样也能保证 ARM 设备在没有联网的情况下正常安装可能是更好的方案。
⚓ Carl Zhao
🏢 逍遥科技有限公司
💭 曾经也是追光少年,然而少年归来已不再是少年,但依然在追光的路上。
📧 邮箱:1005513510@qq.com