【linux】驱动-9-设备树插件
前言
建议:去原文链接观看,排版、观感便于学习。
链接:
参考:用到野火提供的工具脚本。
9. Linux设备树插件
设备树插件(Dynamic DeviceTree)与 Linux4.4 后引入。
设备树插件可以理解为设备树的补丁。可以动态加载到系统中,无需重新编译整个设备树。
9.1 格式
设备树插件是有相对固定的格式的,相当于多穿一件衣服而已。
格式如下:
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/";
__overlay__ {
/*在此添加要插入的节点*/
};
};
};
分析:
/dts-v1/:指定 dts 版本。/plugin/:表示设备树插件中可以引用设备树中的节点。因为这些节点在设备树插件中是未定义的,所以,要加上本行code。target-path = "/";:指定设备树插件加载的位置。(默认在根节点下)- 我们要插入的设备及节点或者要引用(追加)的设备树节点放在
__overlay__ {…};内。 - 其它都是固定的。
9.2 设备树插件的编译和加载
9.2.1 单独使用dtc工具编译
设备树和设备树插件都是使用 DTC 编译工具编译。
设备树编译后得到的是 .dtb 文件;
而设备树插件编译后得到的是 .dtbo 文件。
使用野火提供的一键式编译工具:
- 地址:git clone https://gitee.com/Embedfire/ebf-linux-dtoverlays.git
- 要编译的设备树插件源文件放在 ebf-linux-dtoverlays/overlays/ebf 目录下, 然后回到编译工具的根目录 ebf-linux-dtoverlays/ 执行 make 即可。
- 生成的.dtbo位于 ~/ebf-linux-dtoverlays/output 目录下。
- 注意:如果你在执行 make 后出现报错,可以尝试先卸载 device-tree-compiler(卸载命令为:
sudo apt-get autoremove device-tree-compiler), 重新安装,然后在 ebf-linux-dtoverlays/basic/fixdep 文件的权限, 修改权限命令为:chmod 777 scripts/basic/fixdep。
9.2.2 内核dtc工具编译设备树插件
编译设备树插件和编译设备树类似,这里使用内核中的dtc工具编译编译设备树插件。
编译命令:内核构建目录/scripts/dtc/dtc -I dts -O dtb -o xxx.dtbo xxx.dts
- 意为编译 dts 为 dtbo
9.2.3 加载设备树插件
先拷贝设备树插件文件到开发板上。
9.2.3.1 使用 echo 命令加载
先在 /sys/kernel/config/device-tree/overlays/下创建一个新目录,名字自定义。
然后将 dtbo 固件 echo 到 path 属性文件中或将 dtbo 的内容 cat 到 dtbo 属性文件中。
echo xxx.dtbo >/sys/kernel/config/device-tree/overlays/xxx/path
# 或
cat xxx.dtbo >/sys/kernel/config/device-tree/overlays/xxx/dtbo
删除设备插件:rmdir /sys/kernel/config/device-tree/overlays/xxx。
9.2.3.2 uboot 加载
不同的板子可能不支持。
修改环境变量文件即可,进入/boot目录下 修改 vim uEnv.txt
【linux】驱动-9-设备树插件的更多相关文章
- Linux驱动之设备树的基础知识
前期知识 1. 如何编写一个简单的Linux驱动(一)--驱动的基本框架 2. 如何编写一个简单的Linux驱动(二)--设备操作集file_operations 3. 如何编写一个简单的 ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开【转】
转自:https://www.cnblogs.com/pengdonglin137/p/5248114.html#_lab2_3_1 阅读目录(Content) 作者信息 平台简介 摘要 正文 一.根 ...
- Android驱动之设备树简介
目录 一. 设备树简介 2 1. 问题一:为什么需要设备树? 2 ①名词解释: 2 ②DT详细介绍: 2 ③DTS是DT的源文件,描述Device Tree中的设备 ...
- linux驱动之设备模型
linux 设备驱动模型 inux2.6提供了新的设备模型:总线.驱动.设备.基本关系简要的概括如下: 驱动核心可以注册多种类型的总线. 每种总线下面可以挂载许多设备.(通过kset devices) ...
- 【Linux 驱动】设备驱动程序再理解
学习设备驱动编程也有一段时间了,也写过了几个驱动程序,因此有对设备驱动程序有了一些新的理解和认识,总结一下.学习设备驱动编程也有一段时间了,也写过了几个驱动程序.因此有对设备驱动程序有了一些新的理解和 ...
- Linux 驱动框架---设备文件devfs
设备文件系统 Linux引入了虚拟文件系统,从而使设备的访问可以像访问普通文件系统一样.因此在内核中描述打开文件的数据inode中的rdev成员用来记录设备文件对应到的设备号.设备文件也由一个对应的f ...
- linux驱动---字符设备的注册register_chrdev说起
首先我们在注册函数里面调用了register_chrdev(MEM_MAJOR,"mem",&memory_fops),向内核注册了一个字符设备. 第一个参数是主设备号,0 ...
- linux驱动之设备号与创建设备节点
设备号: 1.自己主动分配 major = register_chrdev(0,"first_drv",&first_sdv_fops);//注冊 注冊设备时给设备号写0, ...
随机推荐
- ROS等下载时无法连接问题的解决方法
资料参考: https://blog.csdn.net/weixin_44692299/article/details/105869229
- ajax缺点
ajax请求在SEO中效率低,SEO就是关键字搜索的匹配度. 比如在百度搜索Java,一般来说内容中出现Java的次数越多排名越靠前,当使用ajax时,它的异步刷新导致必须是页面刷新出来才去刷新数据, ...
- redis环境配置
1.解压redis压缩包 tar -zxvf redis-5.0.7 2. 基本环境安装 进入解压后的目录 安装yum(cents需要 其它版本Linux可能不适用yum用其它工具)ubuntu:ap ...
- CentOS部署TOMCAT8
官网下载地址:https://tomcat.apache.org/download-80.cgi 版本:TOMCAT 8 -- Core--tar.gz 首先需要将文件传输到CentOS的/usr/s ...
- Redis集群简介及部署
1简介 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- Java数组之选择排序
选择排序 package com.kangkang.array; import java.util.Arrays; public class demo04 { public static void m ...
- MySQL:逻辑库与表管理
逻辑库管理 语句 说明 CREATE DATABASE 逻辑库名; 创建逻辑库 SHOW DATABASES; 显示所有逻辑库 DROP DATABASE 逻辑库名; 删除逻辑库 USE 逻辑库名; ...
- go http库 设置代理
func ProxyTest() { proxyAddr := "http://your IP:8080/" httpUrl := "http://your target ...
- 只需2分钟!PC端的报表即可转换成手机报表
转: 只需2分钟!PC端的报表即可转换成手机报表 手机制作报表,这个大家不知有没有尝试过,虽然我们平时都用电脑做,但是电脑要是不在身边了,手机就可以用来应应急.但其实小编并没有在手机上制作报表的实践经 ...
- HDOJ-1301(最小生成树模板+Prim算法)
Jungle Roads HDOJ-1301 这是最小生成树的水题,唯一要注意的就是那个n,其实输入只有n-1行. #include<iostream> #include<cstdi ...