linux系统移植 基于zynq7000平台

目录

    • 1. 准备工作
      • 1.1. 新建工作目录
      • 1.2. 安装必备库
    • 2. zynq 平台交叉编译器的安装
      • 2.1 解压编译环境
      • 2.2 在 zynq 目录下编写激活脚本,并激活
      • 2.3 测试编译器版本
    • 3. Uboot 编译及制作
      • 3.1 Uboot 编译和配置:
      • 3.2 生成 boot.bin
    • 4. Linux 内核配置及移植
      • 4.1 编译内核(uImage)
      • 4.2 制作设备树(devicetree.dtb)
      • 4.3 配置 SD 卡
      • 4.4 将所有需要的文件拷贝sd卡
    • 5. nfs实现文件共享
      • 5.1. 配置虚拟机
      • 5.2. 配置板子

1. 准备工作

1.1. 新建工作目录

  • 新建工作目录zynq,并在里面新建 packs目录存放所需压缩包、新建backups目录再在里面新建boot目录,存放要复制到sd卡的内容
    linux系统移植 基于zynq7000平台_第1张图片

1.2. 安装必备库

  • 安装32位的库
    (所用编译器是 32 位,而我们的系统是 64 位的,需要安装 32位的库)
 $ sudo apt install libc6-i386 lib32z1
 $ sudo apt install lib32stdc++6
  • 安装 openssl 开发库
    (由于xilinx公司提供的uboot版本较老,依赖的是ssl1.0.0的版本,需要安装这个版本库)
    对于ubuntu20.04 版本:
$ sudo vim /etc/apt/sources.list  添加:
deb http://security.ubuntu.com/ubuntu bionic-security main
$ sudo apt update && apt-cache policy libssl1.0-dev
$ sudo apt install libssl1.0-dev
  • 安装python2
$ sudo apt install python2.7
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python2

2. zynq 平台交叉编译器的安装

2.1 解压编译环境

  • 解压 Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux.tar.gz 文件到 packs
    的上级目录下,并重命名为 xilinx-tools
$ tar -zxvf Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux.tar.gz -C ../
$ mv Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux xilinx-tools

2.2 在 zynq 目录下编写激活脚本,并激活

$ vim env_z7.sh  添加:
#!/bin/sh
export PATH=/home/venom/zynq/xilinx-tools/bin:${PATH}
ARCH=arm
CROSS_COMPILE=arm-linux-
$ source env_z7.sh

2.3 测试编译器版本

$ arm-linux-gcc -v

在这里插入图片描述

3. Uboot 编译及制作

3.1 Uboot 编译和配置:

  • 解压 u-boot-xlnx.tar.gz 文件到上级目录
$ tar u-boot-xlnx.tar.gz -C ../
  • 进入 u-boot-xlnx 目录,执行 build.sh 脚本
$ ./build.sh

3.2 生成 boot.bin

  • 解压 zynq_boot.tar.gz 文件到上级目录
$ tar zynq_boot.tar.gz -C ../
  • 进入zynq_boot目录,修改bootimage.bif的内容
$ vim bootimage.bif
the_ROM_image:
{
[bootloader]/home/venom/zynq/zynq_boot/zynq_fsbl_0.elf
/home/venom/zynq/zynq_boot/system.bit
/home/venom/zynq/zynq_boot/u-boot.elf
}
  • 拷贝u-boot.elf 到本目录
$ cp ../u-boot-xlnx/u-boot.elf ./
  • 执行当前目录的build.sh脚本
$ ./build.sh
  • 拷贝boot.bin到备用目录下
$ cp boot.bin ../backups/boot/

4. Linux 内核配置及移植

4.1 编译内核(uImage)

  • 进入 uboot 源码目录下的 tools 目录,拷贝mkimage到/bin
    (zynq7000 的内核采用的是 uboot 启动的 uImage 格式,需要借助 uboot编译生成的 mkimage 可执行文件)
$ sudo cp mkimage /bin
  • 解压 linux-kernel.tar.gz到上级目录
 $ tar linux-kernel.tar.gz -C ../
  • 进入linux-kernel目录执行 build.sh 脚本
$ ./build.sh
  • 拷贝uImage到备用目录下
$ cp arch/arm/boot/uImage /home/venom/zynq/backups/boot/

4.2 制作设备树(devicetree.dtb)

  • 解压 linux-kernel.tar.gz到上级目录
$ tar device_tree.tar.gz -C ../
  • 进入device_tree 目录执行 build.sh 脚本
$ ./build.sh
  • 拷贝devicetree.dtb到备用目录下
$ cp devicetree.dtb ../backups/boot/

4.3 配置 SD 卡

  • 将 SD 卡接入电脑,选择连接到虚拟机
    在这里插入图片描述

  • 找到磁盘
    linux系统移植 基于zynq7000平台_第2张图片

  • 设置磁盘分区
    linux系统移植 基于zynq7000平台_第3张图片

  • 点击‘-’删除所有分区

  • 点击‘+’号进行创建分区

  • 第一个分区0.5G,设置卷名boot,格式是 FAT 格式

  • 第二个分区是剩余空间,设置卷名rootfs,格式是 ext4

  • 分区好后,点击 ▶ 符号进行挂载

  • 进入sd目录

$ cd /media/venom
  • 新建卸载脚本,方便以后卸载sd卡
$ sudo touch umount.sh
$ chmod 777 umount.sh
$ vim umount.sh 填入
sudo umount /media/venom/boot/ 
sudo umount /media/venom/rootfs/

4.4 将所有需要的文件拷贝sd卡

  • 进入packs目录拷贝uramdisk.image.gz到备用目录下
$ cp uramdisk.image.gz ../backups/boot/
  • rootfs.tar.gz解压到备用目录下
$ tar -zxvf rootfs.tar.gz -C ../backups/
  • 进入backups目录往sd拷贝
$ sudo cp -ardf boot/* /media/venom/boot/
$ sudo cp -ardf rootfs/* /media/venom/rootfs/

需要拷贝到sd卡的内容:
linux系统移植 基于zynq7000平台_第4张图片

  • 卸载sd卡
$ ./umount

5. nfs实现文件共享

5.1. 配置虚拟机

  • 添加网络适配器,并设置
    linux系统移植 基于zynq7000平台_第5张图片
  • 没有就添加网络

linux系统移植 基于zynq7000平台_第6张图片

linux系统移植 基于zynq7000平台_第7张图片

  • 自己设置ip地址

linux系统移植 基于zynq7000平台_第8张图片

  • 安装nfs服务
$ sudo apt install nfs-kernel-server
  • 添加要共享的文件夹
$ vim /etc/exports 添加:
/home/venom/work/nfs_share*(rw,sync,insecure,no_subtree_check,no_root_squash)

5.2. 配置板子

  • 设置ip
$ ip addr 先查看
$ ifconfig eth0 192.168.10.110

linux系统移植 基于zynq7000平台_第9张图片

  • 链接共享文件夹到开发板的 /mnt 目录下
$ mount -t nfs -o nolock 192.168.10.116:/home/venom/work/nfs_share /mnt
  • 然后就可以实现文件共享了
    在这里插入图片描述

来源于上课笔记,老师是:海牛rocky
压缩包下载:
链接:https://pan.baidu.com/s/1S8tYfoq07OBfjTuG2CHCSg
提取码:zynq

你可能感兴趣的:(linux系统移植,linux)