Zephyr V4.5.0发布

Zephyr 从 2026 年起由季度发布改为半年发布,v4.5.0 是第二个半年版本,也就是今年的发布已经全部完成,原定于 2026 年 10 月 26 日发布,实际晚了 2 天,到 10 月 28 日才发布。支持截止日期为 2027 年 10 月 28 日。

这个版本有 1297 名贡献者,新增 178 个主板、29 个扩展板和 71 个实例。官方博客提到驱动和硬件支持的提交占总数一半以上,所以板卡数字的膨胀并不意外。

重大变化 链接到标题

  • 新增两个处理器架构:Infineon TriCore(AURIX 汽车微控制器)和 Qualcomm Hexagon(DSP),两者都提供了 QEMU 目标
  • 新增实验性多媒体管线 mpipe:把 GStreamer 的 source / transform / sink 模型搬进 MCU
  • 网络栈提速与新协议
    • IP 栈优化,zperf 回环基准测试中 TCP 吞吐最高提升 21%,UDP 提升 7~12%
    • 新增 QUIC 与 HTTP/3、RTP(RFC 3550)、SSH 服务端与客户端、MCP(Model Context Protocol)服务器
    • 新增网关能力:IPv4 转发与 NAT、IPv6 路由器角色、DHCPv6 前缀委派
  • 安全与合规
    • SPDX 3.0 SBOM:不只记录有什么,还记录怎么被构建出来的
    • 加固工具重做:内置 CWE 引用,配置回退时可以让 CI 构建失败
    • 部分 Silicon Labs、NXP、STM32 器件支持硬件加速的 PSA Crypto
    • 新增 FIDO2 认证器子系统,设备可以当 passkey 用
  • 调试与诊断
    • ZASSERT():按模块、按文件设置断言级别
    • 堆内存错误检测:native_sim 上用 ASAN,真实目标上用 KASAN
    • Tracing 支持 Perfetto 导出和纯 Python 的终端查看器
    • 崩溃设备可以通过 UDP 把 coredump 发到网络另一头
  • 内核提速 3~15%(STM32F412 上跑 Thread-Metric),信号量 give/take 快 15% 以上,消息队列往返快近 14%
  • 新增 6 个驱动类:Buzzer、Clock Monitor、DALI、LIN、MUX、Pulse IO
  • 仿真与测试:native_sim 增加 Wi-Fi、音频、视频、LED 和宿主目录挂载;QEMU 增加 VirtIO 驱动;Twister 支持多设备测试和多工具链构建;网络栈增加 TTCN-3 一致性测试套件
  • 新增 178 个主板、29 个扩展板、71 个实例,修复 2 个 CVE

两个新架构:TriCore 与 Hexagon 链接到标题

官方博客里有一句话:“It’s not every day that a new processor architecture gets added to Zephyr, so getting two in the same release is pretty exciting!”一次进两个,确实是第一次。

  • Infineon TriCore 是 AURIX 系列汽车微控制器的架构。TriCore 进树意味着 Zephyr 不再只跑在 Cortex-M 小核或者协处理器上,而是能直接跑在 ECU 的主核上。博客的说法是“If you build ECUs, Zephyr now runs on the cores you already use.”
  • Qualcomm Hexagon 是高通 SoC 里的 DSP 架构,面向音频、传感器和信号处理负载

两者都给了 QEMU,可以先无硬件验证:

# 板名以 west boards 的输出为准
west build -b qemu_tc3x samples/hello_world
west build -b qemu_hexagon samples/hello_world

需要注意 TriCore 的 QEMU 和 Hexagon 的工具链都还没有随 Zephyr SDK 发布,要按对应板卡的文档先自己配好工具链,再用 west build -b <board> -t run 跑。

加上这两个,Zephyr 覆盖的架构变成 Arm、RISC-V、x86、Xtensa、ARC、OpenRISC、TriCore、Hexagon。有意思的是最近两个 Zephyr 版本进的都是“边缘”架构:4.4 的 OpenRISC 是软核与 FPGA 场景,4.5 的 TriCore 和 Hexagon 是汽车与 DSP,都不是通用 MCU 主战场。说明通用 MCU 的架构覆盖已经做得差不多了,增量在往垂直领域走。

多媒体管线 mpipe(实验性) 链接到标题

这是 4.5 里我个人比较感兴趣的部分。mpipe 把 GStreamer 的模型搬到了 MCU 上:

  • 元素分三类:source、transform、sink,连成管线,缓冲区在管线中流动而不做拷贝
  • pads 与 links、元素之间的 caps 协商、buffer pool、READY / PAUSED / PLAYING 状态机
  • 一路摄像头输入可以分发给多个分支,每个分支独立线程
  • 漏式队列(leaky queue)只保留最新一帧

但是 mpipe 目前还是实验性的,视频和显示还在评审中(PR #108344、PR #108345),也就是说 4.6 才是它真正可用的时候。

网络:提升性能,支持更多协议、可被 AI 调用 链接到标题

网络是这次改动最密集的子系统。

性能:IP 栈本身做了优化,zperf 测试中 TCP 吞吐最高提升 21%,UDP 提升 7~12%(x86 与 Cortex-M3),RISC-V 上是 1~3.5%。另外 TCP 的选择性确认(SACK)已默认启用,丢包恢复更快;zperf 实验性支持了 iperf3,不用再跑 iPerf 2。

协议:

  • QUIC 传输层,HTTP 服务器可以直接提供 HTTP/3 服务。QUIC 自带 TLS 1.3,建连往返次数更少,对丢包网络更友好
  • RTP(RFC 3550)媒体流栈,UDP 上收发音视频
  • SSH 服务端与客户端,带 shell 后端

网关:

  • IPv4 转发与 NAT,含连接跟踪,用 shell 的 net iptable 可以管转发规则
  • IPv6 路由器角色与路由通告
  • DHCPv6 前缀委派

MCP 服务器:Zephyr 能直接和 AI Agent 生态连接。Devicetree 绑定新增了一个 class: 键(比如 class: sensor),MCP 服务器用 DT_FOREACH_CLASS_STATUS_OKAY(sensor, ...) 遍历所有状态为 okay 的传感器,自动为每一个注册一个工具。博客演示一台跑 Zephyr 的飞控板:Agent 被问“Is this board ready to fly?”,调用 sensor_read_<node> 系列工具把所有通道读一遍(加速度计、陀螺仪、磁力计、气压计、温度、供电电压),发现磁力计数据可疑,并且能结合“健康无人机该是什么样”给出判断。

内容摘要 链接到标题

修补漏洞 链接到标题

详细的说明可以在 https://docs.zephyrproject.org/latest/security/vulnerabilities.html 找到。

这次只有 2 个 CVE,比 4.4 的 14 个少了一个数量级:

  • CVE 2026-8718(封禁至 2026-08-08)
  • CVE 2026-9263(封禁至 2026-06-28)

数量少不代表安全投入变少。这版的安全主线是“可审计”——SPDX 3.0 SBOM 和加固工具,比修漏洞影响更长远。

API 变化 链接到标题

删除的 API 和选项

  • 架构
    • ARM:移除 CONFIG_PLATFORM_SPECIFIC_INIT 与 z_arm_platform_init()
    • RISC-V:移除 CONFIG_EXTRA_EXCEPTION_INFO
    • x86:移除 CONFIG_SSE、CONFIG_SSE_FP_MATH
    • Xtensa:移除 CONFIG_XTENSA_BACKTRACE_EXCEPTION_DUMP_HOOK
  • 构建系统
    • 移除 C17 之前的 C 标准支持,CONFIG_STD_C11、CONFIG_STD_C99、CONFIG_STD_C90 全删,只剩 C17
    • 移除 CONFIG_BUILD_NO_GAP_FILL,改由 CONFIG_BUILD_OUTPUT_HEX_GAP_FILL / CONFIG_BUILD_OUTPUT_S19_GAP_FILL 按需开启
    • 移除 cmake/app/boilerplate.cmake、ZephyrUnittest CMake 包、WEST_DIR 变量
    • 移除 CMake 的 flash、debug、debugserver、attach、rtt 目标
  • 内核:移除 CONFIG_SMP_BOOT_DELAY;k_futex 不再是内核对象,K_OBJ_FUTEX 一并移除
  • 蓝牙
    • Controller:移除 CONFIG_BT_CTRL_ADV_ADI_IN_SCAN_RSP
    • Host:移除 CONFIG_BT_RECV_CONTEXT 及其选择的 CONFIG_BT_RECV_WORKQ_SYS / _BT、CONFIG_BT_HCI_RAW_H4 / _ENABLE、CONFIG_BT_AUTO_PHY_UPDATE、_bt_gatt_ccc 与 BT_GATT_CCC_INITIALIZER、CONFIG_BT_CONN_TX_MAX、CONFIG_BT_FIXED_PASSKEY 与 bt_passkey_set()
    • Mesh:移除 CONFIG_BT_MESH_BLOB_IO_FLASH_WITH_ERASE / WITHOUT_ERASE
    • 服务:移除 CONFIG_BT_DIS_MANUF、CONFIG_BT_DIS_MODEL
  • 板卡:删除 4.3 之前弃用的板名别名(arduino_uno_r4_minima、esp32c6_devkitc、xiao_esp32c6、neorv32 等),panb511evb 改名 panb611evb,scobc_module1 改名 scobc_a1
  • CAN:移除 bus-speed / bus-speed-data 属性,改用 bitrate / bitrate-data
  • 以太网:移除 CONFIG_ETH_NUMAKER、CONFIG_ETH_NATIVE_TAP_*、ETHERNET_CONFIG_TYPE_T1S_PARAM
  • 工具:移除 imgtool 的 west sign 支持、log_parser_uart.py、west flash / debug 的 --skip-rebuild 选项

弃用的 API 和选项

  • include/zephyr/sys_clock.h 弃用,改用 include/zephyr/sys/clock.h
  • CONFIG_LEGACY_GENERATED_INCLUDE_PATH 弃用且默认关闭,zephyr/ 前缀为唯一写法
  • CMake 变量 SOC_NAME、SOC_SERIES、SOC_FAMILY、SOC_V2_DIR 分别改用 CONFIG_SOC、CONFIG_SOC_SERIES、CONFIG_SOC_FAMILY、SOC_FULL_DIR
  • CONFIG_SRAM_SIZE、CONFIG_SRAM_BASE_ADDRESS 弃用,改用 Devicetree 的 zephyr,sram chosen 节点
  • 音频后端 API:struct audio_codec_api → audio_codec_driver_api,struct _dmic_ops → dmic_driver_api,都要用 DEVICE_API() 包装
  • CAN:can_set_state_change_callback() 拆成 can_add_state_change_callback() / can_remove_state_change_callback()
  • CPU Load 并入统一的 CONFIG_CPU_LOAD 模块
  • RP2350 的 m33 / hazard3 cpucluster 限定符改用 m33_0 / hazard3_0(影响约 23 组板卡)
  • 其余:蓝牙 CONFIG_BT_CUSTOM 与 HCI setup() 时机、Nordic 时钟与电源宏、RTIO、Ring buffer、USB、Video、West、Work queue、SPI 的 inclusive 术语等

新功能与增强

  • 内核:k_sleep_ticks();IRQ API 命名空间化(k_irq_lock() 等);K_MSGQ_DEFINE_STATIC;K_SYSCALL_OBJ_STATIC
  • Ring buffer:新增 sys_ringq,以及 ring_buf_put_ptr() / get_ptr() / commit() / consume()
  • Devicetree:DT_IRQN_BY_NAME、DT_INST_IRQN_BY_NAME;绑定新增 class: 键,为 MCP 的自动注册提供依据
  • 驱动新增 6 个类:Buzzer、Clock Monitor、DALI、LIN、MUX、Pulse IO;另有 Haptics 与 FIDO2 两套新 API
  • Counter:CONFIG_COUNTER_CAPTURE 输入捕获系列
  • Crypto:CFB / OFB 模式、SHA3 系列哈希
  • LoRa:lora_energy_detect()、lora_rssi()、lora_recv_duty_cycle_async()
  • Zbus:支持运行时注册通道
  • 网络:邻居缓存 API、DHCPv6 服务器端、TCP SACK、SNTP 服务器、gPTP 静态时间接收者
  • 调试:ZASSERT() 四级(off / terse / normal / verbose)

迁移指南(4.4.0 → 4.5.0) 链接到标题

按影响面分成两档,只列应用开发者可能会遇到的。

必改

  • CMake 最低版本 3.28
  • C17 是唯一选择,CONFIG_STD_C11 / C99 / C90 已删除
  • DEVICE_API 宏强制使用。所有上游驱动类的 API 实例(包括树外驱动)都必须用 DEVICE_API(class, ...) 声明
  • Ring buffer 的 claim / finish 换成 ring_buf_put_ptr() / ring_buf_get_ptr() 加 commit() / consume()
  • CMake 的 flash / debug 目标被移除,改用 west flash / west debug
  • k_sleep() / k_usleep() 不再是独立系统调用,变成 k_sleep_ticks() 的内联封装,放在新头文件 include/zephyr/sleep.h
  • 板级修订的 Kconfig 片段改名:不再读取 <board>_<revision>.conf,改成 <board>_<revision>_defconfig
  • zephyr_code_relocate(FILES ...) 不再展开通配符,遇到 * 会失败,要先用 file(GLOB ...) 再传文件
  • find_package(ZephyrUnittest) 换成 find_package(Zephyr COMPONENTS unittest)
  • 头文件包含:CONFIG_LEGACY_GENERATED_INCLUDE_PATH 默认关闭,必须使用 #include <zephyr/...>

建议改

  • STM32 板大多不再默认开 CONFIG_GPIO(有 gpio-hog 的除外),要显式 CONFIG_GPIO=y
  • STM32 的 GPIO 在禁用态配上下拉现在返回 -EINVAL,以前返回 0
  • RP2040 / RP2350 的 vreg 节点默认改 disabled,树外板要自己设 status = "okay";RP2040 的 mbox 拆成了 mbox0 / mbox1,ipm_mbox 也变成两个
  • Nordic 的时钟配置整体搬到 Devicetree。&xo、&hfclk、&lfclk 等节点要显式 status = "okay",CONFIG_CLOCK_CONTROL_NRF_K32SRC_* 全被 k32src 和 k32src-accuracy-ppm 属性取代;CONFIG_SOC_DCDC_* 改用 &reg1 的 regulator-initial-mode = <NRF5X_REG_MODE_DCDC>
  • ESP32 系列板:per-module dtsi 与一批 SoC 符号移除,板级 dts 要自己描述 flash 的 reg / ranges 和 PSRAM 的 size
  • can_set_state_change_callback() 拆分后,驱动侧要改成用 can_fire_state_change_callbacks() 触发
  • CONFIG_NVME_REQUEST_TIMEOUT 以前误按毫秒换算,现在按秒正确换算
  • LVGL 的 CONFIG_LV_COLOR_16_SWAP 不能和 PIXEL_FORMAT_RGB_565X 同时启用
  • k_sem_reset() 不再唤醒 poll 等待者,依赖这个行为实现的要换成显式同步
  • CONFIG_SCHED_CPU_MASK_PIN_ONLY 模式下,k_thread_cpu_mask_clear() / enable_all() / disable() 会触发断言,改用 k_thread_cpu_pin()
  • west spdx --init 弃用(计划 5.0 移除),SPDX 3.0 用 west spdx --spdx-version 3.0,且不需要 init 步骤

主板 & 扩展板 链接到标题

新增 178 个主板、29 个扩展板和 71 个实例,详见 Release Note。178 块板按厂商分成 79 组,其中约 80 块来自芯片厂商自家的评估套件(Silicon Labs、NXP、Infineon、Microchip、ST、Renesas、TI、Espressif、AMD、Alif),基本都是随新 SoC 支持一起进来的。

这次新增的板卡里中国厂商多了不少,新增的中国厂商板卡如下:

  • 乐鑫(Espressif)
    • esp32c61_devkitc:ESP32-C61
    • esp32p4_function_ev_board:ESP32-P4
    • esp32p4x_function_ev_board:ESP32-P4
    • esp32s3_box3:ESP32-S3(带屏语音助手套件)
  • 微雪(Waveshare)
    • esp32c6_lcd_1_47:ESP32-C6
    • esp32p4_wifi6 / esp32p4_wifi6_dev_kit / waveshare_esp32p4_eth:ESP32-P4
    • core2350b / rp2350b_plus_w:RP2350B
  • M5Stack
    • m5stack_stackchan:ESP32-S3(桌面机器人)
    • m5stack_sticks3 / m5stack_paper_color:ESP32-S3
    • m5stack_unitc6l:ESP32-C6
  • 沁恒(WCH)
    • ch32h417evt:CH32H417
    • ch32v103evt:CH32V103
    • ch32v203c8t6evt:CH32V203
    • ch32v305f_evt_r0:CH32V305
  • WeAct Studio
    • ch32v00x_core:CH32V006
    • mini_stm32h750:STM32H750
    • usb2canfdv2:STM32G431
    • weact_ra4m1_core:RA4M1
  • 矽速(Sipeed)
    • m0sense:BL702
    • m1s_dock:BL808
    • tang_mega_138k_pro_dock:高云 GW5AST-138 内的 RISC-V AE350 核
  • 瑞莎(Radxa)
    • rock_3b:RK3568
    • rock_5b_plus:RK3588
  • 亿佰特(Ebyte)
    • e80_900mbl_01:STM32F103
    • eora_hub_900tb:ESP32-S3
  • 安信可(Ai-Thinker)
    • ai_m64p_32s_kit:BL616
    • aipi_eyes_s2:BL618
  • 博流(Bouffalo Lab)
    • bl618g0:BL618
  • MuseLab
    • nano_ch32v317:CH32V317
    • nano_ch57x:CH570
  • 兆易创新(GigaDevice)
    • gd32c231c_eval:GD32C231
  • 嘉立创(JLC)
    • skystar_gd32f407vet6:GD32F407
  • 野火(Armfly)
    • armfly_stm32h743xih6:STM32H743
  • LilyGO
    • t_deck:ESP32-S3(带键盘和轨迹球的掌上设备)
  • 富斯(FlySky)
    • fs_i6s:STM32F072VB(10 通道 2.4 GHz 航模遥控器)
  • 瑞赛德(Ruiside)
    • ra8p1_titan:RA8P1
    • ra8p1_titan_mini:RA8P1
  • Heltec
    • heltec_t114_v2:nRF52840
  • 香橙派(Xunlong)
    • opi_zero2w:全志 H618
  • 幸运狐(Luckfox)
    • pico_ultra:瑞芯微 RV1106
  • 联发科(MediaTek):mt8370_genio_510_evk、mt8390_genio_700_evk(Genio 510 / 700)
  • 瑞昱(Realtek):pke8721daf_c13_f10(RTL8721Dx)
  • 新唐(Nuvoton):NUMAKER M031KI、NUMAKER M3351KI
  • 劲达(Raytac):AN54LV-DB-15
  • 其他:Makerfabs 的 matouch_mtro128g(ESP32-S3)、VIEWE 的两块 ESP32-C3/S3 显示板、Jhoinrch 的 RH02 系列、KinCony 的 KC868-A8、涂鸦的 TYZS3、GD32F470ZIT6 Core Board

除了国内厂商做的板,还有一批海外或无厂商归属的板卡用了国内芯片:

  • Adafruit Feather ESP32C6、Arduino Nesso N1:ESP32-C6
  • OLIMEX ESP32-P4-PC:ESP32-P4
  • Pine64 PineCone:BL602
  • UDOO KEY:ESP32
  • ESP32-H2-SUPERMINI:ESP32-H2
  • BL704L Development Board:BL704L
  • JZ-F407VET6 Industrial Control Board:STM32F407

另外四块“非典型”板卡值得一提:

  • Pebble Round 2(pr2):开源复刻的 Pebble 智能手表。有意思的是它用的主控是思澈(SiFli)的 SF32LB52,配 nPM1300 PMIC 和 GD25Q256E Flash
  • M5Stack StackChan:桌面机器人,源自 Stack-chan 开源项目,双串行舵机加触摸屏
  • FlySky FS-i6S:航模遥控器,但射频部分还没驱动。厂商中立的射频 API(PR #123210)预计 4.6 进来,之后我家小朋友的航模遥控器就可以烧成 Zephyr 的固件了
  • Tomu:能放进 USB Type-A 口的超迷你板,EFM32HG309F64

按 SoC 统计,ESP32 系列仍然是最大族群——乐鑫自己只报了 4 块,但微雪、M5Stack、LilyGO、VIEWE、安信可、Makerfabs 都在基于 ESP32 做板。RT-Thread 生态的两块 RA8P1 主板也加入了 Zephyr 阵营。

驱动 链接到标题

新增 6 个驱动类,详见 Release Note。这次的重点不在数量,而在这几个类本身透露的方向:

  • LIN 和 DALI:一个是汽车的低成本串行总线,一个是楼宇照明的数字可寻址接口。两个都是“现场总线”性质的东西,说明 Zephyr 在往工业和楼宇的末端设备走
  • Pulse IO:生成和捕获定时数字边沿,直接对着可寻址 LED 灯带和红外收发器。这类功能以前要靠 PWM 加定时器
  • Buzzer、MUX、Clock Monitor

新增驱动 API:

  • Haptics(触觉反馈,配合 CS40L5x、DRV2605 这类器件)
  • FIDO2(USB 或 BLE 传输,把设备变成 passkey 认证器):有配套示例,博客作者拿 Nordic nRF52840 Dongle 刷了几乎没改动的上游示例,就能当 USB 安全密钥登录 Ubuntu

加密加速:部分 Silicon Labs、NXP 和 STM32 器件已支持硬件加速的 PSA Crypto。

实例 链接到标题

新增 71 个实例,详见 Release Note。从示例的分布看技术路线,这次有几个新方向:

  • 电源管理:ADI MAX32 的 power modes、NXP MCX 的 suspend-to-RAM 与 system off、RT700 双核电源管理、CPUFreq 温度封顶策略。低功耗从“配几个 Kconfig”变成了有完整示例集的子系统
  • 连接侧把 4.5 的新能力都配了例子:QUIC 的 echo client / server、SSH 服务端与客户端、MCP Hello World、CoAP over TCP、SNTP server、DHCPv6 前缀委派、TSN Switch、Wi-Fi Mesh 与其上的 IP 通信、ESP-NOW
  • 新驱动类的配套:buzzer tone、DALI、NCV7430 over LIN(带一个 LIN 从机模拟器)、pulse_io byte transfer
  • 第一次出现 NPU 示例:TensorFlow Lite for Microcontrollers 跑在 NXP Neutron 上
  • 安全侧:FIDO2 authenticator、TF-M firmware update、HTTP FOTA
  • 内核与调试:assertions(ZASSERT)、object cores、object monitor、UDP coredump via shell

库和子系统 链接到标题

  • 内核
    • Thread-Metric 在 STM32F412 上跑完整套件,涉及内核的测试在 4.5 上比 4.4 快 3~15%,提升最大的是线程间通信
    • k_sleep() 改为 k_sleep_ticks() 的内联封装,睡眠跟踪钩子也跟着换成 enter / exit 这一对
    • futex 从内核对象降级为纯用户态机制,对象核心框架重构:对象挂到按类型的链表上,改用 k_obj_type_walk_locked() / k_obj_type_walk_unlocked() 遍历
    • CONFIG_SMP_BOOT_DELAY 改成在 Devicetree 的 cpu 节点上加 zephyr,deferred-start,再用 k_smp_cpu_start() / k_smp_cpu_resume() 拉起
    • CONFIG_SCHED_CPU_MASK 不局限于 SCHED_SIMPLE,可直接配 SCHED_SCALABLE 和 SCHED_MULTIQ
  • 调试与诊断
    • ZASSERT() 支持按模块、按文件设置级别(off / terse / normal / verbose)
    • 堆内存错误检测:CONFIG_SYS_HEAP_SANITIZER_ASAN 用于 native_sim,CONFIG_SYS_HEAP_KASAN 用于真实目标。KASAN 能在真实硬件上抓非法堆访问,这是 C/C++ 内存问题的强大工具
    • Tracing 增加终端查看器 scripts/tracing/trace_viewer.py,纯 Python 无依赖,可以回放、缩放、逐事件步进,也能切回原始事件日志
    • Trace 可以导出成 Perfetto 格式,用和 Linux、Android 同一套 UI 打开
    • 崩溃设备可以通过 UDP 把 coredump 发出来
  • 网络
    • TCP SACK 默认启用,新增 SNTP 服务器、iperf3 for zperf、gPTP 静态时间接收者、邻居缓存 API
    • 增加 TTCN-3 一致性测试套件,网络协议栈有正式的符合性测试
  • 蓝牙:新增一批 BAP / CAP / ASCS / ISO / RFCOMM / SDP 相关 API
  • 仿真与测试
    • native_sim 支持更多的宿主资源:Wi-Fi、音频、视频、LED、温度传感器,还能把宿主目录挂载进 Zephyr 文件系统
    • QEMU 增加 VirtIO 驱动(block、input、GPIO、I2C、SPI)
    • Twister 支持跨多设备测试,也支持用多种工具链构建同一个测试
  • SBOM 与加固
    • west spdx 支持 SPDX 3.0,SBOM 变成类型化元素图,用 JSON-LD 序列化。除了每个源文件及其哈希、许可证、版权声明,还多了一份 Build Profile:通过 CMake file API 记录编译器、编译选项,以及哪些源码进了哪个库
    • 生成时会在 build/spdx/ 下产出四份文档,其中一份列了各模块的 CPE 与 PURL 标识符,可以直接喂给漏洞扫描器
    • 加固工具改成读 YAML 建议库,每条建议都能解释含义、映射到 CWE,配置出现回退时会让 CI 直接失败

更多细节请参考 Release Note。