Created
March 9, 2013 16:00
-
-
Save x2q/5124616 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* usbreset -- send a USB port reset to a USB device | |
* | |
* Compile using: gcc -o usbreset usbreset.c | |
* | |
* | |
* */ | |
#include <stdio.h> | |
#include <unistd.h> | |
#include <fcntl.h> | |
#include <errno.h> | |
#include <sys/ioctl.h> | |
#include <linux/usbdevice_fs.h> | |
int main(int argc, char **argv) | |
{ | |
const char *filename; | |
int fd; | |
int rc; | |
if (argc != 2) { | |
fprintf(stderr, "Usage: usbreset device-filename\n"); | |
return 1; | |
} | |
filename = argv[1]; | |
fd = open(filename, O_WRONLY); | |
if (fd < 0) { | |
perror("Error opening output file"); | |
return 1; | |
} | |
printf("Resetting USB device %s\n", filename); | |
rc = ioctl(fd, USBDEVFS_RESET, 0); | |
if (rc < 0) { | |
perror("Error in ioctl"); | |
return 1; | |
} | |
printf("Reset successful\n"); | |
close(fd); | |
return 0; | |
} |
armbian 5.65, orange pi zero:
./usbreset /dev/ttyUSB0
Resetting USB device /dev/ttyUSB0
Error in ioctl: Inappropriate ioctl for device
armbian 5.65, orange pi zero:
./usbreset /dev/ttyUSB0
Resetting USB device /dev/ttyUSB0
Error in ioctl: Inappropriate ioctl for device
I have the same issue vectornav VN200 INS usb
armbian 5.65, orange pi zero: ./usbreset /dev/ttyUSB0 Resetting USB device /dev/ttyUSB0 Error in ioctl: Inappropriate ioctl for device
Here is an example. To reset the RTL2838 on USB bus 005, port 002
nanopi-root: lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
nanopi-root: ./usbreset /dev/bus/usb/005/002
Resetting USB device /dev/bus/usb/005/002
Reset successful
nanopi-root:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@renege the command should be: