0,0 → 1,52 |
|
// https://gist.github.com/x2q/5124616 |
// https://www.raspberrypi.org/forums/viewtopic.php?t=86265https://www.raspberrypi.org/forums/viewtopic.php?t=86265 |
|
/* 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; |
} |