[嵌入式linux] 为新板卡创建 u-boot 和kernel 配置文件
u-boot
u-boot源码地址 Version: 2018.1
依照 zynq_zybo
板移植U-boot,依次操作(<ubootdir>
= /home/myhome/Xilinx/u-boot-xlnx/):
首次配置u-boot,进入到uboot根目录,做一次
make distclean
获取配置文件 zynq_my_new_board_defconfig 和 zynq_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
获取设备树 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
获取设备树编译器:
sudo apt-get install device-tree-compiler
导入配置并进入图形配置界面:
cd <ubootdir> make ARCH=arm zynq_my_new_board_deconfig make ARCH=arm menuconfig
进入图形界面:
修改设备树文件名:
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
编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
,在<ubootdir>
下生成u-boot
文件。
kernel
Kernel 源码: xlnx_rebase_v4.19_2019.2: kernel version 4.19.0
获取内核板级配置文件: 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
驱动移植
以移植
Digilent AXI Dynamic Clock
为例:获取源文件
cp clk-dglnt-dynclk.c <kernel_root>/drivers/clk
添加编译规则
cd <kernel_root>/drivers/clk vim Makefile # Makefile 新增 obj-$(CONFIG_COMMON_CLK_DGLNT_DYNCLK) += clk-dglnt-dynclk.o
向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.
内核配置
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
为板卡创建设备树
内核目录新增 :
arch/arm/boot/dts/my-new-board-top.dts
在
arch/arm/boot/dts/Makefile
中添加 :# 略.... dtb-$(CONFIG_ARCH_ZYNQ) += \ # 略.... # 添加my-new-board-top.dtb # 略....
编译
- 设备树编译
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 配置文件相关推荐
- linux系统登录新用户,Linux为新员工创建用户以及配置登录公钥
背景 因新入职员工需要为其LInux服务器创建账户以及添加员工同事的主机公钥,以下步骤均以脚本实现 需求1.在Linux系统中创建用户 2.创建用户.ssh存放公钥目录 3.将用户的主机公钥信息加入到 ...
- 嵌入式Linux 的Cramfs 根文件系统配置成可读可写
嵌入式Linux 的Cramfs 根文件系统配置成可读可写 1.概述 从软件角度上看,构建基于ARM技术的linux系统要涉及到引导加载程序.Linux内核.文件系统.用户应用程序几部分的设计.文件 ...
- linux lvm添加磁盘,Linux下添加磁盘创建lvm分区
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- 单片机转嵌入式Linux的思考
一.你真的决定要转嵌入式Linux吗? 要不要从单片机转嵌入式Linux是一个影响到职业发展的严肃决策,火哥不能帮你拿主意,只能帮你列出利弊,你需要根据自身的各种环境(比如所在城市Linux嵌入式相关 ...
- 嵌入式Linux内存压力测试
原文参考:添加链接描述 1 前言 内存是电子计算机的最重要组成要素之一. 与内存对应的就是外存,如硬盘.外部存储器等.内存是将外存与CPU连接起来的桥梁,计算机中所有数据都需经过内存进行交互,而且 ...
- 使用memtester工具对嵌入式Linux内存压力测试
文章目录 1 前言 2 memtester工具 3 工具编译与使用 3.1 编译 3.2 使用 3.2.1 命令使用格式 3.2.2 测试结果 4 在RK3399平台上测试 1 前言 内存是电子计 ...
- suse linux增加新磁盘分区,Virtualbox中Linux添加新磁盘并创建分区
引言:我们常常在使用系统的时候突然发现,哎呦~~~我们的磁盘空间不够用啦!我遇到常见的就是数据库数据暴增,预留的空间没有啦,只好新添加磁盘,在VB虚拟机上就可以实现,往往苦于没有图文并茂的好资料,下面 ...
- linux内核创建字符节点,Tiny6410学习ing—(四)、嵌入式Linux内核驱动进阶—(7)、高级字符设备驱动(自动创建节点)—#931...
按照国嵌的视频教程上来说的,最后就是-自动创建设备文件! 其实我感觉以前完全可以直接是手动创建了设备文件,然后就可以直接讲述自动创建设备文件,为啥非要拖到最后来讲述,我也就不清楚了!! 不管了,写完收 ...
- 【正点原子MP157连载】第二十二章 新字符设备驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- linux如何挂载swap分区,Linux挂载新硬盘和创建Swap分区的方法
Liunx添加新硬盘其实和Windows的操作一样,但一个是图形化操作,另一个是命令行操作,不过步骤是一样,下面就动手演示和讲解 Linux挂载新硬盘 1.查看硬盘信息 命令:fdisk -l [ro ...
最新文章
- Linux/windows系统定时任务调度总结
- svg里写入html标签,如何将HTML元素放在内联SVG上
- E 和 ? extends E的区别
- mysql数据库的分离_数据库分离和附加 (SQL Server)
- 《20170911-构建之法:现代软件工程-阅读笔记》
- Linux设备驱动模型2——总线式设备驱动组织方式
- 社群广场程序公众号版本程序源码-支持群采集
- 在webstorm中新建模板
- java类对象转化成字符串_String类型字符串(xml格式)转换成java对象类型
- php机械相关毕业设计,PHP+MySQL毕业设计选题管理系统(含论文)
- mysql 不认的字符串_mysql 判断字符串是否为其他字符串的子集
- 如何建立高效的需求管理机制?
- 有哪些需要不得不知的ASO的两种优化技巧
- jQuery-获取验证码
- ftm国际化解决方案
- FileZilla显示 连接超时 无法连接到服务器的解决方案
- 设计模式之原型模式【选用鸣人影分身阐述】
- 【ct107d】开发版说明书
- git 撤销刚才的rebase_从撤销 rebase 谈谈 git 原理
- 没迈过PRA的门槛 企业谈何“人工智能”
热门文章
- 关于诺基亚与微软战略合作
- 怎样使用Hanlp进行中文分词?——Java平台新手分词入门教程
- Android路由框架ARouter_若雪似风_新浪博客
- kotlin中的常用运算符_如果Kotlin中的Elvis运算符为null,请改用它
- 教育培训直播短视频源码
- 全网最全python字符串操作指南,稳住别急
- 软件测试工程师的职业发展方向,别迷茫了,振作起来
- 美丽联合2018校招前端开发工程师笔试试卷及解析
- 【苹果信息推送imessage】安装软件需要需要文件夹路径?
- 混合精子群优化和万有引力搜索算法 (HSSOGSA)(Matlab完整代码实现)