-
-
Save mukhortov/b90ae7388c4ca09d82180e41a8b44c09 to your computer and use it in GitHub Desktop.
This file contains hidden or 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; | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
wgetusbresetusbresetprogramlsusband find your device in the list. Remember the name of your device (ZTE, Huawei, etc)DEVICE_NAMEwith the device name from the previous step. The following command gets the device ID by name usinglsusband passes it as an argument tousbreset.crontabto reset the USB device every 5 minutes. To start editing pressikey.DEVICE_NAMEwith the name of your USB device. To save and exit pressesc, type:wq, and hitenter.