Defect #46
usb-storage kernel-module von Linux blockiert die Verwendung von USB-devices bei VMWare und WinXX
| Status: | Erledigt | Start date: | ||
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | dsuchod | % Done: | 0% |
|
| Category: | konzept | |||
| Target version: | - | |||
| Resolution: | worksforme |
Description
Verwendet man unter SuSE-Linux 10.0 VMWare (egal ob player oder Vollversion) mit einem Windows-Image (geübt mit: 98/2000/XP) dann kann man auf einen USB-Stick oder ein USB-DVD oder eine USB-Festplatte nur genau einmal direkt nach dem booten zugreifen, wenn es frisch eingestöpselt wird. Hat man aber unter Linux schon einmal auf ein solches USB-device zugegriffen, dann kommt die Meldung, dass der Zugriff blockiert ist und man das entsprechende kernel-module von Hand entladen soll. Für den Stick reicht es als root 'rmmod usb-storage' auszuführen und man hat dann nach einem erneuten einstöpseln wieder Zugriff auf den Stick. Das kommt am häufigsten vor. Bei einem USB-DVD heisst das module dann etwas anders, der Mechanismus ist aber der gleiche.
History
Updated by dsuchod almost 6 years ago
- Status changed from Neu to Erledigt
- Resolution set to worksforme
Das Problem sollte jetzt gefixt sein. Wenn vmware=yes in der Client-Konfiguration auftaucht, wird ein /etc/udev/rules.d/01-udev-vm.rules generiert, welches zum Testen, ob VMware läuft auf var/X11R6/bin/vm-udev zugreift. Letzteres wird ebenfalls nur bei vmware=yes angelegt.
#!/bin/sh
# /var/X11R6/bin/vm-udev Script for blocking linux from handling usb devices
# during vmware sessions. If you like to remove certain modules add them
# to the list below - Dirk von Suchodoletz, <dirk@goe.net>
RET=1
ps aux |grep -i vmware| grep -v "grep" &>/dev/null && {
RET=0
rmmod usb-storage & >/dev/null
}
exit $RET
}
Für die ältere 9.3 gibts eine andere Lösung, die dann /etc/hotplug.d/usb/50-...
patcht.
Updated by dsuchod almost 6 years ago
Das Skript kann man auch noch so erweitern, dass auch andere Devices zur
Sicherheit vorher nochmal entladen werden: Bluetooth, Headset, ... Bei
schon gesteckten Geräten klappt das Konzept dann aber nicht. Erstmal muss irgendein USB-Stack das Event mitkriegen, reines Polling zwischendurch reicht wohl nicht ...
Updated by anonymous almost 6 years ago
Einige Änderungen:
/var/X11R6/bin/vm-udev
STATE=1
ps aux |grep -i vmware| grep -v "grep" &>/dev/null && STATE=0
echo "$1 $ACTION $STATE" >> /tmp/blub
[ x$ACTION = xremove ] && { [ $STATE = 0 ] && /sbin/rmmod usb-storage &>/dev/null; }
exit $STATE
und in /etc/udev/rules.d/01-udev-vm.rules
SUBSYSTEM=="usb", ACTION=="add", PROGRAM="/var/X11R6/bin/vm-udev", OPTIONS="ignore_device" SUBSYSTEM=="usb", ACTION=="remove", PROGRAM="/var/X11R6/bin/vm-udev"