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

编译usbmouse.c遇报错:usb_maxpacket函数参数数量不足

解决usbmouse.c编译时usb_maxpacket参数不足的问题
  • 问题根源:你使用的Debian GNU/Linux 10内核版本为4.19.94-ti-r42,属于旧稳定版内核;而Torvalds仓库里的是最新内核代码,usb_maxpacket函数的参数定义在不同内核版本中存在变更——4.19版本要求传入3个参数,最新内核则简化为2个参数,直接拿最新代码编译自然会出现参数不匹配的报错。

  • 具体修复步骤:

    1. 优先使用对应4.19内核分支的usbmouse.c代码,其中的usb_maxpacket调用完全适配你当前内核的参数要求。
    2. 如果一定要修改手中的最新版代码,先查看本地内核头文件linux/usb.h里的usb_maxpacket原型,4.19版本的原型为int usb_maxpacket(struct usb_device *udev, int pipe, int is_out),你需要给调用补上第三个参数:比如把原代码里的usb_maxpacket(dev, pipe)改成usb_maxpacket(dev, pipe, usb_pipeout(pipe)),usb_pipeout(pipe)会根据管道类型自动返回对应的is_out值(0代表输入,1代表输出)。
    3. 编译时务必指定当前4.19内核的源码/include路径,避免因头文件不匹配引发其他问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:01:35