![在沒有實體存取的情況下重置 USB 數據機(KVM 虛擬機)](https://rvso.com/image/1108673/%E5%9C%A8%E6%B2%92%E6%9C%89%E5%AF%A6%E9%AB%94%E5%AD%98%E5%8F%96%E7%9A%84%E6%83%85%E6%B3%81%E4%B8%8B%E9%87%8D%E7%BD%AE%20USB%20%E6%95%B8%E6%93%9A%E6%A9%9F%EF%BC%88KVM%20%E8%99%9B%E6%93%AC%E6%A9%9F%EF%BC%89.png)
我正在使用 USB 數據機將虛擬機器連接到網路。因此主機和訪客不共用相同的 IP/網路。我模仿了一下qemu-kvm
,設備轉發非常適合*-usb -usbdevice host:1c9e:9603*
.虛擬機器使用Ubuntu 10.04,主機11.10。
不幸的是,調製解調器在大約 3 天後卸載。顯然,從現在開始無法建立連線。 VM 重新啟動後,可以再次建立連線。
nmcli
可用於建立網路連線並檢查其是否仍活動。但是如何使用一個小的 bash 腳本重新安裝設備/數據機呢?
下面的系統日誌顯示了設備在使用約 3 天後如何拔出插頭:
pppd[1369]: LCP terminated by peer
pppd[1369]: Connect time 1104.9 minutes.
pppd[1369]: Sent 1279 bytes, received 790 bytes.
kernel: [66423.705380] device ppp0 left promiscuous mode
pppd[1369]: Modem hangup
pppd[1369]: Connection terminated.
avahi-daemon[424]: Withdrawing workstation service for ppp0.
modem-manager[483]: <info> (ttyUSB2) closing serial port...
NetworkManager[431]: SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
NetworkManager[431]: <info> (ttyUSB2): now unmanaged
NetworkManager[431]: <info> (ttyUSB2): device state change: 8 -> 1 (reason 36)
NetworkManager[431]: <info> (ttyUSB2): deactivating device (reason: 36).
NetworkManager[431]: <warn> could not read ppp stats: No such device
NetworkManager[431]: <info> (ttyUSB2): cleaning up...
NetworkManager[431]: <info> (ttyUSB2): taking down device.
NetworkManager[431]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
nm-dispatcher.action: Error in get_property: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist#012
modem-manager[483]: <info> (ttyUSB2) serial port closed
modem-manager[483]: <info> Modem /org/freedesktop/ModemManager/Modems/0: state changed (connected -> disconnecting)
modemqemu-kvm-manager[483]: <info> Modem /org/freedesktop/ModemManager/Modems/0: state changed (disconnecting -> connected)
pppd[1369]: Exit.
NetworkManager[431]: <info> disconnect failed: (32) The serial port is not open.
恐怕,在虛擬機器上重新啟動這些 USB 守護程式是不夠的 - 因為我必須告訴 qemuKVM 管理員再次轉發裝置。但這是第二步。
答案1
我試過這個http://marc.info/?l=linux-usb&m=121459435621262&w=2重置 USB 的 C 程式。
$ cc usbreset.c -o usbreset
$ lsusb
Bus 002 Device 003: ID 0fe9:9010 DVICO
$ chmod +x usbreset
$ sudo ./usbreset /dev/bus/usb/002/003
UMTS 數據機消失約 20 秒,然後再次出現在 VM 中。幸運的是,它是由 qemu 管理器自動重定向的!
問題依然是不是已解決,因為 3 天后,即使 USB 重置也不允許我建立運行良好的連接。
重新啟動虛擬機器是我最後的手段...
@ppetraki:
調變解調器並沒有從網路管理員中消失,它仍然存在,但無法建立連線。