2014-02-05 87 views
3

試圖解決this problem(ttyUSB0能夠正常工作,而不是在大約1小時後停止工作)我在考慮斷開連接和重新連接USB設備是否可以很好地解決問題。以編程方式在Linux中斷開並重新連接ttyUSB0

因此,它可能會減少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 

關於am335x,kernel 3.2.0,ubuntu core armhf。

[ 1.784332] usb 1-1: cp210x converter now attached to ttyUSB0 

目前我需要一個完整的電源週期有ttyUSB0回來。

+1

如果您發現自己的問題的解決方案,您應該發佈答案。如果沒有人提供更好的答案,你甚至可以接受你自己的答案。 – OJFord

回答

6

這是解決方案:

  • 找到您的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 
    

所以1-1:1.1是的標識符我ttyUSB0(也可以通過dmesg還發現)。

  • 然後,斷開設備(作爲root):

    # echo -n "1-1:1.1" > /sys/bus/usb/drivers/cp210x/unbind 
    
  • 重新連接

    # echo -n "1-1:1.1" > /sys/bus/usb/drivers/cp210x/bind 
    

此時我有同樣的裝置,但使用不同的名稱,現在是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" 

其中idVendoridProduct和串口必須是你的設備的價值。此規則將創建一個名爲sameName的新設備,該設備鏈接到通常由OS生成的ttyUSB*設備。

+0

從dmesg獲得我的設備的標識符我使用這個:'dmesg | grep':檢測到pl2303轉換器'| sed -e'$!d'| awk'{print $ 2}'| sed的/.$//'' –

相關問題