Microchip加入AGL:嵌入式Linux与车载系统生态的软硬协同新局
2026/8/27 7:21:28 网站建设 项目流程

1. 这条新闻背后:Microchip 到底想干什么

1.1 从单片机王者到嵌入式 Linux 生态玩家

Microchip 这个名字,做单片机的人都不陌生。PIC 系列、AVR 系列、SAM 系列,加上大量的模拟、接口、存储芯片,几乎每个硬件工程师的抽屉里都能翻出几片。过去大家印象中的 Microchip,更多是 MCU 和模拟器件的供应商,跟 Linux Foundation、开源汽车平台这种软件味很重的组织扯上关系,直觉上不太搭。

但把时间轴拉长看,这个动作其实不突然。早些年 Microchip 收购了 Atmel,拿下了 SAM 系列 ARM 处理器。后来又推出 SAMA5D2、SAM9X60、SAMA7G54 这些面向人机界面和工业控制的 MPU。这些芯片跑 Linux 已经是标配场景了,只是多年来的市场声量主要集中在工业 HMI、医疗设备、家电面板这些领域。现在把阵营扩展到 Linux Foundation 和 Automotive Grade Linux,等于公开宣布:汽车电子,尤其是车载 Linux 这条赛道,我要正式下场抢位置了。

这条新闻里的“加入”不是简单交个会员费挂个名。Linux Foundation 的会员分不同等级,AGL 项目也有明确的成员体系。Microchip 要做的是深度参与 AGL 的日常运作,参与参考平台的开发、软件包的适配、硬件参考设计方面的合作。对 AGL 项目来说,多一个在底层硬件上有大量车规芯片的厂商加入,也会让平台的硬件兼容面更扎实。

1.2 补的其实是软件工程能力

为什么一个硬件厂商要混软件开源圈?这是我看到消息后第一反应。想了很久,核心就四个字:生态位迁移。芯片再好,客户做系统还是看整体方案。MCU 时代大家拼的是外设集成度、低功耗、编译器工具链。到了嵌入式 Linux 时代,拼的是 BSP 稳定性、Yocto 层维护、显示中间件、OTA、安全启动、远程诊断。这套能力和传统单片机开发生态完全是两套玩法。

Microchip 过去在 Linux 上不是没有投入,他们对 SAMA5 和 SAM9 都有官方 BSP,也维护自己的 Yocto 层。但 BSP 只是“把 Linux 跑起来”,AGL 要的是“把 Linux 变成一辆车”。后者涉及到一套完整的车载应用框架,从显示合成器到应用生命周期管理、从车辆总线抽象到网络服务,几乎是一个独立操作系统级别的工程量。单独一个硬件厂商从零去搞这套东西,既不经济也缺生态,加入 AGL 是性价比最高的路径。

所以这个合作,本质上是 Microchip 用会员身份买了一个“车载软件生态的通行证”。对开发者来说,后续可能看到的是:AGL 的软件栈对 Microchip 平台的兼容性测试、官方评估板的 AGL 版本 BSP、甚至 AGL 架构师直接参与 Microchip 某个芯片的 Linux 支持。这个价值的落地周期,短则一两个季度,长则一年以上,方向是明确的。

2. AGL 到底是什么?它和普通 Linux 有多大区别

2.1 不是发行版,而是一套“车规场景的完整解决方案”

很多刚接触 AGL 的人会问,它和 Ubuntu、Debian 有什么区别?

严格意义上,AGL 不是 CentOS 那种通用发行版,也不是一个严格打包的 Linux。它是一个由 Linux Foundation 主持的协作项目,项目里维护了一套参考平台,叫 AGL Distribution。这套平台基于 Yocto Project 构建,按车规场景把需要的软件包组合起来,目标是让成员公司能直接拿它做量产系统的起点。

打个比方,通用发行版类似开放菜市场,什么都卖,你自己挑选组合;AGL 更像一个中央厨房的预制菜包,按车辆座舱场景的常见需求,把调料、食材、菜谱都配好了,厨房(OEM/Tier1)再根据口味微调。这个对照不一定百分之百精确,但能说明 AGL 的定位:它不是给你无限自由的操作系统,而是给你一套面向车载需求的工程化框架。

为什么要这么做?因为车载场景和服务器、桌面完全不同。车的开发周期长、功能安全要求高、网络环境复杂、需要远程升级,还有座舱人机交互这一大摊事。如果每个 OEM 都从芯片 BSP 开始搭建自己的系统,光底层公共部分的开发和维护成本就非常惊人。AGL 存在的意义就是把 OEM 都需要的公共底座收拢成一套开源工程,让大家把精力放在差异化部分。

2.2 从 Yocto 到 Wayland 的层次结构

AGL 的软件栈,从下往上大致可以拆成这么几块:

层次核心内容典型组件
基础系统内核、BSP、引导、系统服务Linux Kernel、U-Boot、systemd
构建系统镜像生成、包管理、许可管理Yocto / OpenEmbedded
中间件车载总线、网络、多媒体、诊断SocketCAN、NetworkManager、PipeWire、E2E 保护
应用框架生命周期管理、跨进程通信、安全策略AGL Application Framework、D-Bus、SMACK
显示与 HMI合成器、窗口管理、应用渲染Wayland/Weston、Flutter、Layer Management
应用桌面、空调、导航、设置、媒体Home Screen、Dashboard、HVAC、Media Player

底子是标准 Linux 内核和 Yocto 构建体系,这一点对嵌入式工程师来说门槛并不高。往上越走,车载特性越重。比如最典型的软件定义座舱,AGL 默认使用 Wayland 而不是 X11,用 Weston 或者后来演进出的合成器做多窗口管理,应用侧从早期的 Qt 逐步转向 Flutter 这一套跨平台 UI 方案。

再往上还有 AGL 自己的一套应用框架。它定义了一个应用的启动、停止、前后台切换、权限控制的标准模型,应用和系统服务之间的通信走 D-Bus,权限用 SMACK 这类 Linux Security Module 来控制。这套东西如果自己从零搭,没有半年以上工程投入做不出来,这也是 AGL 的核心价值之一。

2.3 车规 Linux 的几个独特硬件需求

普通嵌入式 Linux 里不太关注的几个点,在 AGL 里却是主菜。

首先是车辆总线。车内大量控制单元还在走 CAN 或 CAN FD,AGL 通过 SocketCAN 把 CAN 抽象成网络接口,上层应用直接读 socket 收数据,底层驱动对接 CAN 控制器。Microchip 在 CAN 收发器和 CAN 控制器上有大量车规级产品,这部分是他们的传统优势。

其次是显示和安全。仪表盘要求启动时间短,倒车影像要求 RVC 场景极低延迟,HMI 应用一旦崩溃不能黑屏死机。这就需要硬件层面的显示控制器和 GPU、Secure Boot、代码签名、安全存储这些来配合。AGL 的参考平台里对安全启动、可信执行环境、应用签名都有可选实现。

还有电源管理。汽车电子有严格的休眠唤醒机制和电池保护要求——静态电流要压到微安级,网络唤醒要有硬线信号。这些经常要芯片的底层驱动配合。Microchip 在低功耗管理上积累很深,SAMA7G54 这类芯片本来就是为低功耗 HMI 场景设计的,和 AGL 的需求切合度很高。

这句话我在很多场合说过:AGL 表面上是软件项目,实际上是个软硬协同的工程。没有芯片厂商深度参与,光靠软件团队玩不转。

3. Microchip 的汽车产品棋局,这次落子落到了软件层

3.1 与 SAMA 系列和车规处理器的对应关系

讲完了 AGL 是什么,再看 Microchip 在汽车生态里有哪些家底可以拿来跟 AGL 配。

Microchip 目前面向 Linux 场景的主力是 SAMA5D2、SAM9X60、SAMA7G54 这几个系列。SAMA5D2 是 Cortex-A5 内核,跑 Linux 完全没问题,有大量工业 HMI 案例。SAM9X60 是 ARM926EJ-S 内核,性能弱一些,但成本低、启动快、接口全,适合精简 Linux 场景。SAMA7G54 是 Cortex-A7 单核,频率 1GHz 左右,带 MIPI DSI/LVDS 显示接口、eMMC、GbE、CAN FD,功耗控制在 400mW 级别,很适合做入门级车载 IVI、电子后视镜、HUD。

以前这些芯片主要是“能跑 Linux”,但没有一个组织去帮它们适配完整的车载应用框架。Microchip 加入 AGL 之后,理论上会出现这样的场景:开发者拿到一块 SAMA7G54 评估板,直接下拉 AGL 源码,按对应 machine 配置构建一个 AGL 镜像,烧进去就有 Wayland 显示、App Framework、蓝牙、Wi-Fi、CAN 这些车载功能。这套体验如果能打通,对评估板和方案的推广是极大的加分。

当然,AGL 目前参考平台默认支持的高性能 SoC 大多来自瑞萨、高通、英伟达这些,Microchip 的芯片定位偏中低端。但汽车市场恰恰是分层化的,从中低端 IVI、仪表、网关、面板控制到中高端座舱,需求跨度非常大。AGL 若想真正做到“Automotive Grade”,不能只覆盖高端旗舰座舱场景,入门级和存量车型的智能化升级同样需要低成本 Linux 方案。这个市场空隙,就是 Microchip 的机会。

3.2 从芯片到板卡:Microchip 生态里的协同阵容

单靠一颗 MPU 撑不起“汽车级 Linux”这个承诺,要把它放在 Microchip 的整个产品矩阵里看,才能明白组合拳的威力。

车里的 Linux 主控通常需要一堆配套芯片:电源管理芯片保证多个电压轨的上电时序;CAN/CAN FD 收发器连接车辆总线;以太网 PHY 和交换机芯片做高速骨干网络;安全芯片做安全启动和密钥存储;看门狗和复位管理保证系统异常时能自恢复。

这些品类 Microchip 都有,而且不少是车规级 AEC-Q100 认证的。比如他们家的 CAN 收发器就覆盖了各种速率和封装,汽车以太网交换机 KSZ9 系列在域控制器、摄像头回传链路上也在大量使用。之前这些资源散落在各个产品线手册里,现在通过 AGL 会员身份,相当于在软件层面打了个结:客户做一只车载 Linux 计算盒子,从主控到总线接口再到安全方案,可以一站式配齐,而且软件在开源生态里都有据可查、可持续更新。

我特别看好的是“安全组件”这个板块。AGL 里有大量代码签名、密钥管理、安全启动的需求,而 Microchip 既有可信平台模块,也有自己的安全认证芯片。当 AGL 的参考安全框架和 Microchip 的硬件安全组件结合起来时,OEM 想拿到 ISO 21434 相关认证会顺利不少。

3.3 BSP 与 Yocto:从“能用”升级到“评测通过”

现在国际大厂的芯片厂商做 Linux 生态,基本都会在 Yocto 里提供自己芯片的 BSP 层。Microchip 很早就有meta-atmel这个 Yocto 层,支持 SAMA5、SAM9、SAMA7 平台的构建。过去这个层更多是面向工业场景,维护节奏跟着自家产品线走。

加入 AGL 之后,最有意义的变化是 BSP 的“测试标准”变了。AGL 有持续集成体系,每个提交都跑编译和基础功能测试,各种软件包要能在参考硬件上跑起来才算数。Microchip 的 BSP 一旦进入 AGL 的 CI 测试范围,质量和兼容性会被动拉高不少——这不是哪个团队拍胸脯保证的,而是开源协作机制倒逼出来的。

对一线开发者来说,这意味着什么?以后基于 Microchip 芯片做车载 Linux 项目,可以不再是“拿个 BSP 把内核烧进去,应用层自己慢慢搭”,而是直接站在 AGL 平台的肩膀上,底层的显示、应用框架、权限管理、升级机制都已经是现成可用的。省下来的是几十人月的工程量,换回来的是更好的可维护性和供应链确定性。

4. 实操视角:在 Microchip 评估板上跑出接近 AGL 的环境

4.1 硬件准备与获取镜像

这部分写点直接能落地的。

如果你打算在真实硬件上体验这套组合,可以考虑这么几步。首先准备一个平台,SAMA7G54-EK 或者 SAMA5D27-SOM1 的评估板都可以,更推荐前者,性能和显示接口更接近车载场景。

先把编译环境搭起来。AGL 官方文档里推荐使用repo工具拉取 AGL 的 manifest,然后按 Yocto 的标准流程做sourcebitbake。如果只想要一个最接近 AGL 的验证环境而不需要完整构建,也可以先下载官方发布的 AGL 参考镜像,再用 Microchip 的 BSP 覆盖对应的 machine 层。两种路线各有取舍,前者时间长但控制力强,后者上手快但兼容性需要自己调。

无论哪种方式,我都建议把磁盘空间准备充足:Yocto 构建整个 AGL 镜像,过程文件加 SDK 轻松超过 100GB。编译时间也看机器,十六核以上的机器全量构建 AGL 可能要几个小时。所以如果你的项目周期紧,建议先精简功能集,只构建带基本显示和应用框架的最小镜像。

提示:构建主机最好用 Ubuntu 22.04 LTS 这类长期支持版本,Python、GCC、make 这些基础工具链版本对齐 Yocto 官方文档要求,能省掉大量莫名其妙的兼容性报错。

4.2 Yocto 构建的最小闭环

这里给一个最小闭环的模板思路,不展开全部代码,只说明关键点。

repo init拉取 AGL manifest 之后,在conf/local.conf里指定:

  • MACHINE 对应 Microchip 的评估板型号;
  • DISTRO 选择 AGL 提供的agl版本;
  • IMAGE_FS_TYPE 选择会生成 SD 卡镜像的文件系统格式;
  • 把需要的功能加到 AGL_FEATURES 里,比如显示、蓝牙、Wi-Fi、CAN 等。

然后执行 bitbake 构建目标镜像,构建完成后把镜像写入 SD 卡,插到评估板上启动。

这个过程中最容易出问题的其实是 MACHINE 和各层版本的匹配。AGL 的 manifest 会锁定一组 Yocto 层的 commit,Microchip 的 BSP 层如果没跟上 AGL 的更新节奏,就可能出现 bitbake 解析失败。解决思路一般是锁定一个双方都验证过的组合版本,比如参考 AGL 某个季度发布版本和 Microchip BSP 对应的 release 标签。

4.3 显示和 HMI 怎么跑通

跑通 AGL 之后,开机你看到的界面就是 Home Screen,一个基于 Flutter 的桌面。在触控屏上可以滑动、点击、切换应用。底层是 Wayland 合成器管着一堆 surface。

这里有个常见误区:很多人以为显示能不能出画面,是“芯片支不支持”的问题。实际上 SAMA7G54 自带 MIPI DSI 和 LVDS 接口,硬件连接不成问题,真正的关键在合成器和 GPU 驱动的配合。如果用的是一块简单 RGB 屏或者 DSI 屏,必须确认设备树里的时序参数和屏幕规格书一致,否则大概率出现白屏或者花屏。

另一个坑是 HMI 帧率。入门级 MPU 性能有限,Flutter 应用如果开太多复杂动画,帧率会明显下降。工程上建议的做法是:能用静态素材就不用动态渲染,能合并图层就不要叠加太多透明窗口。还有一点,Wayland 协议对窗口管理的限制比 X11 严格许多,应用没有按要求走 Wayland 协议时会出现窗口无法正常显示的问题,调试时要看合成器的日志而不是盲目调驱动。

4.4 接入 CAN 和车辆信号

最后补充一下车辆信号接入。AGL 上层用 SocketCAN,所以应用代码只需要打开一个网络 socket,去读 CAN 报文即可。Microchip 的 CAN-FD 控制器在 Linux 内核里一般已经被 mainline 驱动支持,设备树里把 CAN 引脚复用和收发器配置好就能拿到can0接口。

如果你想做个简单的信号可视化,可以在用户态写一个很短的 C 或 Python 程序,用struct解析 CAN 帧的 ID 和数据区,再转发给上层 HMI 应用。把车辆速度、转速这些信号从 CAN 总线上读出来,显示在仪表盘或 HUD 应用里,那个体验才是“这台车真的接入进去了”,而不只是一块跑 Linux 的开发板。

5. 常见问题与排查经验实录

5.1 bitbake 构建失败和依赖问题

Yocto 构建失败是每个嵌入式 Linux 开发者都绕不开的体验,AGL 也不例外。最常见的是网络下载源不稳定导致源码获取失败,其次是不同 layer 之间的依赖关系被破坏。

我自己的排查习惯是:先看报错发生在do_fetch阶段还是do_compile阶段。前者多为网络或 SRC_URI 问题,可以换个可靠的代码仓库镜像源重试;后者才是真实的代码编译问题,需要看具体的报错文件和行号。

还有一招很实用:构建时加-k参数,让 bitbake 跳过失败的包继续构建,最后统一看有哪些包失败,逐个攻破。不要第一次失败就整盘重来,那样浪费的时间是按小时计的。构建目录不要放在 NFS 或 Windows 共享盘上,文件的 inode 和权限问题会让你怀疑人生。

5.2 启动后黑屏或白屏

开机串口有登录提示,但屏幕没画面。这个问题的排查顺序是:先用dmesg看 DRM/KMS 驱动有没有加载,再检查 Wayland 合成器进程有没有起来,最后看设备树的时序配置。

很多时候问题不在驱动,而在设备树。屏幕的 pixel clock、hback porch、vback porch 这些参数必须和屏的 datasheet 完全对上。这些参数没有捷径,只能一个字段一个字段核对。我见过有人调了两天最后发现只是 DSI 的 lane 数配错了。

另外注意电源时序。某些屏需要先供背光再出数据,或者初始化序列有严格顺序。这些在裸机驱动里好处理,到 Linux 里就要写在 panel 驱动的 power 序列里。如果屏的初始化是 I2C 写入一串寄存器,确认 I2C 总线地址是否正确,这也是很容易踩的坑。

5.3 CAN 接口不工作

ip link set can0 up报错,或者candump什么数据都没有。先看两件事:设备树里 CAN 外设的时钟有没有配;收发器的 STBY 引脚电平对不对。

Microchip 的 CAN-FD 控制器有内部时钟选择,设备树里选错的时钟源会导致波特率设置不生效。收发器方面,很多评估板的 CAN 收发器需要 GPIO 拉高才能正常工作,这个往往容易忽略。收发器不使能时,总线接口看起来就是死的,读写无响应。

还有一个经验:CAN 总线通信必须两端都有正确的终端电阻。开发时单独接一块板子挂在总线上,没有终端电阻,偶尔能收到几帧偶尔收不到,非常消耗耐心。先上终端电阻(一般是 60 欧姆左右),再谈别的。

5.4 安全启动和认证的边界

AGL 能帮你在软件层面实现 Secure Boot 的框架,但真正的信任根在硬件。Microchip 的芯片上一般都有 OTP 和密钥存储,项目量产前就要规划好密钥生成、烧录、管理的流程。

这里必须说句实在话:AGL 开源平台本身不自动等于过车规认证。ISO 26262 的功能安全认证、ISO 21434 的网络安全认证,还需要整个系统包括硬件、软件工具链、开发流程一起走认证。AGL 能提供的是一个更透明、可审查的基础,减少认证过程中“闭源代码没法审查”的无谓损耗,但不能替代认证本身。做项目规划时要把认证的时间和成本算进去,别天真地以为“用了开源平台就不用认证”。

6. 后续扩展与我的个人看法

6.1 AGL 在中低端车载方案里的机会

从整个行业看,AGL 一直在往“软件定义汽车的操作系统底座”方向走,但它的落地没有大家想象中那么快。高端座舱市场被安卓和私有方案占得比较死,AGL 最能发挥价值的地方反而是中低端 IVI、商用车、两轮车、工程机械这类对成本敏感的智能座舱场景。这些场景也需要 Linux,也需要车载级框架,但没人愿意按高端座舱的成本来开发。

Microchip 加入进来,正好踩在这个时间点上。当一块车规 MPU 能跑起完整的 AGL 软件栈时,原来只有高端车才能有的功能,就有机会下放到更走量的车型甚至后装市场。这不是 Microchip 一家能做到的,但它是撬动这个循环的关键一环。

6.2 开发者现在可以做什么

如果你对这个方向感兴趣,我建议不要等“官方支持完成”再动手。把 Microchip 的一块评估板买回来,先用官方 BSP 把 Yocto 构建跑通,再对照 AGL 的文档尝试加入应用框架,这个过程本身就是一次完整的学习曲线。

踩过几次开发板的坑之后,你会发现车载 Linux 和通用 Linux 最大的差别不在技术,而在工程方法:一套严谨的 BSP、一个稳定的构建系统、一个清晰的应用框架权限模型,这些东西的价值在项目规模放大之后才会真正体现出来。提前在 Microchip 平台上把这些经验积累下来,后面无论哪家芯片量产,你都已经站在了更高的起跑点上。

6.3 最后说点个人感想

我在嵌入式 Linux 圈子里待了这些年,见过太多硬件厂商喊着“拥抱开源”,结果只是把代码丢到 GitHub 就不管了。Microchip 这次加入 Linux Foundation 和 AGL,姿态上至少是认真的:有会员身份、有项目参与、有硬件产品线可对照。至于最终成效,得看未来一两年里 AGL 支持和 BSP 维护的质量。

我个人更愿意保持一个谨慎乐观的态度。开源车机平台这条路,业界走了十多年,方向没错,难在坚持。多一个重量级硬件厂商加入,也许不会立刻改变什么,但至少让这个生态里跑的车轮,又实了一点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询