{"id":20482128,"url":"https://github.com/uk0/rk3588_hid_usb_mouse_kernel","last_synced_at":"2025-03-05T15:46:19.922Z","repository":{"id":103060606,"uuid":"563273591","full_name":"uk0/rk3588_hid_usb_mouse_kernel","owner":"uk0","description":"通过 Linux gadget  将某个usb host 模拟成 hid设备 提供给pc设备","archived":false,"fork":false,"pushed_at":"2022-11-08T12:39:05.000Z","size":8,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T16:14:32.433Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uk0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-08T09:16:37.000Z","updated_at":"2025-01-13T09:11:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"b54464a7-191b-4823-834a-cd64598c8140","html_url":"https://github.com/uk0/rk3588_hid_usb_mouse_kernel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uk0%2Frk3588_hid_usb_mouse_kernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uk0%2Frk3588_hid_usb_mouse_kernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uk0%2Frk3588_hid_usb_mouse_kernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uk0%2Frk3588_hid_usb_mouse_kernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uk0","download_url":"https://codeload.github.com/uk0/rk3588_hid_usb_mouse_kernel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242058084,"owners_count":20065062,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T16:11:42.272Z","updated_at":"2025-03-05T15:46:19.903Z","avatar_url":"https://github.com/uk0.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"#### rk3588_hid_usb_mouse_kernel\n\n\n\n#### 资料 \n\n* rk3588 详细信息 `https://www.cnx-software.com/2021/12/16/rockchip-rk3588-datasheet-sbc-coming-soon/`\n* hid 资料 `https://winddoing.github.io/post/5098.html`\n* hid `https://zhuanlan.zhihu.com/p/387793592`\n* hid `https://forums.raspberrypi.com/viewtopic.php?t=234495`\n\n\n\n#### 实现方式\n\n\n* 使用Linux gadget 驱动框架，在应用层使用脚本方式实现。\n* make ARCH=arm64 menuconfig `修改内核编译好了从新烧到板子内` 查看是否包含`libcomposite.ko`\n\n\n#### quick\n\n* Install the necessary packages\n```bash\nsudo apt-get update\nsudo apt-get install build-essential python-dev python-pip git\nsudo apt-get install vim ctags screen build-essential\n```\n\n* 创建HID配置信息\n\n```bash\n#in mod.sh\n# left meta right x y 5 buttons\n#!/bin/bash\n# 添加mod\nCONFIGFS_HOME=/sys/kernel/config\ninsmod libcomposite.ko\ninsmod usb_f_fs.ko\ninsmod usb_f_hid.ko\nmodprobe libcomposite  # 加入驱动\nmkdir -p $CONFIGFS_HOME/usb_gadget/m1 # 在usb_gadget 中创建我们设备的文件夹\n# 当我们创建完这个文件夹之后，系统自动的在这个文件夹中创建usb相关的内容 ，这些内容需要由创建者自己填写。\ncd $CONFIGFS_HOME/usb_gadget/m1\necho \"0x0104\" \u003e idVendor # 写入我们自定义的usb vid\necho \"0x1d6b\" \u003e idProduct# 写入我们自定义的usb pid\nmkdir strings/0x409 # 创建字符串文件夹\necho \"831409-0000\" \u003e strings/0x409/serialnumber\necho \"Logitech，Inc\" \u003e strings/0x409/manufacturer\necho \"Logitech G Pro Wireless\" \u003e strings/0x409/product\n# 创换配置功能\n#$mkdir configs/\u003cname\u003e.\u003cnumber\u003e\nmkdir -p configs/c.1/strings/0x409\necho 0x80 \u003e configs/c.1/bmAttributes # usb 硬件参数\necho 100 \u003e configs/c.1/MaxPower # usb 硬件参数 最大电流100 mA\necho \"Configuration\" \u003e configs/c.1/strings/0x409/configuration\n#定义hid 设备\nmkdir -p functions/hid.usb0\nmkdir -p functions/hid.usb0\necho 1 \u003e functions/hid.usb0/protocol\necho 1 \u003e functions/hid.usb0/subclass\necho 3 \u003e functions/hid.usb0/report_length\necho -ne \\\\x05\\\\x01\\\\x09\\\\x02\\\\xa1\\\\x01\\\\x09\\\\x01\\\\xa1\\\\x00\\\\x05\\\\x09\\\\x19\\\\x01\\\\x29\\\\x03\\\\x15\\\\x00\\\\x25\\\\x01\\\\x95\\\\x03\\\\x75\\\\x01\\\\x81\\\\x02\\\\x95\\\\x01\\\\x75\\\\x05\\\\x81\\\\x03\\\\x05\\\\x01\\\\x09\\\\x30\\\\x09\\\\x31\\\\x15\\\\x81\\\\x25\\\\x7f\\\\x75\\\\x08\\\\x95\\\\x02\\\\x81\\\\x06\\\\xc0\\\\xc0 \u003e functions/hid.usb0/report_desc\n# Write report descriptor hex值\n# Link the configuration file\nln -s functions/hid.usb0 configs/c.1\n# Activate device\nls /sys/class/udc \u003e UDC  #当我们执行完这条命令后，系统就自动的帮我们创建了ubs hid 设备，\n\n```\n\n\n\n#### 参考引用\n\n* https://github.com/milador/RaspberryPi-Joystick\n* https://www.youtube.com/watch?v=ufzLQ4PSwW4","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuk0%2Frk3588_hid_usb_mouse_kernel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuk0%2Frk3588_hid_usb_mouse_kernel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuk0%2Frk3588_hid_usb_mouse_kernel/lists"}