u-boot

u-boot源码地址 Version: 2018.1
依照 zynq_zybo 板移植U-boot,依次操作(<ubootdir>= /home/myhome/Xilinx/u-boot-xlnx/):

  1. 首次配置u-boot,进入到uboot根目录,做一次make distclean

  2. 获取配置文件 zynq_my_new_board_defconfigzynq_my_new_board.h
    依照zybo修改,即该将 zynq_zybo 改为 zynq_my_new_board

    cd <ubootdir>/configs/
    cp zynq_zybo_defconfig zynq_my_new_board_deconfigcd <ubootdir>/include/configs/
    cp zynq_zybo.h zynq_my_new_board.h
    
  3. 获取设备树 zynq-my-new-board.dts

    cd <ubootdir>/arch/arm/dts/
    cp zynq-zybo.dts zynq-my-new-board.dts# 根据需求修改设备树 ...
    # vim zynq-my-new-board.dts
    
  4. 获取设备树编译器:sudo apt-get install device-tree-compiler

  5. 导入配置并进入图形配置界面:

    cd <ubootdir>
    make ARCH=arm zynq_my_new_board_deconfig
    make ARCH=arm menuconfig
    
  6. 进入图形界面:

    • 修改设备树文件名:
      Device Tree Control —> (zynq-my-new-board) Default Device Tree for DT control

    • 修改板名:
      ARM architecture —>(zynq_my_new_board) Board configuration name 该名称在uboot编译时决定包含哪个配置文件,这个配置将引用 #/include/configs/zynq_my_new_board.h

    • 其他 控制器驱动程序 或 设备驱动程序 配置

    • 将新的配置文件保存为默认配置

      cp .config configs/zynq_my_new_board_deconfig
      
  7. 编译 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-,在<ubootdir>下生成 u-boot文件。

kernel

Kernel 源码: xlnx_rebase_v4.19_2019.2: kernel version 4.19.0

  1. 获取内核板级配置文件: my_new_board_defconfig

    tar xvf linux-xlnx-xlnx_rebase_v4.19_2019.2.tar.gz
    cd linux-xlnx-xlnx_rebase_v4.19_2019.2/
    cd arch/arm/configs/
    # 由于主芯片系列为zynq,因此以 zynq 作为 配置模板
    cp xilinx_zynq_defconfig my_new_board_defconfig
    
  2. 驱动移植

    以移植 Digilent AXI Dynamic Clock为例:

    1. 获取源文件

      cp clk-dglnt-dynclk.c <kernel_root>/drivers/clk
      
    2. 添加编译规则

      cd <kernel_root>/drivers/clk
      vim Makefile
      # Makefile 新增 obj-$(CONFIG_COMMON_CLK_DGLNT_DYNCLK) += clk-dglnt-dynclk.o
      
    3. 向menuconfig中增加目录

      cd <kernel_root>/drivers/clk
      vim Kconfig
      

      新增以下信息:

      config COMMON_CLK_DGLNT_DYNCLK
      tristate "Digilent axi_dynclk Driver"
      depends on ARCH_ZYNQ || MICROBLAZE
      help
      ---help---
      Support for the Digilent AXI Dynamic Clock core for Xilinx
      FPGAs.
      
  3. 内核配置

    cd <kernel_root>
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- my_new_board_defconfig
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig# Enable Digilent AXI Dynamic Clock driverDevice Drivers  --->Common Clock Framework  ---><*> Digilent axi_dynclk Driver
    

    保存修改后的内核配置

    cd <kernel_root>
    cp .config arch/arm/configs/my_new_board_defconfig
  4. 为板卡创建设备树

    内核目录新增 : arch/arm/boot/dts/my-new-board-top.dts

    arch/arm/boot/dts/Makefile中添加 :

    # 略....
    dtb-$(CONFIG_ARCH_ZYNQ) += \
    # 略....
    # 添加my-new-board-top.dtb
    # 略....
    
  5. 编译

    • 设备树编译
      make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
    • 内核编译
      make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- UIMAGE_LOADADDR=0x00008000 uImage

[嵌入式linux] 为新板卡创建 u-boot 和kernel 配置文件相关推荐

  1. linux系统登录新用户,Linux为新员工创建用户以及配置登录公钥

    背景 因新入职员工需要为其LInux服务器创建账户以及添加员工同事的主机公钥,以下步骤均以脚本实现 需求1.在Linux系统中创建用户 2.创建用户.ssh存放公钥目录 3.将用户的主机公钥信息加入到 ...

  2. 嵌入式Linux 的Cramfs 根文件系统配置成可读可写

    嵌入式Linux 的Cramfs 根文件系统配置成可读可写  1.概述 从软件角度上看,构建基于ARM技术的linux系统要涉及到引导加载程序.Linux内核.文件系统.用户应用程序几部分的设计.文件 ...

  3. linux lvm添加磁盘,Linux下添加磁盘创建lvm分区

    shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...

  4. 单片机转嵌入式Linux的思考

    一.你真的决定要转嵌入式Linux吗? 要不要从单片机转嵌入式Linux是一个影响到职业发展的严肃决策,火哥不能帮你拿主意,只能帮你列出利弊,你需要根据自身的各种环境(比如所在城市Linux嵌入式相关 ...

  5. 嵌入式Linux内存压力测试

    原文参考:添加链接描述 1 前言   内存是电子计算机的最重要组成要素之一. 与内存对应的就是外存,如硬盘.外部存储器等.内存是将外存与CPU连接起来的桥梁,计算机中所有数据都需经过内存进行交互,而且 ...

  6. 使用memtester工具对嵌入式Linux内存压力测试

    文章目录 1 前言 2 memtester工具 3 工具编译与使用 3.1 编译 3.2 使用 3.2.1 命令使用格式 3.2.2 测试结果 4 在RK3399平台上测试 1 前言   内存是电子计 ...

  7. suse linux增加新磁盘分区,Virtualbox中Linux添加新磁盘并创建分区

    引言:我们常常在使用系统的时候突然发现,哎呦~~~我们的磁盘空间不够用啦!我遇到常见的就是数据库数据暴增,预留的空间没有啦,只好新添加磁盘,在VB虚拟机上就可以实现,往往苦于没有图文并茂的好资料,下面 ...

  8. linux内核创建字符节点,Tiny6410学习ing—(四)、嵌入式Linux内核驱动进阶—(7)、高级字符设备驱动(自动创建节点)—#931...

    按照国嵌的视频教程上来说的,最后就是-自动创建设备文件! 其实我感觉以前完全可以直接是手动创建了设备文件,然后就可以直接讲述自动创建设备文件,为啥非要拖到最后来讲述,我也就不清楚了!! 不管了,写完收 ...

  9. 【正点原子MP157连载】第二十二章 新字符设备驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  10. linux如何挂载swap分区,Linux挂载新硬盘和创建Swap分区的方法

    Liunx添加新硬盘其实和Windows的操作一样,但一个是图形化操作,另一个是命令行操作,不过步骤是一样,下面就动手演示和讲解 Linux挂载新硬盘 1.查看硬盘信息 命令:fdisk -l [ro ...

最新文章

  1. Linux/windows系统定时任务调度总结
  2. svg里写入html标签,如何将HTML元素放在内联SVG上
  3. E 和 ? extends E的区别
  4. mysql数据库的分离_数据库分离和附加 (SQL Server)
  5. 《20170911-构建之法:现代软件工程-阅读笔记》
  6. Linux设备驱动模型2——总线式设备驱动组织方式
  7. 社群广场程序公众号版本程序源码-支持群采集
  8. 在webstorm中新建模板
  9. java类对象转化成字符串_String类型字符串(xml格式)转换成java对象类型
  10. php机械相关毕业设计,PHP+MySQL毕业设计选题管理系统(含论文)
  11. mysql 不认的字符串_mysql 判断字符串是否为其他字符串的子集
  12. 如何建立高效的需求管理机制?
  13. 有哪些需要不得不知的ASO的两种优化技巧
  14. jQuery-获取验证码
  15. ftm国际化解决方案
  16. FileZilla显示 连接超时 无法连接到服务器的解决方案
  17. 设计模式之原型模式【选用鸣人影分身阐述】
  18. 【ct107d】开发版说明书
  19. git 撤销刚才的rebase_从撤销 rebase 谈谈 git 原理
  20. 没迈过PRA的门槛 企业谈何“人工智能”

热门文章

  1. 关于诺基亚与微软战略合作
  2. 怎样使用Hanlp进行中文分词?——Java平台新手分词入门教程
  3. Android路由框架ARouter_若雪似风_新浪博客
  4. kotlin中的常用运算符_如果Kotlin中的Elvis运算符为null,请改用它
  5. 教育培训直播短视频源码
  6. 全网最全python字符串操作指南,稳住别急
  7. 软件测试工程师的职业发展方向,别迷茫了,振作起来
  8. 美丽联合2018校招前端开发工程师笔试试卷及解析
  9. 【苹果信息推送imessage】安装软件需要需要文件夹路径?
  10. 混合精子群优化和万有引力搜索算法 (HSSOGSA)(Matlab完整代码实现)