我想重新启动USB调制解调器,如重启电源,无需重新启动并在Linux机器上物理拔出。 我试过这个程序:
但我只能断开它,但第二个命令失败了。给出以下印刷品:
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
usb 1-1: new full speed USB device using musb-hdrc and address 4
usb 1-1: device descriptor read/64, error -19
usb 1-1: device descriptor read/64, error -19
usb 1-1: new full speed USB device using musb-hdrc and address 5
usb 1-1: device descriptor read/64, error -19
usb 1-1: device descriptor read/64, error -19
usb 1-1: new full speed USB device using musb-hdrc and address 6
usb 1-1: device not accepting address 6, error -19
usb 1-1: new full speed USB device using musb-hdrc and address 7
usb 1-1: device not accepting address 7, error -19
hub 1-0:1.0: unable to enumerate USB device on port 1
有什么方法可以自动执行此重置过程。这样,如果我insmod一个模块,它应该注册USB设备,当我rmmod一个模块时,它将断开USB设备。
有没有这样的模块?
答案 0 :(得分:0)
这就像你想要在一个接口上以管理方式关闭/不关闭的任何其他接口。
#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;
}
编译代码:
$ gcc -o usb-reset usb-reset.c
我在/dev/ttyACM0
将Arduino连接到我的ubuntu机器,我将尝试以下列方式重置Arduino:
sudo ./usb-reset /dev/ttyACM0
重置电路板!