Zephyr 4.2.0
我们很高兴地宣布 Zephyr 4.2.0 版本正式发布。
本次发布的主要增强包括:
- Renesas RX 初步支持
现在支持 Renesas RX 架构,包括基于 QEMU 的 开发板目标。
- USB 视频类驱动
USB 设备栈现在支持 USB Video Class(UVC),可将摄像头设备和其他图像/视频源作为标准 USB 视频设备对外提供。参见 USB Video webcam 开始使用。
- Twister 功耗测试装置
全新的 Twister 测试装置 可以测量被测设备的功耗,并确保其保持在给定容差范围内。
- MQTT 5.0
网络协议栈现在全面支持 MQTT 5.0 协议。
- Bluetooth Classic 改进
Bluetooth Classic 协议栈现在支持 Hands-Free Profile 规范(HFP),涵盖 Audio Gateway(AG)和 Hands-Free(HF)两种角色。
- Zbus
Zbus 库 随 API v1.0.0 的发布升级为稳定状态。
- 开发板支持扩展
将应用从 Zephyr v4.1.0 迁移到 Zephyr v4.2.0 时需要或建议采取的变更概览,见单独的 迁移指南。
以下小节按组件详细列出各项变更。
安全漏洞相关
本次发布修复了以下 CVE:
CVE 2025-7403:在 2025-09-05 前处于保密状态
更多详细信息见:https://docs.zephyrproject.org/latest/security/vulnerabilities.html
API 变更
移除的 API 和选项
移除了已弃用的
net_buf_put()和net_buf_get()API 函数。移除了已弃用的
include/zephyr/net/buf.h头文件。移除了
--disable-unrecognized-section-testTwister 选项。该测试已删除,该选项对应的行为成为默认行为。移除了已弃用的
kscan子系统。移除了
meas,ms5837,改用meas,ms5837-30ba和meas,ms5837-02ba。从
video_driver_api中移除了get_ctrl驱动 API。移除了
CONFIG_I3C_USE_GROUP_ADDR以及对 I3C 设备组地址的支持。
已弃用的 API 和选项
调度器 Kconfig 选项 CONFIG_SCHED_DUMB 和 CONFIG_WAITQ_DUMB 已重命名并弃用。请改用
CONFIG_SCHED_SIMPLE和CONFIG_WAITQ_SIMPLE。Kconfig 选项
CONFIG_LWM2M_ENGINE_MESSAGE_HEADER_SIZE已被移除。所需的报头大小应计入消息大小,并通过CONFIG_LWM2M_COAP_MAX_MSG_SIZE配置。需要特别注意确保所用的 CoAP 块大小(CONFIG_LWM2M_COAP_BLOCK_SIZE)在包含报头的情况下仍能容纳给定的消息大小。此前的预留空间为 48 字节。TLS 凭证类型
TLS_CREDENTIAL_SERVER_CERTIFICATE已重命名并弃用,请改用TLS_CREDENTIAL_PUBLIC_CERTIFICATE。arduino_uno_r4_minima和arduino_uno_r4_wifi开发板目标已弃用,改用带有修订版本的新开发板arduino_uno_r4(arduino_uno_r4@minima和arduino_uno_r4@wifi)。esp32c6_devkitc开发板目标已弃用,并重命名为esp32c6_devkitc/esp32c6/hpcore。xiao_esp32c6开发板目标已弃用,并重命名为xiao_esp32c6/esp32c6/hpcore。Kconfig 选项
CONFIG_HAWKBIT_DDI_NO_SECURITY已弃用,因为 hawkBit 服务器 0.8.0 版本已移除对匿名认证的支持。Kconfig 选项
CONFIG_BT_CONN_TX_MAX已弃用。待处理的 TX 缓冲区数量现在与CONFIG_BT_BUF_ACL_TX_COUNTKconfig 选项保持一致。Kconfig 选项
CONFIG_CRYPTO_TINYCRYPT_SHIM已被移除。该选项自 Zephyr 4.0 起弃用,当时建议用户迁移到其他加密后端。Kconfig 选项
CONFIG_BT_MESH_USES_TINYCRYPT已被移除。该选项自 Zephyr 4.0 起弃用。当时建议用户改用CONFIG_BT_MESH_USES_MBEDTLS_PSA或CONFIG_BT_MESH_USES_TFM_PSA。
本版本中的稳定 API 变更
net_mgmt事件处理函数net_mgmt_event_handler_t和请求处理函数net_mgmt_request_handler_t的 API 签名已变更。事件值类型从uint32_t改为uint64_t。
新增 API 和选项
I2C
I3C
LVGL(Light and Versatile Graphics Library)
LVGL 模块已同步到 v9.3,带来了大量上游改进和新功能。
LVGL 子系统现在支持多个显示器同时工作,包括正确的输入设备与显示器绑定。
为 SSD1327、SSD1320、SSD1322 和 ST75256 等显示器新增 L8/Y8 像素格式支持。
LoRaWAN
PCIe
SPI
Sys
USB
uvc_set_video_dev()
UpdateHub
ZBus
随着 API 版本 v1.0.0 的发布,Zbus 已达到稳定状态。
运行时观察者可以在不使用堆的情况下工作。现在可以为运行时观察者节点选择静态分配、动态分配或不分配。
使用
CONFIG_ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_NONE的运行时观察者必须使用新函数zbus_chan_add_obs_with_node()。
传感器
内核
存储
显示
新增
display_clear()API,可按标准化方式清除显示内容。字符帧缓冲(CFB)子系统现在支持通过
cfb_draw_circle()绘制圆形。
构建系统
Sysbuild
使用
SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER时,sysbuild 新增固件加载器镜像的设置/选择支持,可通过SB_CONFIG_FIRMWARE_LOADER配置,例如用SB_CONFIG_FIRMWARE_LOADER_IMAGE_SMP_SVR选择 SMP server。sysbuild 新增单应用 RAM 加载支持,使用
SB_CONFIG_MCUBOOT_MODE_SINGLE_APP_RAM_LOAD。
架构
NIOS2 架构已从 Zephyr 中移除。
ARCH_HAS_VECTOR_TABLE_RELOCATIONCONFIG_SRAM_VECTOR_TABLE从zephyr/Kconfig.zephyr移到zephyr/arch/Kconfig,并为其添加了依赖关系。
步进电机
stepper_stop()
电源管理
管理
MCUmgr
image mgmt 组新增固件加载器支持,使用
CONFIG_MCUBOOT_BOOTLOADER_MODE_FIRMWARE_UPDATER。OS 组的 reset 命令新增可选启动模式(使用 retention boot mode),通过
CONFIG_MCUMGR_GRP_OS_RESET_BOOT_MODE配置。
网络:
CoAP
DHCPv4
DNS
HTTP
IPv4
LwM2M
实现了大于、小于和步长(Step)观察属性的处理(参见
CONFIG_LWM2M_MAX_NOTIFIED_NUMERICAL_RES_TRACKED)。
杂项
MQTT
OpenThread
将 OpenThread 相关的 Kconfig 选项从 subsys/net/l2/openthread/Kconfig 移至 modules/openthread/Kconfig。
重构了 OpenThread 网络 API,参见 迁移指南 中的 OpenThread 部分。
SNTP
Socket
为 socket 服务 库新增了文档页面。
新增 socket 选项:
IP_MULTICAST_LOOPIPV6_MULTICAST_LOOPTLS_CERT_VERIFY_RESULT
Wi-Fi
在 Wi-Fi 管理文档(
doc/connectivity/networking/api/wifi.rst)中新增了一节,逐步介绍如何使用 FreeRADIUS 脚本为 Wi-Fi 生成测试证书。这有助于用户在自己的测试环境中复现这一过程。将 hostap 的 IPC 机制从 socketpair 改为 k_fifo。根据所启用的 Wi-Fi 配置选项,使用原生 Wi-Fi 协议栈时最多可节省 6-8 kB 内存。
zperf
zperf_upload_params.data_loader
蓝牙
音频
主机
LE Connection Subrating 不再是实验性功能。
从
bt_unpair()中移除对经典蓝牙绑定信息的删除操作,并新增bt_br_unpair()。从
bt_foreach_bond()中移除对经典蓝牙绑定信息的查询,并新增bt_br_foreach_bond()。为
bt_br_set_discoverable()新增limited参数,以支持经典蓝牙的受限可发现模式。为经典蓝牙 L2CAP 启用重传和流控,涉及
CONFIG_BT_L2CAP_RET、CONFIG_BT_L2CAP_FC、CONFIG_BT_L2CAP_ENH_RET和CONFIG_BT_L2CAP_STREAM。bt_avrcp_get_cap()改进经典蓝牙免提单元,包括
CONFIG_BT_HFP_HF_CODEC_NEG、CONFIG_BT_HFP_HF_ECNR、CONFIG_BT_HFP_HF_3WAY_CALL、CONFIG_BT_HFP_HF_ECS、CONFIG_BT_HFP_HF_ECC、CONFIG_BT_HFP_HF_VOICE_RECG_TEXT、CONFIG_BT_HFP_HF_ENH_VOICE_RECG、CONFIG_BT_HFP_HF_VOICE_RECG、CONFIG_BT_HFP_HF_HF_INDICATORS、CONFIG_BT_HFP_HF_HF_INDICATOR_ENH_SAFETY和CONFIG_BT_HFP_HF_HF_INDICATOR_BATTERY。改进经典蓝牙免提音频网关,包括
CONFIG_BT_HFP_AG_CODEC_NEG、CONFIG_BT_HFP_AG_ECNR、CONFIG_BT_HFP_AG_3WAY_CALL、CONFIG_BT_HFP_AG_ECS、CONFIG_BT_HFP_AG_ECC、CONFIG_BT_HFP_AG_VOICE_RECG_TEXT、CONFIG_BT_HFP_AG_ENH_VOICE_RECG、CONFIG_BT_HFP_AG_VOICE_TAG、CONFIG_BT_HFP_AG_HF_INDICATORS、CONFIG_BT_HFP_AG_HF_INDICATOR_ENH_SAFETY、CONFIG_BT_HFP_AG_HF_INDICATOR_BATTERY和CONFIG_BT_HFP_AG_REJECT_CALL。为
bt_hfp_ag_cb新增回调函数get_ongoing_call()。支持经典蓝牙 L2CAP 信令回显请求和响应功能,涉及
bt_l2cap_br_echo_cb、bt_l2cap_br_echo_cb_register()、bt_l2cap_br_echo_cb_unregister()、bt_l2cap_br_echo_req()和bt_l2cap_br_echo_rsp()。
视频
VIDEO_CID_AUTO_WHITE_BALANCE以及 BASE 控制类中的其他控制项。VIDEO_CID_EXPOSURE_ABSOLUTE以及 CAMERA 控制类中的其他控制项。VIDEO_PIX_FMT_Y10以及Y12、Y14、Y16变体VIDEO_PIX_FMT_SRGGB10P以及12P、14P变体,适用于全部 4 种 Bayer 变体。VIDEO_MIPI_CSI2_DT_NULL以及其他 MIPI 标准值
计数器
调试
新增开发板
Adafruit Industries, LLC
Adafruit Feather ESP32S2 (
adafruit_feather_esp32s2)Adafruit Feather ESP32S2 TFT (
adafruit_feather_esp32s2_tft)Adafruit Feather ESP32S2 TFT Reverse (
adafruit_feather_esp32s2_tft_reverse)Adafruit Feather ESP32S3 (
adafruit_feather_esp32s3)Adafruit Feather ESP32S3 TFT (
adafruit_feather_esp32s3_tft)Adafruit ESP32-S3 Reverse TFT Feather (
adafruit_feather_esp32s3_tft_reverse)
Advanced Micro Devices (AMD), Inc.
Versal 2 RPU development board (
versal2_rpu)Versal NET RPU development board (
versalnet_rpu)
Aesc Silicon
ElemRV Flask-N (
elemrv)
Ai-Thinker Co., Ltd.
Ai-Thinker WB2-12F development board (
ai_wb2_12f_kit)
Ambiq Micro, Inc.
Apollo510 SOC Evaluation Board (
apollo510_evb)
Analog Devices, Inc.
MAX32657EVKIT (
max32657evkit)
Arduino
Arduino Nano Matter (
arduino_nano_matter)Arduino Portenta C33 (
arduino_portenta_c33)
ARM Ltd.
MPS4 Corstone FVP (
mps4)
BeagleBoard.org Foundation
PocketBeagle 2 (
pocketbeagle_2)
Blues Wireless
Cygnet (
cygnet)
Bouffalo Lab (Nanjing) Co., Ltd.
BL604E IOT DVK development board (
bl604e_iot_dvk)
Doctors of Intelligence & Technology
DT-BL10 coexistence Module Development Kit (
dt_bl10_devkit)
ENE Technology, Inc.
ENE KB1062_EVB (
kb1062_evb)
Espressif Systems
ESP32-DevKitC (
esp32_devkitc)
Ezurio
BL54L15 DVK (
bl54l15_dvk)bl54l15u_dvk
FANKE Technology Co., Ltd.
FK743M5-XIH6 (
fk743m5_xih6)
IAR Systems AB
STM32F429II-ACA (
stm32f429ii_aca)
Infineon Technologies
XMC7200 Evaluation Kit (
kit_xmc72_evk)
Intel Corporation
Bartlett Lake P CRB (
intel_btl_s_crb)
ITE Tech. Inc.
it515xx_evb
KWS Computersysteme Gmbh
Lilygo Shenzhen Xinyuan Electronic Technology Co., Ltd
T-Dongle S3 (
tdongle_s3)TTGO TBeam (
ttgo_tbeam)TTGO T-OI-PLUS (
ttgo_toiplus)T-Watch S3 (
twatch_s3)
M5Stack
Fire (
m5stack_fire)
Microchip Technology Inc.
MEC17xxEVB ASSY6941 (
mec_assy6941)SAMA7G54 Evaluation Kit (
sama7g54_ek)
MikroElektronika d.o.o.
MikroE Quail (
mikroe_quail)
Nordic Semiconductor
nRF54LM20 DK (
nrf54lm20dk)
Nuvoton Technology Corporation
NPCK3M8K_EVB (
npck3m8k_evb)NUMAKER M55M1 (
numaker_m55m1)
NXP Semiconductors
FRDM-MCXA153 (
frdm_mcxa153)i.MX943 EVK (
imx943_evk)MCX-N9XX-EVK (
mcx_n9xx_evk)S32K148EVB-Q176 (
s32k148_evb)
Octavo Systems LLC
OSD32MP1-BRK (
osd32mp1_brk)
OpenHW Group
Digilent CV32A6 on Genesys 2 (
cv32a6_genesys_2)Digilent CV64A6 on Genesys 2 (
cv64a6_genesys_2)
Pimoroni Ltd.
Pimoroni Pico Plus2 (
pico_plus2)
QEMU
QEMU Emulation for Renesas RX (
qemu_rx)
Raytac Corporation
AN54LQ-DB-15 (
raytac_an54lq_db_15)AN7002Q-DB-5340 (
raytac_an7002q_db)MDBT50Q-CX-40 Dongle (
raytac_mdbt50q_cx_40_dongle)
Renesas Electronics Corporation
RA8P1 Evaluation Kit (
ek_ra8p1)Renesas Starter Kit for RX130 (
rsk_rx130)RZ/A2M Evaluation Kit (
rza2m_evk)RZ/A3UL SMARC Evaluation Board Kit (
rza3ul_smarc)RZ/G2L SMARC Evaluation Board Kit (
rzg2l_smarc)RZ/G2LC SMARC Evaluation Board Kit (
rzg2lc_smarc)RZ/G2UL SMARC Evaluation Board Kit (
rzg2ul_smarc)Renesas Starter Kit+ for RZ/N2L (
rzn2l_rsk)Renesas Starter Kit+ for RZ/T2L (
rzt2l_rsk)Renesas Starter Kit+ for RZ/T2M (
rzt2m_rsk)RZ/V2H Evaluation Board Kit (
rzv2h_evk)RZ/V2L SMARC Evaluation Board Kit (
rzv2l_smarc)RZ/V2N Evaluation Board Kit (
rzv2n_evk)
Seeed Technology Co., Ltd
XIAO MG24 (
xiao_mg24)XIAO RA4M1 (
xiao_ra4m1)
sensry.io
Ganymed Starter Kit (SK) (
ganymed_sk)
Shanghai Ruiside Electronic Technology Co., Ltd.
ART-Pi2 (
art_pi2)RA8D1 Vision Board (
ra8d1_vision_board)
Silicon Laboratories
SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash + 8 MB ext PSRAM Radio Board (SiWx91x-RB4342A) (
siwx917_rb4342a)EFR32xG21 2.4 GHz 20 dBm (SLWRB4180B) (
slwrb4180b)
Space Cubics, LLC
SC-OBC Module A1 (
scobc_a1)
STMicroelectronics
Nucleo F439ZI (
nucleo_f439zi)Nucleo U385RG Q (
nucleo_u385rg_q)Nucleo WBA65RI (
nucleo_wba65ri)STM32H757I Eval (
stm32h757i_eval)STM32MP135F-DK Discovery (
stm32mp135f_dk)STM32MP257F-EV1 Evaluation Board (
stm32mp257f_ev1)STM32U5G9J Discovery Kit 1 (
stm32u5g9j_dk1)STM32U5G9J Discovery Kit (
stm32u5g9j_dk2)
Texas Instruments
TI AM243x-EVM (
am243x_evm)MSPM0G3507 Launchpad (
lp_mspm0g3507)SK-AM64 (
sk_am64)
u-blox
EVK-IRIS-W106-RW612 (
ubx_evk_iris_w1)
Variscite Ltd.
DART-MX8M-PLUS (
imx8mp_var_dart)VAR-SOM-MX8M-PLUS (
imx8mp_var_som)DART-MX93 (
imx93_var_dart)VAR-SOM-MX93 (
imx93_var_som)
Waveshare Electronics
ESP32-S3-Matrix (
esp32s3_matrix)RP2040-Plus (
rp2040_plus)
WeAct Studio
BluePill Plus CH32V203 (
bluepillplus_ch32v203)STM32F446 Core Board V1.1 (
weact_stm32f446_core)
WinChipHead
WCH CH32V003F4P6 Development Board (
ch32v003f4p6_dev_board)WCH CH32V006EVT (
ch32v006evt)WCH CH32V303VCT6_EVT (
ch32v303vct6_evt)WCH LinkW (
linkw)
WIZnet Co., Ltd.
W5500-EVB-Pico2 (
w5500_evb_pico2)
Würth Elektronik GmbH.
Ophelia-IV EV (
ophelia4ev)
新增扩展板
新增驱动
ADC(模数转换器)
音频
辅助显示
CAN(控制器局域网)
充电器
时钟控制
bflb,bl60x-pllbflb,bl60x-root-clk
比较器
计数器
CPU
加密加速器
DAC(数模转换器)
调试
显示
DMA(直接内存访问)
renesas,rz-dma
EDAC(错误检测与纠正)
eSPI(增强型串行外设接口)
以太网
引入了
st,stm32-ethernet-controller,以简化与st,stm32-mdio的互操作。
固件
Flash 控制器
文件系统
电量计
GNSS(全球导航卫星系统)
GPIO(通用输入/输出)
bflb,gpio
IEEE 802.15.4 HDLC RCP 接口
I2C(集成电路间总线)
I2S(集成电路间音频)
I3C(改进型集成电路间总线)
IEEE 802.15.4
输入
中断控制器
LED(发光二极管)
LED(发光二极管) 灯带
arduino,modulino-smartleds
邮箱
MDIO(管理数据输入/输出)
内存控制器
MFD(多功能设备)
MIPI DBI(移动产业处理器接口显示总线接口)
其他
调制解调器
多比特 SPI
MTD(存储器技术设备)
jedec,mspi-normspi-aps-z8mspi-is25xX0xxrenesas,ra-nv-code-flashrenesas,ra-nv-data-flash
网络
八线 SPI
引脚控制
电源管理
电源域
PSI5(外设传感器接口第 5 代)
PWM(脉宽调制)
稳压器
复位控制器
RNG(随机数发生器)
RTC(实时时钟)
SDHC(安全数字主机控制器)
传感器
SENT(单边半字节传输)
串行控制器
SPI(串行外设接口)
microchip,mec5-qspi
步进电机
系统控制器
转速计
TCPC(USB Type-C 端口控制器)
定时器
USB
视频
Virtio
看门狗
Wi-Fi
新增示例
其他值得注意的变更
新增对 Armv8.1-M MPU 的 PXN(Privileged Execute Never)属性的支持。因此,使用
CONFIG_ARM_MPU_PXN和CONFIG_USERSPACE编译时,__ramfunc和__ram_text_reloc的 MPU 属性会被修改,以便为这些区域设置 PXN 属性。这会改变从这些区域执行代码的行为:如果这些区域设置了 PXN 属性,则无法在特权模式下执行。移除了对 Nucleo WBA52CG 开发板(
nucleo_wba52cg)的支持,因为它属于 NRND(Not Recommended for New Design,不建议用于新设计),并且从 STM32CubeWBA 1.1.0 版本(2023 年 7 月)起不再受支持。建议改用 Nucleo WBA55CG 开发板(nucleo_wba55cg)。将 Mbed TLS 更新到 3.6.4 版本(从 3.6.2 更新)。3.6.3 和 3.6.4 的版本说明如下:
将 TF-M 更新到 2.2.0 版本(从 2.1.1 更新)。版本说明见:https://trustedfirmware-m.readthedocs.io/en/latest/releases/2.2.0.html
更新了所有带有外部 I2C 连接器(Qwiic、Stemma、Grove...)的开发板,使其使用
zephyr_i2c设备树标签。这样便可利用现有的 扩展板 构建系统特性(west build --shield),将任何带连接器的 i2c 模块接入任何具有兼容 i2c 端口的开发板,而不受具体 i2c 连接器品牌的限制。撤销了 Nordic UART 驱动中接收器选项的弃用。此前,使用额外 TIMER 外设计数接收字节的接收模式已被弃用(例如
CONFIG_CONFIG_UART_0_NRF_HW_ASYNC)。然而事实证明,该模式是唯一能够在没有硬件流控的情况下可靠接收数据的方式,因此应保留在驱动中。