RK3566 Ubuntu 文件系统制作及修改文件系统

本文详细指导如何在Ubuntu上安装QEMU,创建并定制2GB的ARM文件系统,包括设置网络、安装基础工具和环境,以便进行软件部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备

1.安装qemu

	qemu是用来在本地机模拟arm环境的
sudo apt-get install qemu-user-static

2.准备文件系统

1.去官网下载干净文件系统
ubuntu img 下载想要的文件系统,备用
2.修改现有的文件系统
找到需要修改的文件系统,备用

3.创建文件系统镜像文件

选定一个目录,执行下面命令

su
mkdir rootfs 
cd rootfs
dd if=/dev/zero of=linuxroot.img bs=1M count=2048
sudo  mkfs.ext4  linuxroot.img
mount linuxroot.img rootfs   

这样就可以得到一个大小为2G,格式为ext4的文件系统,bs为指定单位大小,count为镜像由多少个count组成。if=/dev/zero为虚拟输入设备,of=linuxroot.img输出到镜像。

4.解压文件系统

将第一步得到的文件系统解压到rootfs目录下面

sudo  tar -xvf  文件系统.tar.gz -C rootfs

5.安装环境

复制模拟环境工具及网络配置文件到文件系统

cp -b /etc/resolv.conf rootfs/etc/resolv.conf   //复制本机网络环境到文件系统 
 cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/  //复制qemu工具到文件系统

6.环境切换文件

在rootfs同一个目录创建一个mount_chroot.sh文件,内容如下

#!/bin/bash
function mnt() {
    echo "MOUNTING"
    sudo mount -t proc /proc ${2}/proc
    sudo mount -t sysfs /sys ${2}/sys
    sudo mount -o bind /dev ${2}/dev
 
    sudo chroot ${2}
}
 
function umnt() {
    echo "UNMOUNTING"
    sudo umount ${2}/proc
    sudo umount ${2}/sys
    sudo umount ${2}/dev
 
}
 
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
    mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
    umnt $1 $2
else
    echo ""
    echo "Either 1'st, 2'nd or both parameters were missing"
    echo ""
    echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
    echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
    echo ""
    echo "For example: ch-mount -m /media/sdcard/"
    echo ""
    echo 1st parameter : ${1}
    echo 2nd parameter : ${2}
fi

完成了运行下面命令

sudo chmod 777 mount_chroot.sh`
sudo ./mount_chroot.sh -m rootfs   

这样就顺利切换到新的文件系统了

7.为文件系统安装软件

下面执行下列命令更新软件源

sudo apt update 

可以安装任意软件了。。。。。

8.最后步骤

做完以上的,执行以下命令,就可以得到一个想要的文件系统了。

exit
umount rootfs
e2fsck -p -f linuxroot.img
resize2fs  -M linuxroot.img
### RK3566 打包 Ubuntu boot.img 文件方法 对于RK3566平台而言,打包Ubuntu `boot.img`文件的过程涉及多个步骤,包括准备必要的工具链、配置内核参数以及创建适合设备启动的镜像。基于相似架构处理器的经验[^1],可以推测RK3566的操作流程会遵循类似的模式。 #### 准备工作环境 为了构建适用于RK3566的`boot.img`,首先需要设置好开发环境。这通常意味着安装交叉编译器和其他依赖项,并获取目标系统的源码树。如果已经有一个可用的工作站用于其他Rockchip SoC,则可能只需要调整一些特定于RK3566的部分即可。 #### 修改初始化脚本(init.rc) 类似于RK3288的例子[^2],在RK3566上也需要编辑`init.rc`来定义系统启动时的行为。此文件位于根文件系统的`/etc/init/`目录下或者是ramdisk中的相应位置。通过向其中添加命令行指令,可以让某些服务或应用程序随操作系统一同启动。 #### 创建Ramdisk Image (ramdisk.img) 一旦完成了对`init.rc`或其他任何必要配置文件的更改之后,就需要重新生成ramdisk image (`ramdisk.img`)。这个过程可以通过一系列shell命令完成: ```bash ./mkbootfs path/to/your/modified_ramdisk | gzip > ramkernel.img ``` 这里假设存在名为`mkbootfs`和`gzip`(可能是minigzip)这样的工具用来处理ramdisk的内容并压缩它。 #### 构建最终Boot Image (boot.img) 最后一步就是把之前制作好的ramdisk同经过适当配置后的Linux kernel一起封装成完整的`boot.img`。具体做法取决于所使用的引导加载程序版本及其支持的功能集。一般情况下,可能会用到如下的命令结构: ```bash mkimage -A arm64 -O linux -T kernel -C none -a 0x1080000 -e 0x1080000 \ -n "rockchip rk3566" -d arch/arm64/boot/Image.gz boot.img ``` 上述例子展示了如何利用u-boot提供的`mkimage`工具来组装带有指定入口地址的ARM64位内核映像。请注意实际路径和选项应根据具体情况作出相应的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤帆以后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值