背景

在研究高通平台驱动震动马达时,我需要为内核驱动实现以下功能:/sys/class/timed_output/vibrator/enable":sysfs文件系统注册接口、提供showstore方法。

根据前人提供的文档(Android 5),我在Android 10 的代码中 跟踪挖出一种叫做 greybus 的总线,替代了 timed_out_dev 。

觉得还挺有意思的,网上没有对应的中文文档,分享一下。

介绍

Greybus是Google Project Ara的一部分(该项目是9月份结束的模块化智能手机计划),作为一种框架,它允许“通用”摄像机、音频设备和其他类设备,以及一个桥接的“物理”层协议,可以与串行、spi、uart、pwm、gpio、i2c甚至USB主机控制器进行通信。

附录: greybus 子系统的 提交请求

https://lkml.org/lkml/2016/9/14/250

[GIT PULL] Greybus driver subsystem for 4.9-rc1

From: Greg KH

Date: Wed Sep 14 2016 - 06:09:58 EST

Hi all,

As many of you know, I, and lots of other developers, have been working
on a new application level protocol for the Unipro hardware transport
called "Greybus". It has shown up in numerous demos from Google for the
Ara Phone platform, and an older version of the codebase is currently
shipping in a phone from Motorola any-day-now. There is a
semi-up-to-date version of the protocol specification available at:
https://github.com/projectara/greybus-spec
A newer version should be available soon, matching the code
implementation here, as soon as I work through a few final details with
some lawyers on the wording of the license. Many other software packages to help out with greybus devices are on
that github project page (manfest generator, emulator, firmware
examples, etc.), if people are interested. Given that it's never a good idea to keep subsystems out of the mainline
kernel, I've put together this pull request that adds the greybus driver
layer to drivers/greybus/. Because this was 2 1/2 years of work, with
many many developers contributing, I didn't want to flatten all of their
effort into a few small patches, as that wouldn't be very fair. So I've
built a git tree with all of the changes going back to the first commit,
and merged it into the kernel tree, just like btrfs was merged into the
kernel. The protocol design, and implementation, was a group effort, and it would
not have turned out well at all without the contributions of all of
these talented developers. I'll send out a follow-up set of "simple" patches that just add the
files to the kernel tree, to give people an idea of the code involved.
Overall, it's a tiny stand-alone driver subsystem, only 37k lines, that
implements a protocol which allows for "generic" cameras, audio devices,
and other class type devices, as well as a bridged "physical" layer
protocol to talk to serial, spi, uart, pwm, gpio, i2c, and even USB host
controllers. Included here is a USB bridge host controller driver that
interacts with a USB device that converts USB data to Unipro data,
allowing any system to talk to a Unipro platform (no special SoC
interface required.) Unless people point out some major problems with this, I'd like to get
it merged into 4.9-rc1. The shortlog and diffstat can be seen below. If anyone has any questions about this, please let us know. thanks, greg k-h
----------------------------------------------------------------------
大家好,
如你们所知,我和其他许多开发人员一直在为Unipro硬件传输开发一种新的应用层协议,称为“Greybus”。
它已经出现在谷歌为Ara手机平台做的大量演示中,而且现在摩托罗拉的一款手机现在随时都会提供旧版本的codebase。
协议规范的半更新版本可从以下网址获得:https://github.com/projectara/greybus-spec
一个更新的版本应该很快就会推出,与这里的代码实现相匹配,只要我和一些律师就许可证的措辞完成一些最后的细节。 如果人们感兴趣的话,可以在github项目页面(manfestgenerator、模拟器、固件示例等)上找到许多其他帮助greybus设备的软件包。
考虑到将子系统排除在主线内核之外并不是一个好主意,我将这个pull请求组合到drivers/greybus/中,它将greybus驱动程序层添加到drivers/greybus/。
因为这是2年半的工作,许多开发人员都在做贡献,所以我不想把他们所有的精力都放在几个小补丁上,因为这样做不太公平。
因此,我构建了一个git树,其中所有的更改都可以追溯到第一次提交,并将其合并到内核树中,就像btrfs被合并到内核中一样。 协议的设计和实现是一个团队的工作,如果没有这些有才华的开发人员的贡献,它就不会有好的结果。
我将发送一组后续的“简单”补丁,它们只是将文件添加到内核树中,让人们了解其中涉及的代码。 总的来说,它是一个很小的独立驱动子系统,只有37k行,它实现了一个协议,允许“通用”摄像机、音频设备和其他类设备,以及一个桥接的“物理”层协议,可以与串行、spi、uart、pwm、gpio、i2c甚至USB主机控制器进行通信。 这里包括一个USB桥接主机控制器驱动程序,它与一个USB设备交互,该设备将USB数据转换成Unipro数据,允许任何系统与Unipro平台通信(不需要特殊的SoC接口) 除非人们指出一些主要的问题,否则我想把它合并到4.9-rc1中。 下面可以看到shortlog和diffstat。
如果有人对此有任何疑问,请告诉我们。
谢谢 greg k-h

Linux greybus的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. Linux 内核概述 - Linux Kernel

    Linux 内核学习笔记整理. Unix unix 已有40历史,但计算机科学家仍认为其是现存操作系统中最大和最优秀的系统,它已成为一种传奇的存在,历经时间的考验却依然声名不坠. 1973 年,在用 ...

  3. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  4. NodeJs在Linux下使用的各种问题

    环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...

  5. [linux]阿里云主机的免登陆安全SSH配置与思考

    公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. SQL Server on Linux 理由浅析

    SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...

  9. Microsoft Loves Linux

    微软新任CEO纳德拉提出的“Microsoft Loves Linux”,并且微软宣布.NET框架的开源,近期Microsoft不但宣布了Linux平台的SQL Server,还宣布了Microsof ...

  10. Linux 江湖系列阶段性总结

    引言 我使用 Linux 已经有很多年了,最开始接触 Linux 的时候是从 RedHat 9(没有 Enterprise),中途换过 N 个不同的发行版.多年前,我在 BlogJava 上面分享 J ...

随机推荐

  1. netcore热插拔dll

    项目中有有些场景用到反射挺多的,用到了反射就离不开dll的加载.此demo适用于通过反射dll运行项目中加载和删除,不影响项目. ConsoleApp: 1 using AppClassLibrary ...

  2. Java获取电脑盘符(最后一个盘符)

    //遍历获得所有盘符 File[] roots = File.listRoots(); for (int i =0; i < roots.length; i++) { System.out.pr ...

  3. 一个用Python将视频变为表情包的工具

    这是一个将视频转变为表情包的工具,现实生活中当我们看到一段搞笑的视频,我们可以将这段视频喂给这段程序,生成gif表情包,这样就可以用来舍友斗图了 1.一些限制 1.这个程序不能转化超过15秒以上的视频 ...

  4. Linux中典型的文件权限问题

    总结起来说,可以打个比方,目录就像一间上了锁有窗户的屋子.如果你只想看屋子里面有啥,那么只要拥有r权限,不必进入到屋子,透过屋子的窗户就能看到里面的东西:但是如果你想改变屋子里面的物件,或者从屋子里面 ...

  5. OpenNESS NTS 的前世今生

    目录 文章目录 目录 NEV SDK NEV SDK 的软件架构 NEV SDK 的持续演进 OpenNESS NTS NTS 在 VM 场景中的应用 NTS 在 Container 场景中的应用 N ...

  6. PageOffice6 实现 word 全文检索

    在文档服务器中存储有成千上万个文档的情况下,用户想要找到并打开包含特定关键字的文档,无疑是一项艰巨的任务.如何高效地管理和检索大量的Word文档呢? 在现有的技术解决方案中,许多方法都依赖于服务器端的 ...

  7. Pageoffice6 实现后台批量生成PDF文档

    在实际项目开发中经常会遇到批量后台动态生成PDF文档的需求,目前网上有一些针对此需求的方案,如果您想要了解这些方案的对比,请查看后台生成单个Word文档中的"方案对比". 如果一次 ...

  8. .NET 中的表达式树

    .NET 中的表达式树(Expression Trees) 表达式树是什么? 表达式树(Expression Trees)是.NET框架中的一个强大功能,它将代码表示为一个由表达式节点组成的树形结构. ...

  9. u8二次开发再遇问题再总结

    在调用api生成采购入库单时,报错:该操作会造成订单到货和入库同时存在,请重新检查操作!普通采购必有订单,存货[0501-0304-0075]不能手工录入 这是因为:采购入库单单据必须要录入上游单据, ...

  10. Html简要笔记

    html在线文档: https://www.w3school.com.cn 怎么创建文件我已经会了 1,html快速入门 <!--文档类型说明 注释 --> <!DOCTYPE ht ...