MPSOC 移植ubuntu文件系统

MPSOC 移植ubuntu文件系统

0、uboot和kernel准备(有关petalinux的介绍我就不多说了参见ug1144)

  • 利用petalinux配置文件系统格式、根文件系统路径
    在这里插入图片描述

在这里插入图片描述

  • 执行编译命令最终生成以下3个文件
    在这里插入图片描述

  • 格式化SD卡并重新分为2个区第一个区的格式为FAT,第二个区的格式为EXT4
    在这里插入图片描述

  • 将boot.src、 BOOT.BIN、 image.ub复制到第一个分区(FAT)

1、下载ubuntu-base

  • 打开ubuntu-base下载网址,根据自己的需求下载ubuntu版本,我下载的是ubuntu-base-22.04-base-amd64.tar.gz

2、解压

mkdir rootfs
tar xzvf ubuntu-base-XXXXXX.tar.gz -C ./rootfs
cd rootfs

3、安装 qemu-user-static(为了在PC上模拟运行根文件系统)

apt-get install qemu-user-static
cp /usr/bin/qemu-aarch64-static usr/bin/

4、拷贝PC主机端网络配置到虚拟根文件系统中

cp -b /etc/resolv.conf etc/resolv.conf

5、创建mount.sh,放置于rootfs同等级目录下

  • 文件内容如下所示
#!/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
  • 修改为可运行文件
chmod +x mount.sh
  • 通过mount.sh脚本chroot到arm64的文件系统下
./mount.sh -m rootfs/

在这里插入图片描述

6、下载基础软件(一定要找一个网速好的地方)

apt update
apt install language-pack-en-base
apt install sudo
apt install ssh
apt install net-tools
apt install ssh
apt install network-manager
apt install iputils-ping
apt install rsyslog
apt install bash-completion
apt install gcc
apt install vim

7、添加用于名和密码

  • 给系统添加一个名为bohai的管理员账号
useradd -s '/bin/bash' -m -G adm,sudo bohai
  • 修改bohai帐号密码(根据提示输入两次)
passwd bohai
  • 修改root帐号密码(根据提示输入两次)
passwd root

8、设置主机名

echo 'ubuntu' > /etc/hostname
echo '127.0.0.1 ubuntu' >> /etc/hosts

9、保存退出

exit
./mount -u rootfs/

10、打包压缩

sudo tar -zcvf rootfs.tar.gz -C rootfs/ .

11、解压到SD卡第二分区(EXT4格式的文件系统)

sudo tar xzvf rootfs.tar.gz -C /media/xxx/EXT
  • 注意的的SD卡EXT4分区盘符的名字叫做“EXT”
  • /media/xxx/EXT表示盘符挂载路径,根据实际情况更改

12、新建网卡配置文件01-network-manager-all.yaml

  • ubuntu-base-22.04后的版本不再使用interfaces配置网卡,改用yaml
  • 01-network-manager-all.yaml文件内容如下
    • 自动获取ip
    network:
      version: 2
      renderer: NetworkManager
      ethernets:
        eht0:
          dhcp4: yes
    
  • 复制该文件到/…/etc/netplan
sudo cp 01-network-manager-all.yaml /media/hhl/EXT4/etc/netplan/

13、插入SD卡上电启动

在这里插入图片描述

14、注意

  • 上述的一些指令如果不能正常运行请切换至sudo权限
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Xilinx Zynq UltraScale+ MPSoC是一款高性能、低功耗的可编程系统级集成电路(SoC),其中包括Arm Cortex-A53处理器和可编程逻辑裸核。XCZU系列芯片是基于该架构设计的。虽然XCZU主要用于嵌入式系统开发,但它也能够运行Linux操作系统,例如Ubuntu。 为了在XCZU上运行Ubuntu系统,首先需要一个适配的镜像文件。可以从Ubuntu官方网站或其他支持的平台下载UbuntuZynq UltraScale+ MPSoC版本。然后,将镜像文件烧录到XCZU的存储设备上,例如SD卡或eMMC闪存。 接下来,将XCZU与主机电脑连接,可以使用串口、以太网或USB进行连接。使用开发板上的Boot Mode开关,将XCZU设置为从存储设备引导。打开终端程序,使用合适的命令将镜像文件加载到XCZU的内存中,并完成启动过程。在启动期间,XCZU会加载运行Ubuntu所需的驱动程序和文件系统。 一旦Ubuntu成功启动,用户就可以通过终端窗口与系统进行交互,运行命令和应用程序。用户也可以安装和配置其他软件和工具,以满足特定的需求。不过,需要注意的是,由于XCZU是一款嵌入式系统,其资源和性能相对有限。因此,在使用Ubuntu时,需要优化系统配置和应用程序,以确保最佳性能。 总之,XCZU可通过适配的镜像文件和正确的配置和操作,运行Ubuntu系统。这为用户提供了在高性能低功耗处理器和可编程逻辑之间发挥创造力的机会。无论是嵌入式系统开发、高性能计算还是其他应用领域,XCZU与Ubuntu系统的结合将为用户提供强大的工具和平台。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值