LINUX.ORG.RU

История изменений

Исправление ilovewindows, (текущая версия) :

Если только сбрасывать контроллер USB к которому модем подключен, usb_reset программка называется, ищи, пару раз уже была такая тема. даже вот нашёл

//gcc -o usb-reset usb-reset.c -lusb
#include <usb.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>

main (int argc, char **argv)
{
      struct usb_bus *busses;
      usb_init();
      usb_find_busses();
      usb_find_devices();
      busses = usb_get_busses();
      struct usb_bus *bus;
      int c, i, a;
      /* ... */
      for (bus = busses; bus; bus = bus->next) {
        struct usb_device *dev;
        int val;
        usb_dev_handle *junk;
        for (dev = bus->devices; dev; dev = dev->next) {
          char buf[1024];
          junk = usb_open ( dev );
          usb_get_string_simple(junk,2,buf,1023);
          if ( junk == NULL ){
            printf("Can't open %p (%s)\n", dev, buf );
          } else {
           printf( "find %p (%s)\n", dev, buf );
           if((argc>1) && strstr(buf,argv[1]))
           {
            val = usb_reset(junk);
            val = usb_resetep(junk,0);
            printf( "reset %p %d (%s)\n", dev, val, buf );
           }
          }
          usb_close(junk);
        }
      }

}



но может глючить, вплоть до зависания наглухо, если два устройства например подключены, но может и повезет

Исправление ilovewindows, :

Если только сбрасывать контроллер USB к которому модем подключен, usb_reset программка называется, ищи, пару раз уже была такая тема. даже вот нашёл

//gcc -o usb-reset usb-reset.c -lusb
#include <usb.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>

main (int argc, char **argv)
{
      struct usb_bus *busses;
      usb_init();
      usb_find_busses();
      usb_find_devices();
      busses = usb_get_busses();
      struct usb_bus *bus;
      int c, i, a;
      /* ... */
      for (bus = busses; bus; bus = bus->next) {
        struct usb_device *dev;
        int val;
        usb_dev_handle *junk;
        for (dev = bus->devices; dev; dev = dev->next) {
          char buf[1024];
          junk = usb_open ( dev );
          usb_get_string_simple(junk,2,buf,1023);
          if ( junk == NULL ){
            printf("Can't open %p (%s)\n", dev, buf );
          } else {
           printf( "find %p (%s)\n", dev, buf );
           if((argc>1) && strstr(buf,argv[1]))
           {
            val = usb_reset(junk);
            val = usb_resetep(junk,0);
            printf( "reset %p %d (%s)\n", dev, val, buf );
           }
          }
          usb_close(junk);
        }
      }

}



Исходная версия ilovewindows, :

Если только сбрасывать контроллер USB к которому модем подключен, usb_reset программка называется, ищи, пару раз уже была такая тема.