码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux系统移植三:移植Kernel生成zImage和dtb文件


    Linux系统移植系列

    Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)
    Linux系统移植二:生成fsbl引导文件并制作BOOT.bin(非petalinux版)

    环境

    1. hdf设计:vivado 2017.4套件
    2. 交叉编译环境: arm-linux-gnueabihf-
    3. 虚拟机Linux系统版本:ubuntu 16.04
    4. 开发板:ALINX AX7Z100 开发板(ZYNQ7100)

    下载源码包

    Xilinx官方linux源码包下载地址:https://github.com/Xilinx/linux-xlnx/tags,我选择的是2017.4版本的

    添加开发板配置文件

    cd arch/arm/configs 拷贝并添加配置文件 cp xilinx_zynq_defconfig ax7z100_zynq_defconfig

    修改设备树文件

    参照 Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版) 添加自己的板子一节中的第2步和第3步
    只不过目录变成了 /arch/arm/boot/dts ,操作一样

    在这里插入图片描述

    修改Makefile

    同样参照 Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版),添加.dtb文件

    在这里插入图片描述

    编译zImage

    新建脚本zynq_kernel_gen.sh ,写入以下内容

    #!/bin/sh 
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- ax7z100_zynq_defconfig
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    第三条命令是用来打开Linux内核图形化配置界面,有需要可配置

    chmod +x zynq_kernel_gen.sh
    ./zynq_kernel_gen.sh
    
    • 1
    • 2

    编译成功信息截图
    编译完成之后会在目录 /arch/arm/boot 下生成内核镜像文件 zImage ,在目录 /arch/arm/boot/dts 下生成内核设备树文件 zynq-ax7z100.dtb

    测试zImage

    配置tftpboot

    安装软件包

    sudo apt-get install tftp-hpa tftpd-hpa
    
    • 1

    在根目录下新建一个/tftpboot目录做为TFTP文件存储目录

    sudo mkdir -p /tftpboot 
    sudo chmod 777 /tftpboot
    
    • 1
    • 2

    配置tftp,打开/etc/default/tftpd-hpa文件,将其内容修改如下

    # /etc/default/tftpd-hpa
    TFTP_USERNAME="tftp" 
    TFTP_DIRECTORY="/tftpboot" 
    TFTP_ADDRESS=":69" 
    TFTP_OPTIONS="-l -c -s"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    以后我们就将所有需要通过TFTP传输的文件都放到该文件夹里面,最后输入如下命令,重启tftp服务器

    sudo service tftpd-hpa restart
    
    • 1

    至此,tftp 服务器就已经搭建好了。

    使用tftpboot下载测试

    拷贝上一节编译出来的zImage和ax7z100.dtb到Ubuntu的/tftpboot目录,我们要在uboot中使用tftpboot命令将其下载到开发板中

    cp arch/arm/boot/zImage /tftpboot/ -f
    cp arch/arm/boot/dts/ax7z100.dtb /tftpboot/ -f
    
    • 1
    • 2

    拷贝完成以后就可以测试了,启动开发板,进入uboot命令行模式,然后输入如下命令将zImage和ax7z100.dtb下载到开发板中并启动

    tftpboot 8000 zImage 
    tftpboot 103cdda8 zynq-ax7z100.dtb
    bootz 8000 - 103cdda8
    
    • 1
    • 2
    • 3

    当出现 Starting kernel ... 信息说明内核启动成功

  • 相关阅读:
    【Python 中的 range() 与 xrange()】
    ADB命令
    postman拦截浏览器请求
    记一次利用工具升级 redhat 7.5到bclinux8.2操作
    盐湖提锂膜后除硼工艺
    边云协同架构设计
    【数据结构与算法】骑士周游算法/马踏棋盘算法的介绍和程序实现
    Python Opencv实践 - 二维码和条形码识别
    Django(一、简介,安装与使用)
    (四) 共享模型之管程【Monitor 概念】
  • 原文地址:https://blog.csdn.net/qq_41873311/article/details/128153115
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号