当前位置: 首页 > news >正文

在 Linux USB Gadget 创建的HID设备设置GET_REPORT返回的内容

问题背景

gadget 创建的 /dev/hidg* 通过 read 读取的数据只有 INTERRUPT 侧的数据,而 S/GET_REPORT 是 FEATURE 类的的数据

但其实linux内核已经实现了设置GET_REPORT的数据,通过ioctl进行设置

示例代码

#include <sys/ioctl.h>
#include <linux/usb/g_hid.h>uint8_t data[] = {0x20,0x4a, 0x75, 0x6c, 0x20, 0x20, 0x34, 0x20, 0x32, 0x30, 0x32, 0x35, 0x31, 0x30, 0x3a, 0x33, 0x38, 0x3a,0x34, 0x30, 0x3, 0x0, 0xb, 0x0, 0x11, 0x8, 0x0, 0x0, 0x2a, 0x0, 0x10, 0x1, 0x0, 0x28, 0x3, 0x0, 0x0, 0x0, 0x0,0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x6, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x10, 0x10, 0x3, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,0x0, 0x0, 0x0
};usb_hidg_report report_0x20{};
report_0x20.report_id = 0x20;
report_0x20.userspace_req = 0;
report_0x20.length = sizeof(data);
memcpy(report_0x20.data,data,sizeof(data));ioctl(fd,GADGET_HID_WRITE_GET_REPORT,&report_0x20);

关于userspace_req的参数,在头文件里面有这样的注释

  • @userspace_req:
  • !0 this report is used for any pending GET_REPORT request
  •   but wait on userspace to issue a new report on future requests
    
  • 0 this report is to be used for any future GET_REPORT requests

但是我自己没用出区别

小碎念

怎么网上都没有提到关于USB Gadget的GET_REPORT内容,让我找了好久。折腾ffs真是噩梦

相关链接

  • USB: gadget: f_hid: Add GET_REPORT via userspace IOCTL
http://www.jsqmd.com/news/592906/

相关文章:

  • 上篇:没有tool的AI,就是个“嘴强王者”
  • 5大维度解析Audino:音频AI训练数据标注的全流程解决方案
  • 2026届学术党必备的AI论文网站横评
  • ai辅助开发新场景:让快马生成基于tailscale exposure的内网设备探测工具
  • WRF-Hydro在Ubuntu 22.04 LTS上的系统化编译与部署指南
  • 攻克黑苹果配置难关:OpCore-Simplify的自动化解决方案
  • 微信插件WeChatExtension-ForMac:重新定义群聊高效管理新方式
  • 吃透这篇,妈妈再也不会担心我不会信息收集了!从前端注释到源码泄露全拆解
  • 2026届学术党必备的十大降重复率平台解析与推荐
  • LeetCode-001:Python 实现哈希表求两数之和:初识哈希表
  • STM32H743实战:手把手教你将LVGL 8.x移植到FreeRTOS+LwIP工程(含完整文件清单)
  • 磁力搜索终极指南:如何用magnetW一站式聚合23个资源站点
  • CodeCombat:游戏化编程学习平台的革新之路
  • 动态规划——买卖股票最佳时机
  • 基于Copula模型的数据分析工具功能说明
  • 使用PHP和Xunsearch实现歌曲搜索功能
  • Koikatu HF Patch终极指南:5分钟解锁完整游戏体验
  • 如何用KMS_VL_ALL_AIO实现高效全能的Windows与Office激活管理
  • 保姆级教程:用Cadence Virtuoso从零搭建0.18um工艺的Bandgap基准电路
  • 告别notepad++手工处理,用快马AI生成智能文本批量处理工具提升效率
  • 决策树:从入门到精通,一个算法搞定分类与回归
  • 分布式电源优化配置的二阶锥编程方法:基于Cplex与Gurobi求解器的综合分析与优化研究
  • 如何用Excel实现3D打印GCode的完全控制:FullControl GCode Designer终极指南
  • 如何构建跨平台番剧播放器:基于Flutter的Kazumi深度技术解析
  • Winhance中文版:3分钟让Windows焕新提速的系统优化神器
  • 车桥耦合振动联合仿真程序功能说明文档
  • 智能资源获取工具完全指南:突破平台限制的高效下载解决方案
  • DeepL免费翻译开源工具使用指南:零成本实现专业级翻译体验
  • YimMenu:构建GTA V安全与体验的双重防护体系
  • SpringBoot项目实战:用jSerialComm库搞定报警器RS485串口接入(附完整代码)