summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/111/review/1920752
blob: 14915a954fc9799193bd4d0eb16c7b3bd1557372 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
other: 0.097
device: 0.096
PID: 0.080
semantic: 0.073
KVM: 0.072
permissions: 0.072
vnc: 0.069
debug: 0.067
boot: 0.067
performance: 0.065
network: 0.064
graphic: 0.063
socket: 0.061
files: 0.054
KVM: 0.667
device: 0.075
debug: 0.050
other: 0.037
files: 0.035
PID: 0.022
socket: 0.020
semantic: 0.020
graphic: 0.014
boot: 0.014
permissions: 0.013
network: 0.013
performance: 0.011
vnc: 0.009

USB SoundCard Passthrough not working on arm64

Hello,

I am virtualizing a armhf guest on a aarch64 host and was to use my Sound Blaster USB Soundcard as passthrough. 

armhf Guest is: Debian Buster 
aarch64 host is a jetson nano. KVM is enabled.

Latest qemu is built from sources.
The command I use for running is as follows:

../qemu/build/qemu-system-aarch64 -M virt -m 2048 -smp 2 -cpu host,aarch64=off -enable-kvm  \
-kernel vmlinuz-4.19.0-14-armmp-lpae  -initrd initrd.img-4.19.0-14-armmp-lpae -append 'root=/dev/vda2' \
-device nec-usb-xhci -device usb-kbd  -device usb-mouse -device usb-host,hostbus=1,hostport=2.3  -serial stdio  \
-device virtio-gpu-pci,virgl=on,xres=1600,yres=900 -display sdl,gl=on \
-drive if=none,file=hda2.qcow2,format=qcow2,id=hd   -device virtio-blk-device,drive=hd   \
-netdev user,id=mynet   -device virtio-net-device,netdev=mynet \
-bios edk2-arm-code.fd -no-reboot


Where are my lsusb -t shows:

rreddy78@jetson-nano:~/Downloads$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 5000M
    |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/5p, 480M
    |__ Port 2: Dev 6, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 1: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 3: Dev 8, If 3, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 8, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 3: Dev 8, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 3: Dev 8, If 0, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 4: Dev 9, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

Within the VM I can see the usb as follows

rreddy78@debian:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 480M
    |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 480M


Its looks like some passthrough as but it seems like only for

 _ Port 3: Dev 8, If 3, Class=Human Interface Device, Driver=usbhid, 12M

I am not sure if passthrough  even works because this post I saw

https://community.arm.com/developer/ip-products/system/f/embedded-forum/48031/usb-pass-through-in-qemu-command-line-for-arm-machines/168764#168764

Hi, do you see errors on stderr when running with "-d guest_errors"?
If so can you attach the log produced by using "-D guest_errors.log -d guest_errors"?


Not much.

Here is the log 

gic_cpu_read: Bad offset fc
gic_cpu_read: Bad offset fc
virtio_mmio_write: attempt to write guest features with guest_features_sel > 0 in legacy mode
virtio_mmio_write: attempt to write guest features with guest_features_sel > 0 in legacy mode


This time I used it differently i.e:

rreddy78@jetson-nano:~/debian-buster-qemu$ lsusb -s 1:8
Bus 001 Device 008: ID 041e:324d Creative Technology, Ltd 

And 

-device usb-host,vendorid=0x041e,productid=0x324d -D guest_errors.log -d guest_errors



Can you record usb traffic (add pcap=<file> to usb-host)?

I ran it as follows:

 qemu-system-aarch64 -M virt -m 2048 -smp 2 -cpu host,aarch64=off -enable-kvm -kernel vmlinuz-4.19.0-14-armmp-lpae -initrd initrd.img-4.19.0-14-armmp-lpae -append 'root=/dev/vda2' -device nec-usb-xhci -device usb-kbd -device usb-mouse -device usb-host,pcap=test.pcap,hostbus=1,hostport=2.1 -serial stdio -device virtio-gpu-pci,virgl=on,xres=1600,yres=900 -display sdl,gl=on -drive if=none,file=hda2.qcow2,format=qcow2,id=hd -device virtio-blk-device,drive=hd -netdev user,id=mynet -device virtio-net-device,netdev=mynet -bios edk2-arm-code.fd -no-reboot

But the pcap file is empty:

file test.pcap
test.pcap: empty




Hello,

You can close this bug as as a simple usb-audio switch is working fine for me:
I just added -device usb-audio and set the -device nec-usb-xhci and sound within the qemu is working fine..

qemu-system-aarch64 -M virt -m 2048 -smp 2 -cpu host,aarch64=off -enable-kvm -kernel vmlinuz-4.19.0-14-armmp-lpae -initrd initrd.img-4.19.0-14-armmp-lpae -append 'root=/dev/vda2' -device nec-usb-xhci,id=xhci -device usb-kbd -device usb-mouse -device usb-audio -serial stdio -device virtio-gpu-pci,virgl=on,xres=1600,yres=900 -display sdl,gl=on -drive if=none,file=hda2.qcow2,format=qcow2,id=hd -device virtio-blk-device,drive=hd -netdev user,id=mynet -device virtio-net-device,netdev=mynet -bios edk2-arm-code.fd -no-reboot


One more point. The solution above is not usb passthrough.
I just noticed that qemu needs to be configured for usb passthrough. I am trying that out now

Configure with --enable-libusb
  libusb          libusb (for usb passthrough)


Closing as requested in comment #6