Jos*_*ITA 6 linux bash serial-port tty
试图解决这个问题(ttyUSB0工作正常而不是在1小时后停止工作)我正在考虑是否断开连接并重新连接usb设备可能是一个很好的解决方案.
那么,是否可以降低USB设备的电源并以编程方式重新启动它(bash)?
# lsusb -t
1-1:1.0: No such file or directory
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
|__ Port 1: Dev 2, If 0, Class=vend., Driver=, 12M
|__ Port 1: Dev 2, If 1, Class=vend., Driver=cp210x, 12M
Run Code Online (Sandbox Code Playgroud)
在am335x,内核3.2.0,ubuntu核心armhf.
[ 1.784332] usb 1-1: cp210x converter now attached to ttyUSB0
Run Code Online (Sandbox Code Playgroud)
目前我需要一个完整的动力循环才能ttyUSB0恢复.
Rob*_*vey 10
这是解决方案:
找到您的USB设备的标识.
# tree /sys/bus/usb/drivers/cp210x/
/sys/bus/usb/drivers/cp210x/
|-- 1-1:1.1 -> ../../../../devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-1:1.1
|-- bind
|-- module -> ../../../../module/cp210x
|-- remove_id
|-- uevent
-- unbind
Run Code Online (Sandbox Code Playgroud)1-1:1.1我的标识符也是如此ttyUSB0(也可以通过发现dmesg).
然后,断开设备(以root身份):
# echo -n "1-1:1.1" > /sys/bus/usb/drivers/cp210x/unbind
Run Code Online (Sandbox Code Playgroud)重新连接它
# echo -n "1-1:1.1" > /sys/bus/usb/drivers/cp210x/bind
Run Code Online (Sandbox Code Playgroud)此时我有相同的设备,但名称不同,现在是ttyUSB1而不是ttyUSB0.- 为了避免这种情况,我/etc/udev/rules.d/通过创建一个99-usb-serial.rules以此行命名的新文件添加了一个新规则:
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", ATTRS{serial}=="002DCFAF", SYMLINK+="sameName", MODE:="0666"
Run Code Online (Sandbox Code Playgroud)
其中idVendor,idProduct和serial必须是您设备的值.此规则将创建一个名为sameName链接到ttyUSB*通常从OS生成的设备的新设备.