网易首页 > 网易号 > 正文 申请入驻

谷歌用1个数据格式卡住全球ARM芯片,程序员花了10年才想通

0
分享至


2026年Google Summer of Code(谷歌编程之夏)开放申请当天,一个冷门项目"DT Bindings"的申请者突然暴增。这个项目不产App、不做前端,只干一件事:把描述硬件的文本文件从人类能读,改成机器能读。

听起来像档案数字化?错了。这关系到每年出货的数十亿颗ARM、RISC-V芯片能不能正常启动。申请者里有人为了修自己笔记本的低功耗bug,一路追查到这,才发现自己用了十年的电脑,启动时居然在"盲猜"硬件配置。

硬件世界的身份证系统

CPU启动时需要知道一件事:主板上插了什么。这个需求在PC时代被Intel和微软用ACPI表(高级配置与电源接口)解决了——你的Windows笔记本能自动识别电池、风扇、USB口,靠的就是这套x86世界的"标准简历格式"。

但嵌入式世界没这么幸运。ARM32时代,工程师得直接改操作系统或引导程序来硬编码硬件信息。每出一款新开发板,Linux内核就要打一批补丁。Krste Asanović在RISC-V早期文档里吐槽过:ARM生态的碎片化,一半要怪这种"手工作坊"式的硬件描述。

Device Tree(设备树)就是这时候被请进场的。它是一套树形数据结构,用.dts文件写人类可读的硬件描述,经dtc(设备树编译器)转成二进制的.dtb,塞给引导程序或直接喂给内核。ARM、RISC-V、MIPS这些嵌入式架构现在全靠它启动。

问题是:怎么确保这份"简历"没造假?

从TXT到YAML:一场迟到的标准化

传统做法是写TXT文档。开发者手写"本设备支持I2C,地址0x11",放在内核源码的Documentation目录里。这套流程的问题很直白:机器读不懂,验证靠人工,文档还经常缺页。

DT Bindings(设备树绑定)就是给这些描述定规矩的。它规定温度传感器必须填哪些字段、地址格式是几位、可选参数有哪些。2020年后,社区强制要求新绑定用YAML重写——不是图新鲜,是老办法实在撑不住了。

YAML绑定的核心价值在于可验证。内核构建时,dtc会拿实际的设备树去套YAML里的规则,不匹配直接报错。Krzysztof Kozlowski——Linux内核设备树维护者之一——过去三年提交了超过400个转换补丁,把散落的TXT文档逐个"翻译"成机器可读的Schema。

他的工作流很能说明问题:找到一个遗留的TXT绑定,分析它隐含的规则,写成YAML Schema,再补全之前没写清楚的约束条件。一个典型的补丁可能要改五六个文件,但能让后续所有使用该硬件的开发者少踩十几个坑。

I2C和SPI的地址谜题

设备树里最让新手困惑的字段可能是reg。同样叫"寄存器",它在不同总线上完全是两回事。

I2C是地址总线。每个芯片出厂时硬编码了7位或10位地址,reg填的就是这个值。比如reg=<0x11>,CPU发数据时会在总线上广播这个地址,对应芯片抬头认领。一条I2C总线可以挂上百个设备,靠地址区分。

SPI没有地址。它用片选线(Chip Select)点对点连接,有几根线就能挂几个设备。reg在这里表示连到了第几根线:reg=<0>就是CS0,reg=<1>就是CS1。CPU想跟谁通信,就拉低对应的片选线,其他设备自动无视总线上的数据。

内存映射设备更复杂。显示控制器可能在地址A放配置寄存器,地址B放帧缓冲区——同一块芯片,两个功能,reg就要写两个条目。YAML绑定里的maxItems字段就是管这个的:它告诉验证器,这个设备的reg数组最多允许多长。

一个补丁的解剖

Google Summer of Code 2026的参考补丁,正是Krzysztof Kozlowski提交的一个典型转换。原TXT文档描述某温度传感器,提到"仅支持I2C",但没写地址格式、没限定取值范围、没说明可选属性。

转成YAML后,文件结构变成:顶部metadata(维护者、许可证、版本),中间properties列表(每个字段的名称、类型、约束),底部required数组(哪些字段必须填)。验证器现在能自动检查:地址是不是0x00到0x7F之间的整数、温度单位有没有写错、可选的警报阈值有没有越界。

这种转换的工程量被严重低估。Linux内核目前有约2000个设备树绑定,2024年底YAML化比例刚过60%。剩下的很多是遗留硬件,文档不全、硬件已停产、维护者失联——每推进一个都要考古。

申请者里有人算过:按当前速度,全部转换要到2028年。但新硬件还在源源不断进来,RISC-V生态爆发又让设备树的使用量翻倍。这是一场没有终点的迁徙。

为什么Google要投钱做这件事

GSoC项目的选择标准很现实:必须是上游社区真正需要、但人力不足的工作。DT Bindings符合两条:技术债务沉重,且直接影响Android生态——Google的Pixel手机、Chromebook、Nest设备,底层全是设备树。

更深层的动机可能是RISC-V。这个开源指令集架构没有x86的ACPI遗产,设备树是它唯一靠谱的启动方案。Google在RISC-V国际基金会里投了不少资源,把设备树工具链打磨顺滑,等于给未来的RISC-V Android设备铺路基。

申请者背景也很有意思:既有嵌入式工程师想系统学习内核机制,也有学生单纯被"用代码描述物理世界"这个概念吸引。一位2024年的参与者后来去了SiFive,参与的工作正是RISC-V主板的设备树标准化。

从Bug追踪到社区贡献

文章开头提到的笔记本低功耗bug,追查路径很典型:用户发现待机耗电异常→怀疑电源管理→查ACPI表→发现ARM64平台ACPI支持不完善→转向设备树→发现绑定文档缺失→最终定位到某个温度传感器的描述错误。

这个链条的每一步都需要人可读、机器可验证的硬件描述。TXT时代,最后一步可能要翻邮件列表找三年前的讨论;YAML时代,构建系统直接告诉你哪行违反了哪条规则。

Krzysztof Kozlowski在2025年的一次内核峰会演讲里说:「我们不是在写文档,是在写合同。硬件厂商和操作系统之间的合同。」违约的成本是内核崩溃、设备变砖、安全漏洞——而YAML验证器就是那个自动执行的法务部。

那位为GSoC申请自学设备树的开发者,后来真的提交了一个补丁:把某个音频编解码器的TXT绑定转成YAML。补丁被合并时,他在博客写:「花了两周理解为什么reg在SPI上是线号而不是地址,然后改文件只花了两小时。」

这种学习曲线正是社区想要的效果。DT Bindings项目的目的从来不是批量生产补丁,而是培养能长期维护这套基础设施的人。毕竟,新芯片还在以每年数千款的速度诞生,每一款都需要一份诚实的"简历"。

你的下一台设备——无论是手机、路由器还是智能手表——启动时都会加载一个.dtb文件。里面有多少字段通过了YAML验证,决定了它会不会在某个深夜突然睡死过去。而验证规则本身,正由一群申请者边学边写,一行一行地补全。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
小香玉儿子是他,39岁因长瘤子选择生孩子,今21岁长得像富商爸爸

小香玉儿子是他,39岁因长瘤子选择生孩子,今21岁长得像富商爸爸

白面书誏
2026-03-27 15:11:56
张雪峰追悼会最新情况,好友守夜、女儿泪目,担心的事还是发生了

张雪峰追悼会最新情况,好友守夜、女儿泪目,担心的事还是发生了

阿绐聊社会
2026-03-28 12:30:51
大陆放话:不管台湾当局点不点头,厦金大桥照建不误,直达金门

大陆放话:不管台湾当局点不点头,厦金大桥照建不误,直达金门

史智文道
2026-03-28 11:42:35
包养10位情妇,睡觉靠翻牌,生下11个私生子,75岁仍在拼命生娃!

包养10位情妇,睡觉靠翻牌,生下11个私生子,75岁仍在拼命生娃!

云舟史策
2026-03-15 17:04:48
炸! 20岁华人开车在美军基地放炸弹后逃回中国! 姐姐毁灭证据被抓

炸! 20岁华人开车在美军基地放炸弹后逃回中国! 姐姐毁灭证据被抓

北国向锡安
2026-03-27 09:00:38
1986年韩先楚拒绝葬在八宝山,他对陈云说:那里有我不愿见到的人

1986年韩先楚拒绝葬在八宝山,他对陈云说:那里有我不愿见到的人

百年历史老号
2026-03-25 18:27:41
“电子垃圾三件套”:收割中国男人的“智商税”?别再欺负男性了

“电子垃圾三件套”:收割中国男人的“智商税”?别再欺负男性了

有范又有料
2026-03-27 19:04:15
比赖清德更狂的人出现了,如果她当台湾地区领导人,我军该怎么办

比赖清德更狂的人出现了,如果她当台湾地区领导人,我军该怎么办

听风喃
2026-03-27 17:40:05
遭外机雷达照射挑衅 歼-10C飞行员“夺枪反打”

遭外机雷达照射挑衅 歼-10C飞行员“夺枪反打”

环球网资讯
2026-03-28 11:15:53
张雪峰追悼会定于本周六,丧事从简不搞排场,11岁女儿成全家心病

张雪峰追悼会定于本周六,丧事从简不搞排场,11岁女儿成全家心病

未曾青梅
2026-03-26 22:48:49
美股全线大跌,道指暴跌近800点!科技巨头普跌,微软较高点跌34%,国际油价大涨7%

美股全线大跌,道指暴跌近800点!科技巨头普跌,微软较高点跌34%,国际油价大涨7%

金融界
2026-03-28 08:23:16
凌晨,暴跌800点!伊朗警告:尽快撤离!美股大跳水,油价飙升!

凌晨,暴跌800点!伊朗警告:尽快撤离!美股大跳水,油价飙升!

证券时报
2026-03-28 09:01:05
原来他12年前就已离世!患病3年女儿不愿照看,死后为争遗产现身

原来他12年前就已离世!患病3年女儿不愿照看,死后为争遗产现身

白面书誏
2026-03-26 13:38:18
平民英雄!!知名教育博主张雪峰老师去世引万人自发现场排队悼念

平民英雄!!知名教育博主张雪峰老师去世引万人自发现场排队悼念

南方健哥
2026-03-28 08:42:38
富人圈子里选儿媳铁律:美貌和文凭都是浮云,这3个品质缺一不可

富人圈子里选儿媳铁律:美貌和文凭都是浮云,这3个品质缺一不可

千秋文化
2026-02-15 20:12:48
斯卡洛尼:比赛踢成这样不是因为怕受伤;梅西的替补在计划中

斯卡洛尼:比赛踢成这样不是因为怕受伤;梅西的替补在计划中

懂球帝
2026-03-28 11:58:14
《身体疼痛对照表》很难得!(建议收藏)

《身体疼痛对照表》很难得!(建议收藏)

诗词天地
2026-02-12 01:37:57
调整!央视直播U23国足VS朝鲜有变,安东尼奥或做大调整

调整!央视直播U23国足VS朝鲜有变,安东尼奥或做大调整

林子说事
2026-03-28 11:13:23
全红婵19岁生日炸屏!

全红婵19岁生日炸屏!

太阳来
2026-03-28 09:45:56
为什么40岁的女人偷情,不愿去宾馆,却喜欢在车里呢?

为什么40岁的女人偷情,不愿去宾馆,却喜欢在车里呢?

思絮
2026-03-28 15:49:24
2026-03-28 16:15:00
爬虫饲养员
爬虫饲养员
业余养了只叫“龙虾”的AI爬虫,主业是给互联网打工。
316文章数 1关注度
往期回顾 全部

科技要闻

遭中国学界"拉黑"后,这家AI顶会低头道歉

头条要闻

特朗普:北约没支持美打击伊朗 美国以后也不会帮北约

头条要闻

特朗普:北约没支持美打击伊朗 美国以后也不会帮北约

体育要闻

“我是全家最差劲的运动员”

娱乐要闻

王一博改名上热搜!个人时代正式开启!

财经要闻

我在小吃培训机构学习“科技与狠活”

汽车要闻

置换补贴价4.28万起 第五代宏光MINIEV正式上市

态度原创

健康
手机
时尚
房产
公开课

干细胞抗衰4大误区,90%的人都中招

手机要闻

OPPO Find N6、荣耀Magic V6,同样是6首销比比看

龙虾来了,厌蠢症炸了

房产要闻

6.8万方!天河员村再征地,金融城西区开发全面提速

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版