返回列表 發帖

Dongle reset

A script to reset USB dongle

Need to compile the following
resetusb.c
  1. include <stdio.h>
  2. #include <usb.h>

  3. int main(void)
  4. {
  5.       struct usb_bus *busses;
  6.       usb_init();
  7.       usb_find_busses();
  8.       usb_find_devices();
  9.       busses = usb_get_busses();
  10.       struct usb_bus *bus;
  11.       int c, i, a;
  12.       /* ... */
  13.       for (bus = busses; bus; bus = bus->next) {
  14.         struct usb_device *dev;


  15.         int val;
  16.         usb_dev_handle *junk;
  17.         for (dev = bus->devices; dev; dev = dev->next) {
  18.           char buf[1024];
  19.           junk = usb_open ( dev );
  20.           usb_get_string_simple(junk,2,buf,1023);
  21.           if ( junk == NULL ){
  22.             printf("Can't open %p (%s)\n", dev, buf );
  23.           } else {
  24.     if ((dev->descriptor.idVendor == 0x12d1) && (dev->descriptor.idProduct == 0x1001)) {
  25.             printf( "reset %p %d (%s)  ", dev, val, buf );
  26.     printf( "vendor %x  ",dev->descriptor.idVendor);
  27.     printf( "product %x\n",dev->descriptor.idProduct);
  28.                 val = usb_reset(junk);
  29.             }       
  30.     else {

  31.            printf( "leave alone %p %d (%s)  ", dev, val, buf );
  32.     printf( "vendor %x  ",dev->descriptor.idVendor);
  33.     printf( "product %x\n",dev->descriptor.idProduct);

  34.     }

  35.           }
  36.           usb_close(junk);
  37.         }
  38.       }
  39. }
複製代碼
Ref: https://github.com/dirkholz/resetusb/blob/master/src/resetusb.c

Or use the following command

echo "at+cfun=1,1" | atinout - /dev/ttyUSBXX -

where ttyUSBXX is data port.

http://atinout.sourceforge.net

TOP

Useful for our Raspberrypi with Dongle

TOP

返回列表