{"id":17316034,"url":"https://github.com/paroj/xpad","last_synced_at":"2025-05-14T19:04:48.756Z","repository":{"id":33333347,"uuid":"36978142","full_name":"paroj/xpad","owner":"paroj","description":"Linux Kernel Driver for the Xbox/ Xbox 360/ Xbox One Controllers","archived":false,"fork":false,"pushed_at":"2025-01-23T18:08:58.000Z","size":201,"stargazers_count":884,"open_issues_count":104,"forks_count":190,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-04-06T09:03:04.555Z","etag":null,"topics":["linux-kernel-driver","xbox","xpad"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paroj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2015-06-06T11:42:55.000Z","updated_at":"2025-03-31T16:20:03.000Z","dependencies_parsed_at":"2023-01-15T00:30:48.427Z","dependency_job_id":"cb7d3f6a-459e-4722-b6cb-5476c1349d25","html_url":"https://github.com/paroj/xpad","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paroj%2Fxpad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paroj%2Fxpad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paroj%2Fxpad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paroj%2Fxpad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paroj","download_url":"https://codeload.github.com/paroj/xpad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717241,"owners_count":21150387,"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":["linux-kernel-driver","xbox","xpad"],"created_at":"2024-10-15T13:11:23.902Z","updated_at":"2025-04-13T12:45:47.514Z","avatar_url":"https://github.com/paroj.png","language":"C","readme":"[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/O5O514FGIG)\n\n# Updated Xpad Linux Kernel Driver\nDriver for the Xbox/ Xbox 360/ Xbox 360 Wireless/ Xbox One Controllers\n\nThis driver includes the latest changes in the upstream linux kernel and additionally carries the following staging changes:\n\n* support for more compatible devices\n* support for xbox360 class controllers, that need initialisation\n* support Guitar Hero Live xbox one controller\n\n## Xbox One Controllers\nThis driver is only used if you connect the controller via USB.\n\n**Connecting via Bluetooth**  \nIf you get past the pairing issues, the controller will operate in the [generic-HID bluetooth profile](https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles#Human_Interface_Device_Profile_(HID)).  \nThe xpad driver will not be used.\n\n**Connecting via XBox One Wireless Adapter (WiFi)**  \nThe adapter needs daemon in userspace, see: [medusalix/xow](https://github.com/medusalix/xow)  \nOpinion: rather get a controller that supports bluetooth.\n\n\n# Installing\n```\nsudo git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4\nsudo dkms install -m xpad -v 0.4\n```\n# Updating\n```\ncd /usr/src/xpad-0.4\nsudo git fetch\nsudo git checkout origin/master\nsudo dkms remove -m xpad -v 0.4 --all\nsudo dkms install -m xpad -v 0.4\n```\n# Removing\n```\nsudo dkms remove -m xpad -v 0.4 --all\nsudo rm -rf /usr/src/xpad-0.4\n```\n# Usage\nThis driver creates three devices for each attached gamepad\n\n1. /dev/input/js**N**\n    * example `jstest /dev/input/js0`\n2. /sys/class/leds/xpad**N**/brightness\n    * example `echo COMMAND \u003e /sys/class/leds/xpad0/brightness` where COMMAND is one of\n        *  0: off\n        *  1: all blink, then previous setting\n        *  2: 1/top-left blink, then on\n        *  3: 2/top-right blink, then on\n        *  4: 3/bottom-left blink, then on\n        *  5: 4/bottom-right blink, then on\n        *  6: 1/top-left on\n        *  7: 2/top-right on\n        *  8: 3/bottom-left on\n        *  9: 4/bottom-right on\n        * 10: rotate\n        * 11: blink, based on previous setting\n        * 12: slow blink, based on previous setting\n        * 13: rotate with two lights\n        * 14: persistent slow all blink\n        * 15: blink once, then previous setting\n3. the generic event device\n    * example `fftest /dev/input/by-id/usb-*360*event*`\n\n# Debugging\nAs a regular unpriveledged user\n\nSetup console to display kernel log.  \n`dmesg --level=debug --follow`\n\nOpen a new console and access the device with jstest.  \n`jstest /dev/input/jsX`\n\nInteract with the device and observe that data packets recieved from device are printed to kernel log.\n```\n[ 3968.772128] xpad-dbg: 00000000: 20 00 b5 0e 00 00 00 00 00 00 0c 03 04 fd 6c 01 40 fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n[ 3968.772135] xpad-dbg: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n[ 3968.804137] xpad-dbg: 00000000: 20 00 b6 0e 00 00 00 00 00 00 0c 03 04 fd 6c 01 fc fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n[ 3968.804145] xpad-dbg: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n[ 3969.152120] xpad-dbg: 00000000: 20 00 b7 0e 00 00 00 00 00 00 0c 03 04 fd 6c 01 b8 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n[ 3969.152129] xpad-dbg: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n```\n\nSave dmesg buffer and attach to bug report, don't forget to describe button sequences in bug report.  \n`dmesg --level=debug \u003e dmesg.txt`\n\nCtrl+C to close interactive console sessions when finished.\n\n# Sending Upstream\n\n1. `git format-patch --cover-letter upstream..master`\n2. `git send-email --to xxx *.patch`\n","funding_links":["https://ko-fi.com/O5O514FGIG"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparoj%2Fxpad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparoj%2Fxpad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparoj%2Fxpad/lists"}