[嵌入式] 设备没有联网的情况下如何安装库
情况:有一块3588板网口失效了,需要下载gcc,g++,make,cmake等库。
方案:用相同的带有网口的设备,进行联网下载,具体的联网教程参考链接:http://t.csdnimg.cn/i9zrj
下载相关的库之后,进行镜像导出,镜像烧录步骤。
- 准备:
在核心板RK3588上的文件系统安装ssh、rsync;
本机PC电脑(含虚拟机Linux)上安装ssh、rsync。
1 RK3588上操作
1.1 RK3588安装rsync
终端中输入以下命令
sudo apt-get update
sudo apt-get install rsync
1.2 RK3588设置SSH
配置sshd_config
文件,确保SSH能够通过root用户登录!
sudo vim /etc/ssh/sshd_config
再设置sshd_config:
sudo vim /etc/ssh/sshd_config
修改其中的Authenation
下的PermitRootLogin
为yes
即可:
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
...
然后重启生效:
/etc/init.d/ssh restart
2 虚拟机Ubuntu上操作
2.1把开发板上的文件同步到虚拟机中
在虚拟机的Ubuntu系统上创建一个目录,用来存放 RK3588 开发板的文件系统:
mkdir rootfs
RK3588的IP为192.168.137.30
,在虚拟机上ping
以下,看是否能通:
ping 192.168.137.30
关于,虚拟机如何通过PC电脑与板端进行桥接,步骤可以参考http://t.csdnimg.cn/bWQWn
在虚拟机上同步开发板文件系统,执行:
# 将RK3588的文件同步到虚拟机上的rootfs文件夹上
# 需要root权限登录RK3588设备,不然没法完全把文件备份出去,做出来的镜像是没法导入的
sudo rsync -avx root@192.168.1.123:/ rootfs
2.2 在虚拟机中打包生成img文件
1、制作镜像,用dd工具创建镜像文件,在主机执行指令(可以制作出一个大小为 7000M 的空 img 文件,大小可以修改 count 值),可以参考用指令
du -sh /path/to/directory
该指令可以查看具体的目录大小。
# rk3588_230417.img是创建的img文件名字
dd if=/dev/zero of=rk3588_230417.img bs=1M count=7000
/dev/zero:为虚拟盘的名字。
rk3588_230417.img:为要建的镜像文件。
bs=1M :表示每块读写1M数据。
count=7000:拷贝块的数量。
2、格式化镜像文件,并加入 linuxroot 卷标:
sudo mkfs.ext4 -F -L linuxroot rk3588_230417.img
3、挂载镜像并往里面拷入修改后的文件系统
#创建镜像文件挂载目录
mkdir ubuntu-mount
#挂载空的 img 文件
sudo mount rk3588_230417.img ubuntu-mount
#将文件系统拷贝到 img 挂载的路径目录下,rootfs是同步过来的文件夹
sudo cp -rfp rootfs/* ubuntu-mount
# 卸载镜像
sudo umount ubuntu-mount
3. 烧写测试
用瑞芯微给的镜像烧写软件,把img 烧录到设备 rootfs 分区
开发板连接Windows电脑,并打开 RKDevTool 烧录工具,让开发板进入 Loading 模式;
如上图,只选择rootfs分区,点击右边的框框
选择备份好的rk3588_230417.img
镜像,然后点击执行
,开始烧写文件:
我当时把其他的镜像也烧录进去了。
参考资料
RK3588备份Ubuntu20.04系统_rk3568板子ubuntu20.04系统备份的方法-CSDN博客