* Relocate usb_detach to utils * Relocate usb_detach to utils - fix up files after movepull/5172/head 0.6.295
@ -1,33 +0,0 @@ | |||||
/* Found at https://www.linuxquestions.org/questions/linux-hardware-18/how-to-unclaim-usb-device-558138/#post3406986 */ | |||||
#include <stdio.h> | |||||
#include <sys/types.h> | |||||
#include <sys/stat.h> | |||||
#include <fcntl.h> | |||||
#include <linux/ioctl.h> | |||||
#include <linux/usbdevice_fs.h> | |||||
int main(int argc, char**argv) | |||||
{ | |||||
struct usbdevfs_ioctl command; | |||||
int ret; | |||||
int fd; | |||||
int i; | |||||
if (argc>1) { | |||||
fd = open(argv[1],O_RDWR); | |||||
if (fd<1){ | |||||
perror("unable to open file"); | |||||
return 1; | |||||
} | |||||
for (i=0;i<255;i++){ // hack: should fetch how many interface there is. | |||||
command.ifno = i; | |||||
command.ioctl_code = USBDEVFS_DISCONNECT; | |||||
command.data = NULL; | |||||
ret = ioctl(fd, USBDEVFS_IOCTL, &command); | |||||
if(ret!=-1) | |||||
printf("un claimed interface %d %d\n",i,ret); | |||||
} | |||||
} else { | |||||
printf ("usage: %s /dev/bus/usb/BUS/DEVICE\n",argv[0]); | |||||
printf("Release all interfaces of this usb device for usage in virtualisation\n"); | |||||
} | |||||
} |
@ -1,16 +0,0 @@ | |||||
# JJ40 Tools | |||||
## usb_detach.c | |||||
When 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. | |||||
This program can force Linux to give up a device, so that the programming script can reset it. | |||||
### To compile: | |||||
``` | |||||
gcc usb_detach.c -o usb_detach | |||||
``` | |||||
### To run: | |||||
1. Use `lsusb` to discover the Bus and Device numbers for your keyboard. | |||||
2. Run the program: `sudo ./usb_detach /dev/bus/usb/<BUS>/<DEVICE>`. | |||||
3. Build and program the firmware as normal. |
@ -1,33 +0,0 @@ | |||||
/* Found at https://www.linuxquestions.org/questions/linux-hardware-18/how-to-unclaim-usb-device-558138/#post3406986 */ | |||||
#include <stdio.h> | |||||
#include <sys/types.h> | |||||
#include <sys/stat.h> | |||||
#include <fcntl.h> | |||||
#include <linux/ioctl.h> | |||||
#include <linux/usbdevice_fs.h> | |||||
int main(int argc, char**argv) | |||||
{ | |||||
struct usbdevfs_ioctl command; | |||||
int ret; | |||||
int fd; | |||||
int i; | |||||
if (argc>1) { | |||||
fd = open(argv[1],O_RDWR); | |||||
if (fd<1){ | |||||
perror("unable to open file"); | |||||
return 1; | |||||
} | |||||
for (i=0;i<255;i++){ // hack: should fetch how many interface there is. | |||||
command.ifno = i; | |||||
command.ioctl_code = USBDEVFS_DISCONNECT; | |||||
command.data = NULL; | |||||
ret = ioctl(fd, USBDEVFS_IOCTL, &command); | |||||
if(ret!=-1) | |||||
printf("un claimed interface %d %d\n",i,ret); | |||||
} | |||||
} else { | |||||
printf ("usage: %s /dev/bus/usb/BUS/DEVICE\n",argv[0]); | |||||
printf("Release all interfaces of this usb device for usage in virtualisation\n"); | |||||
} | |||||
} |
@ -1,16 +0,0 @@ | |||||
# JJ40 Tools | |||||
## usb_detach.c | |||||
When 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. | |||||
This program can force Linux to give up a device, so that the programming script can reset it. | |||||
### To compile: | |||||
``` | |||||
gcc usb_detach.c -o usb_detach | |||||
``` | |||||
### To run: | |||||
1. Use `lsusb` to discover the Bus and Device numbers for your keyboard. | |||||
2. Run the program: `sudo ./usb_detach /dev/bus/usb/<BUS>/<DEVICE>`. | |||||
3. Build and program the firmware as normal. |
@ -0,0 +1,18 @@ | |||||
# the compiler: gcc for C program, define as g++ for C++ | |||||
CC = gcc | |||||
# compiler flags: | |||||
# -g adds debugging information to the executable file | |||||
# -Wall turns on most, but not all, compiler warnings | |||||
CFLAGS = -g -Wall | |||||
# the build target executable: | |||||
TARGET = usb_detach | |||||
all: $(TARGET) | |||||
$(TARGET): $(TARGET).c | |||||
$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c | |||||
clean: | |||||
$(RM) $(TARGET) |
@ -1,16 +1,14 @@ | |||||
# JJ40 Tools | |||||
## usb_detach.c | |||||
# usb_detach | |||||
When 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. | When 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. | ||||
This program can force Linux to give up a device, so that the programming script can reset it. | This program can force Linux to give up a device, so that the programming script can reset it. | ||||
### To compile: | |||||
``` | |||||
gcc usb_detach.c -o usb_detach | |||||
## To compile: | |||||
```bash | |||||
make clean && make | |||||
``` | ``` | ||||
### To run: | |||||
## To run: | |||||
1. Use `lsusb` to discover the Bus and Device numbers for your keyboard. | 1. Use `lsusb` to discover the Bus and Device numbers for your keyboard. | ||||
2. Run the program: `sudo ./usb_detach /dev/bus/usb/<BUS>/<DEVICE>`. | 2. Run the program: `sudo ./usb_detach /dev/bus/usb/<BUS>/<DEVICE>`. | ||||
3. Build and program the firmware as normal. | 3. Build and program the firmware as normal. |
@ -1,5 +1,6 @@ | |||||
/* Found at https://www.linuxquestions.org/questions/linux-hardware-18/how-to-unclaim-usb-device-558138/#post3406986 */ | /* Found at https://www.linuxquestions.org/questions/linux-hardware-18/how-to-unclaim-usb-device-558138/#post3406986 */ | ||||
#include <stdio.h> | #include <stdio.h> | ||||
#include <sys/ioctl.h> | |||||
#include <sys/types.h> | #include <sys/types.h> | ||||
#include <sys/stat.h> | #include <sys/stat.h> | ||||
#include <fcntl.h> | #include <fcntl.h> |