aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ymd96
diff options
context:
space:
mode:
authorzvecr <git@zvecr.com>2019-02-18 17:03:44 +0000
committerDrashna Jaelre <drashna@live.com>2019-02-18 09:03:44 -0800
commit1a6a2a7b75dec3b20311bc6d89923fde3222ba1c (patch)
tree25a7d256f9d78a281a58095822a24a9920c5b73b /keyboards/ymd96
parent545f95c8f49b8714a2fe2d0fa0f849f305cc7ca3 (diff)
downloadqmk_firmware-1a6a2a7b75dec3b20311bc6d89923fde3222ba1c.tar.gz
qmk_firmware-1a6a2a7b75dec3b20311bc6d89923fde3222ba1c.zip
Relocate usb_detach to utils (#5121)
* Relocate usb_detach to utils * Relocate usb_detach to utils - fix up files after move
Diffstat (limited to 'keyboards/ymd96')
-rw-r--r--keyboards/ymd96/tools/README.md16
-rw-r--r--keyboards/ymd96/tools/usb_detach.c33
2 files changed, 0 insertions, 49 deletions
diff --git a/keyboards/ymd96/tools/README.md b/keyboards/ymd96/tools/README.md
deleted file mode 100644
index 081984ed4..000000000
--- a/keyboards/ymd96/tools/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
1# JJ40 Tools
2
3## usb_detach.c
4
5When trying to flash on Linux, you may encounter a "Resource Unavailable" error. This means that Linux's HID driver has taken exclusive control of the keyboard, and the program script can't flash it.
6This program can force Linux to give up a device, so that the programming script can reset it.
7
8### To compile:
9```
10gcc usb_detach.c -o usb_detach
11```
12
13### To run:
141. Use `lsusb` to discover the Bus and Device numbers for your keyboard.
152. Run the program: `sudo ./usb_detach /dev/bus/usb/<BUS>/<DEVICE>`.
163. Build and program the firmware as normal.
diff --git a/keyboards/ymd96/tools/usb_detach.c b/keyboards/ymd96/tools/usb_detach.c
deleted file mode 100644
index c21e47a7a..000000000
--- a/keyboards/ymd96/tools/usb_detach.c
+++ /dev/null
@@ -1,33 +0,0 @@
1/* Found at https://www.linuxquestions.org/questions/linux-hardware-18/how-to-unclaim-usb-device-558138/#post3406986 */
2#include <stdio.h>
3#include <sys/types.h>
4#include <sys/stat.h>
5#include <fcntl.h>
6#include <linux/ioctl.h>
7#include <linux/usbdevice_fs.h>
8
9int main(int argc, char**argv)
10{
11 struct usbdevfs_ioctl command;
12 int ret;
13 int fd;
14 int i;
15 if (argc>1) {
16 fd = open(argv[1],O_RDWR);
17 if (fd<1){
18 perror("unable to open file");
19 return 1;
20 }
21 for (i=0;i<255;i++){ // hack: should fetch how many interface there is.
22 command.ifno = i;
23 command.ioctl_code = USBDEVFS_DISCONNECT;
24 command.data = NULL;
25 ret = ioctl(fd, USBDEVFS_IOCTL, &command);
26 if(ret!=-1)
27 printf("un claimed interface %d %d\n",i,ret);
28 }
29 } else {
30 printf ("usage: %s /dev/bus/usb/BUS/DEVICE\n",argv[0]);
31 printf("Release all interfaces of this usb device for usage in virtualisation\n");
32 }
33} \ No newline at end of file