gospat83
Registrierter Benutzer
- 23.10.26
- 29.11.18
- 39
Ich betreibe Windows 11 unter Linux Mint mit KVM/QEMU (virt-manager) und wollte mein NUX MG-30 sowohl im normalen Betrieb als auch für Firmware-Updates im DFU-Modus nutzen.
Das Problem: Nach dem Abziehen und erneuten Einstecken wurde das MG-30 zwar von Linux erkannt, aber nicht automatisch wieder an die laufende Windows-VM durchgereicht.
Die Lösung: udev + systemd + ein kleines virsh-Skript.
Das MG-30 verwendet zwei unterschiedliche USB-IDs:
mg30.xml:
mg30-dfu.xml:
Ein Skript /usr/local/bin/mg30-attach erkennt anhand der USB-ID automatisch den jeweiligen Modus und führt anschließend virsh attach-device ... --live aus.
Dieses Skript wird über einen systemd-Service gestartet:
Die udev-Regel /etc/udev/rules.d/99-mg30.rules:
Danach:
Normalbetrieb: USB einstecken → MG-30 wird automatisch wieder an Windows durchgereicht → QuickTone funktioniert.
DFU-Modus: MG-30 in DFU → 9527:c157 wird erkannt → automatisch an Windows durchgereicht → NUX-Updateprogramm meldet „Device connected“.
Damit ist kein manuelles „USB-Einheit weiterleiten“ im virt-manager mehr nötig.
Die Lösung stammt von ChatGPT und funktioniert einwandfrei. Ich hoffe sie hilft weiter, falls jemand irgendwann auch dieses oder ein ähnliches Problem hat.
KURZE ERGÄNZUNG:
Bei der jetzigen Konfiguration muss das MG-30 immer mit dem Rechner verbunden sein beim Start der VM, ansonsten startet die VM nicht. Wenn das nicht gewünscht ist, darf das Gerät nicht als "USB Host-Gerät hinzufügen" in den Einstellungen der VM hinzugefügt werden.
Alternativ kann man im Nachgang in der xml Datei der VM den entsprechenden <hostdev> Block für das MG-30 komplett löschen. Dann startet die VM auch wieder ohne das MG-30.
Das Problem: Nach dem Abziehen und erneuten Einstecken wurde das MG-30 zwar von Linux erkannt, aber nicht automatisch wieder an die laufende Windows-VM durchgereicht.
Die Lösung: udev + systemd + ein kleines virsh-Skript.
Das MG-30 verwendet zwei unterschiedliche USB-IDs:
- Normal: 1fc9:8260
- DFU: 9527:c157
mg30.xml:
Code:
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x1fc9'/>
<product id='0x8260'/>
</source>
</hostdev>
mg30-dfu.xml:
Code:
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x9527'/>
<product id='0xc157'/>
</source>
</hostdev>
Ein Skript /usr/local/bin/mg30-attach erkennt anhand der USB-ID automatisch den jeweiligen Modus und führt anschließend virsh attach-device ... --live aus.
Dieses Skript wird über einen systemd-Service gestartet:
Code:
[Unit]
Description=Attach NUX MG-30 to Windows 11 VM
After=libvirtd.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/mg30-attach
Die udev-Regel /etc/udev/rules.d/99-mg30.rules:
Code:
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1fc9", ATTR{idProduct}=="8260", TAG+="systemd", ENV{SYSTEMD_WANTS}="mg30-attach.service"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="9527", ATTR{idProduct}=="c157", TAG+="systemd", ENV{SYSTEMD_WANTS}="mg30-attach.service"
Danach:
Code:
sudo udevadm control --reload-rules
sudo systemctl daemon-reload
Ergebnis
Damit funktioniert jetzt beides automatisch:Normalbetrieb: USB einstecken → MG-30 wird automatisch wieder an Windows durchgereicht → QuickTone funktioniert.
DFU-Modus: MG-30 in DFU → 9527:c157 wird erkannt → automatisch an Windows durchgereicht → NUX-Updateprogramm meldet „Device connected“.
Damit ist kein manuelles „USB-Einheit weiterleiten“ im virt-manager mehr nötig.
Die Lösung stammt von ChatGPT und funktioniert einwandfrei. Ich hoffe sie hilft weiter, falls jemand irgendwann auch dieses oder ein ähnliches Problem hat.
KURZE ERGÄNZUNG:
Bei der jetzigen Konfiguration muss das MG-30 immer mit dem Rechner verbunden sein beim Start der VM, ansonsten startet die VM nicht. Wenn das nicht gewünscht ist, darf das Gerät nicht als "USB Host-Gerät hinzufügen" in den Einstellungen der VM hinzugefügt werden.
Alternativ kann man im Nachgang in der xml Datei der VM den entsprechenden <hostdev> Block für das MG-30 komplett löschen. Dann startet die VM auch wieder ohne das MG-30.
Grund: Ergänzung hinzugefügt
Zuletzt bearbeitet: