详细介绍:第7章 zynq Linux内核和根文件系统的编译和启动



前言

由于本人较懒,记录主要是过程,由于zynq的比stm32做的人少很多,资料也少很多,我会简要介绍原理,操作流程主要由图片加少量文字组成,每一章都是在之前的章节基础上做的


上一章Uboot的问题都解决了,现在开始编译内核

一、下载内核源码并编译

下载内核源码https://github.com/Xilinx/linux-xlnx/releases/tag/xilinx-v2018.3到虚拟机内解压
在内核文件夹里依次输入以下指令使用zynq的配置

export ARCH=arm
make xilinx_zynq_defconfig

新建一个build.sh文件,并赋予执行权限后执行,share文件下生成一个内核镜像

#! /bin/bash
export PATH=$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make -j8
make UIMAGE_LOADADDR=0x8000 uImage
cp arch/arm/boot/uImage /mnt/hgfs/share

alt text

二、下载buildroot并编译

由于uboot版本为2018.1,buildroot这里下载2018.2https://buildroot.org/downloads/
在文件夹内输入make zynq_zc706_defconfig使用zc706的配置,输入make menuconfig进行配置,由于之前内核和uboot都是使用独立的源码编译,在这里取消掉
alt text
alt text
save后修改.config文件,将部分镜像地址改为国内,这样可以缩短下载的时间

BR2_KERNEL_MIRROR="https://mirror.bjtu.edu.cn/kernel/"
BR2_GNU_MIRROR="http://mirrors.nju.edu.cn/gnu/"
BR2_LUAROCKS_MIRROR="https://luarocks.cn"
BR2_CPAN_MIRROR="http://mirrors.nju.edu.cn/CPAN/"

输入make进行编译,由于下载的软件包很多,编译时间较长,期间报编译错误大概率是由于多线程编译内存不足导致的,编译完报错是因为没有用到它的编译脚本,这不用管,只要生成了镜像就可以
alt text
output/images/rootfs.cpio.uboot拷贝到tftp文件夹内

三、使用tftp启动

将ubootarch/arm/dts/system-top.dtb拷贝到tftp文件夹内
进入uboot后,输入以下指令从tftp启动,需要保证uImage、rootfs.cpio.uboot、system-top.dtb在tftp文件夹内

setenv ipaddr 192.168.0.10
setenv serverip 192.168.0.11
tftpboot 0x1000000 uImage && tftpboot 0x2000000 rootfs.cpio.uboot && tftpboot 0x3000000 system-top.dtb && bootm 0x1000000 0x2000000 0x3000000

开机后,nand报错
alt text
回头看vivado的时序为下图,显然符合数据手册上的时序
alt text
而设备树pcw.dtsi的值为

&nand0 {
arm,nand-cycle-t0 = <0x3>;
  arm,nand-cycle-t1 = <0x3>;
    arm,nand-cycle-t2 = <0x0>;
      arm,nand-cycle-t3 = <0x1>;
        arm,nand-cycle-t4 = <0x1>;
          arm,nand-cycle-t5 = <0x1>;
            arm,nand-cycle-t6 = <0x2>;
              status = "okay";
              };

猜测可能是四舍五入有问题,直接截取前一位,尝试修改vivado nand时序
alt text
修改完重新生成设备树,然后用设备树启动Linux,果然没问题了,这个确实有点坑啊,xilinx左右脑互博了属于是
alt text


总结

主要介绍了zynq 内核和根文件系统的编译和启动。

参考

posted @ 2025-11-09 09:54  clnchanpin  阅读(180)  评论(0)    收藏  举报