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权限
本书是使用Zynq MPSoC的开发人员的实用指南,同样也是希望熟悉器件及其相关设计方法的技术人员的有效参考。 Zynq MPSoC(多处理器片上系统)是Xilinx公司推出的第二代SoC系列产品,集成了复杂的处理系统,包括ARM Cortex-A53应用程序处理器和ARM Cortex-R5实时处理器,以及FPGA可编程逻辑。 来自苏格兰斯特拉斯克莱德大学(University of Strathclyde)的Louise Crockett团队基于这一平台的软件和硬件结构,撰写了Exploring Zynq MPSoC: With PYNQ and Machine Learning Applications,综合且全面地介绍了软件堆栈、多处理器处理系统以及可编程硬件阵列等问题。 程序员可以学会如何使用简单的软件界面和框架来快速实现他们的机器学习算法,系统设计师可以利用它来获取系统的最高性能。 内容导读 器件的架构 与Zynq7000相比,Zynq MPSoC 进一步整合了处理器系统中可选择的处理器数量和性能,最多可配备四个ARM Cortex-A53处理器内核和两个ARM Cortex-R5实时处理器内核。此外,该架构进一步拓展了可编程逻辑门阵列中的DSP切片和分布式存储器的规模。在开发当今新兴的AI应用程序时,全新的MPSoC架构将实现繁琐的算术计算和数据移动的过程变得十分轻松有趣。 设计工具和方法 SoC系统将包括硬件设计和软件设计两个方面。硬件设计会映射到SoC设备上的FPGA逻辑资源,而软件则运行在一个或多个系统内部署的处理器上。在此设计流程中,硬件和软件开发可以在很大程度上独立进行,然后整合。工程师使用他们选择的工具生成硬件系统的元素,并使用Xilinx Vivado开发环境实现系统集成和实现目标设备。软件开发人员可以使用Xilinx软件开发工具包(SDK)进行开发。这是传统的软硬件协同设计方法。 Xilinx的SDx开发环境则是一种更高级的开发方式。在Xilinx SDx工具中可以完全使用软件代码对整个系统进行描述,然后对各种计算进行资源分配(在用户指导下)。这使得面向软件的软硬件协同设计已经发生了相当大的转变。本书的第4章中更详细地讨论了关于SDx设计方法。 更先进的应用实现 本书还讨论了Zynq上许多应用程序的实现,包括FINN-R开源框架的有效性神经网络的实现、基于Python的Zynq设备框架和机器学习应用程序。我们可以预见到一些基于Zynq的更为优秀的产品,包括高级驾驶员辅助系统(ADAS),计算机视觉,“大数据”分析等。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值