You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Linux的USB HID设备配置方法:如何将嵌入式Linux内核配置为USB-HID设备模式

嵌入式Linux USB HID设备模式配置指南

首先明确核心术语:Linux内核中实现USB从设备功能的整套框架叫 USB Gadget 子系统,你需要的HID设备模式对应的功能是该子系统下的 HID Gadget,后续检索内核代码或配置都可以用这两个关键词。

内核配置步骤

进入内核源码根目录执行 make menuconfig 启动配置界面,按以下路径开启对应选项:

  • 进入 Device Drivers 菜单
  • 进入 USB support 子菜单
  • 开启 USB Gadget Support(对应配置项名 CONFIG_USB_GADGET,编译进内核选 <*>,编译为模块选 <M>)
  • 进入同级的 USB Gadget precomposed configurations 子菜单
  • 选中 HID Gadget(对应配置项名 CONFIG_USB_G_HID,按需选择编译方式)
    内核配置完成后重新编译烧录内核即可。如果编译为模块,HID Gadget的模块名为 g_hid。

代码检索路径

如果需要查阅对应源码,HID Gadget的实现代码位于内核源码的 drivers/usb/gadget/legacy/hid.c,全局检索直接搜配置项名 CONFIG_USB_G_HID 或模块名 g_hid 即可定位所有相关逻辑。

功能验证与基础使用

  1. 模块加载:如果编译为模块,执行 modprobe g_hid 加载驱动,加载完成后会生成 /dev/hidg0 设备节点,该节点就是用户空间操作HID报告的接口。
  2. 基础操作示例:模拟USB键盘输入时,直接向设备节点写入符合HID规范的报文即可:
    • 按下A键:echo -ne '\x00\x00\x04\x00\x00\x00\x00\x00' > /dev/hidg0
    • 松开所有按键:echo -ne '\x00\x00\x00\x00\x00\x00\x00\x00' > /dev/hidg0

注意:部分SOC平台需要先在设备树中将USB控制器的 dr_mode 属性设置为 peripheral 或 otg,才能正常启动USB从设备模式,否则Gadget驱动会加载失败。

内容的提问来源于stack exchange,提问作者RobinSingh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:45:03