Qemu-kvm/libvirt 仮想マシンで USB イーサネットデバイスを動作させるのに問題があります。
問題は、ゲストオペレーティングシステムがUSBデバイスを正常に認識したにもかかわらずマウントできないことです。ゲストのlsusbにデバイスが表示されますが、ゲストdmesgログには次のエラーが表示されます。
usb 1-5 can't set config #1, error -32
ホストのログを見ると、libvirtがデバイスを強制的に解放すると、ホストの一部のプロセスがデバイスを再取得するようです。以下は、カードが最初に接続されたときのホストのdmesgログです。
[ 1.353053] usb 1-2: new high-speed USB device number 3 using ehci-pci
[ 1.432153] systemd-udevd[297]: renamed network interface eth0 to enp8s0
[ 1.468455] usb 1-2: config 1 has an invalid interface number: 4 but max is 2
[ 1.468460] usb 1-2: config 1 has an invalid interface number: 5 but max is 2
[ 1.468455] usb 1-2: config 1 has an invalid interface number: 4 but max is 2
[ 1.468460] usb 1-2: config 1 has an invalid interface number: 5 but max is 2
[ 1.468462] usb 1-2: config 1 has an invalid interface number: 5 but max is 2
[ 1.468465] usb 1-2: config 1 has no interface number 1
[ 1.468468] usb 1-2: config 1 has no interface number 2
[ 1.469951] usb 1-2: New USB device found, idVendor=1410, idProduct=b008
[ 1.469955] usb 1-2: New USB device strings: Mfr=4, Product=3, SerialNumber=5
[ 1.469958] usb 1-2: Product: Novatel Wireless 4G
[ 1.469960] usb 1-2: Manufacturer: Novatel Wireless Inc.
[ 1.469963] usb 1-2: SerialNumber: 990000945171911
[ 1.473271] hid-generic 0003:1410:B008.0001: hiddev0,hidraw0: USB HID v1.10 Device [Novatel Wireless Inc. Novatel Wireless 4G] on usb-0000:00:1d.7-2/input0
仮想マシンにデバイスをインストールしようとした場合(再度ホストマシンにロギング):
[ 92.555534] cdc_ether 1-2:1.4 enp0s29f7u2i4: unregister 'cdc_ether' usb-0000:00:1d.7-2, CDC Ethernet Device
[ 92.673039] usb 1-2: reset high-speed USB device number 3 using ehci-pci
[ 92.789881] cdc_ether 1-2:1.4 eth0: register 'cdc_ether' at usb-0000:00:1d.7-2, CDC Ethernet Device, 00:15:ff:51:71:90
[ 92.814159] systemd-udevd[3480]: renamed network interface eth0 to enp0s29f7u2i4
[ 93.321758] cdc_ether 1-2:1.4 enp0s29f7u2i4: unregister 'cdc_ether' usb-0000:00:1d.7-2, CDC Ethernet Device
[ 93.442035] usb 1-2: reset high-speed USB device number 3 using ehci-pci
[ 93.558723] cdc_ether 1-2:1.4 eth0: register 'cdc_ether' at usb-0000:00:1d.7-2, CDC Ethernet Device, 00:15:ff:51:71:90
[ 93.582179] systemd-udevd[3480]: renamed network interface eth0 to enp0s29f7u2i4
[ 93.673779] cdc_ether 1-2:1.4 enp0s29f7u2i4: unregister 'cdc_ether' usb-0000:00:1d.7-2, CDC Ethernet Device
[ 93.791043] usb 1-2: reset high-speed USB device number 3 using ehci-pci
[ 93.907742] cdc_ether 1-2:1.4 eth0: register 'cdc_ether' at usb-0000:00:1d.7-2, CDC Ethernet Device, 00:15:ff:51:71:90
[ 93.927194] systemd-udevd[3480]: renamed network interface eth0 to enp0s29f7u2i4
[ 94.007311] usb 1-2: usbfs: interface 4 claimed by cdc_ether while 'qemu-kvm' sets config #1
ホストオペレーティングシステムはCentOS 7で、仮想マシンオペレーティングシステムはUbuntu 14.04です。どちらも、そのパッケージマネージャで利用可能な最新バージョンのカーネルを持っています。
私が試した別のUSBイーサネットカードはうまくいきましたが、別のドライバ「rndis_host」を使用し、通常はクリーナーをインストールしているようです。
[ 875.825026] usb 1-2: new high-speed USB device number 5 using ehci-pci
[ 875.940297] usb 1-2: New USB device found, idVendor=1410, idProduct=b009
[ 875.940302] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 875.940305] usb 1-2: Product: MiFi 5792
[ 875.940308] usb 1-2: Manufacturer: Novatel Wireless
[ 875.940310] usb 1-2: SerialNumber: 0123456789ABCDEF
[ 875.987211] rndis_host 1-2:1.0 eth0: register 'rndis_host' at usb-0000:00:1d.7-2, RNDIS device, 00:15:ff:21:57:30
[ 875.987255] usbcore: registered new interface driver rndis_host
[ 876.010204] systemd-udevd[4636]: renamed network interface eth0 to enp0s29f7u2
仮想マシンにデバイスをインストールしようとした場合(再度ホストマシンにロギング):
[ 2017.809111] rndis_host 1-2:1.0 enp0s29f7u2: unregister 'rndis_host' usb-0000:00:1d.7-2, RNDIS device
[ 2018.095036] usb 1-2: reset high-speed USB device number 5 using ehci-pci
[ 2018.439031] usb 1-2: reset high-speed USB device number 5 using ehci-pci
ホストとゲストで最新バージョンのNetworkManagerとusb_modeswitchを実行しています。 sysconfigでホストのUSBネットワーキングをオフにしてデバイスを接続すると、ホストからネットワークインターフェイスが起動しません。
libvirtがデバイスをリリースした後にデバイスを再ロックするプロセスを見つけるのに役立つデバッグのヒントはありますか?