Reset périphérique USB (unplug / replug) logiciel sous linux

Vous avez parfois besoin de simuler le débranchement / rebranchement d'un périphérique USB sur linux (sur un serveur par exemple).

J'ai ce qu'il vous faut !

Il vous suffit d'utiliser un petit bout de code en C :

#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <linux/usbdevice_fs.h>
void main(int argc, char **argv)
{
 const char *filename;
 int fd;
 filename = argv[1];
 fd = open(filename, O_WRONLY);
 ioctl(fd, USBDEVFS_RESET, 0);
 close(fd);
 return;
}

Enregistrez ce code dans un fichier reset.c puis compilez le :

gcc -o reset reset.c

Vous allez ainsi récupérer un binaire reset que vous pourrez utiliser comme ceci :

sudo ./reset /dev/bus/usb/002/004

Pour connaitre l'adresse de votre périphérique USB, vous pouvez utiliser la commande lsusb :

lsusb

Bus 002 Device 004: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem

Info trouvée initialement ici :

http://gconfig.blogspot.co.uk/2012/07/how-to-reset-usb-device-in-linux.html

#linux #reset #usb #c