Hallo Forum,
ich habe ein Problem mit meiner Maus. Die deaktiviert sich nach ca. 2s. Ich kann dann den Mauszeiger nicht mehr bewegen. Ein Klick aktiviert sie wieder, aber nach 2s steht der Mauszeiger wieder. Wenn ich die Maus ständig bewege, passiert das nicht.
Das Problem tritt erst auf, seitdem ich das aktuelle Online-Update eingespielt habe.
Es tritt auf zwei Rechnern auf. (einmal 32bit und einmal 64bit).
Ich verwende WindowMaker, aber die Maus wird bereits beim Login (kwm) deaktiviert und ein Umschalten auf Gnome hat auch keine Abhilfe gebracht.
Während ich das hier schreibe, macht die Tastatur auch Zicken. Es werden einzelne Tasten verschluckt bzw. die Enter-Taste erzeugt mehrere Anschläge. Das ist aber nicht reproduzierbar. Die Entropie der Tastatur ist aber deutlich angestiegen.
Maus und Tastatur sind per USB an einem KVM-Switch angeschlossen. Bei der Maus handelt es sich um eine Sharkoon Fireglider, die eine einstellbare DPI-Zahl hat. Diese wird durch die Farbe einer LED angezeigt. Wenn die Maus sich deaktiviert, geht diese Status-LED aus.
Auf dem zweiten Rechner war das Problem vor dem Installieren der letzten Updates nicht zu beobachten. Auf einem dritten Rechner läuft Windows und dort gibt es mit der Maus keine Probleme, so dass sich einen Hardware-Defekt relativ sicher ausschließen kann.
Hat jemand eine Idee, wo ich nachschauen kann, bzw. welche Config das steuert?
Oder muss ich bis zum nächsten Update damit leben?
führen zwar zum Erfolg, aber nur bis zum nächsten Disconnect. Wenn ich mit dem KVM-Umschalter auf einen anderen Rechner wechsele und wieder zurück schalte, wird die USB-Maus wieder neu verbunden und die schöne Autosuspend-Einstellung ist wieder weg.
Gibt’s da ein Skript, das bei jedem Anstöpseln eines USB-Geräts ausgeführt wird?
Da könnte ich dann das Autosuspend für die Maus wieder abschalten.
Wenn nach dem letzten Kernel Update (2.6.34.4-0.1) das USB Tastatur/Maus Autosuspend Bug euch erwischt hat, koennt ihr foldgendes dagegen tun:
In ein Terminal als root folgendes eingeben:
** -d /usr/local/bin ] || mkdir /usr/local/bin**
In ein Texteditor (wie z.B. kwrite) den gesamten Text unten kopieren/einfuegen.
#! /bin/bash
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Displays list of all USB devices and for each device
# prompts user with option to disable autosuspend for
# the device. If user answers Yes for any device,
# then it disables autosuspend and asks user whether this
# solved the problem. If yes, the command to disable
# autosuspend will be appended to /etc/rc.d/boot.local
# and the script will exit (you might have to run it
# again if freezing affects other devices).
#
# The device names displayed are not always obvious!
# For example, Ms$ products are just called "Microsoft Corp.'
#
# Based on script posted here
# http://forums.opensuse.org/english/get-help-here/hardware/445907-keyboard-mouse-freezes-10.html#post2221371
# by afgun
# Thanks go to him!
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for dir in $(ls /sys/bus/usb/devices/*/idVendor | awk -F "/" '{ if ($6 !~ /usb/ ) print $6}'); do
file="/sys/bus/usb/devices/$dir/power/autosuspend"
for id in $(lsusb | awk '{printf "%d:%d:%s
", $2, $4, $6}'); do
if $(cat /sys/bus/usb/devices/$dir/busnum):$(cat /sys/bus/usb/devices/$dir/devnum):$(cat /sys/bus/usb/devices/$dir/idVendor):$(cat /sys/bus/usb/devices/$dir/idProduct) = $id ]; then
bus=$(printf "Bus %03d Device %03d: ID %s" $(echo $id| cut -d: -f1) $(echo $id | cut -d: -f2) $(echo $id | cut -d: -f3-4));
dev=$(lsusb | sed -n "s/$bus//p")
printf "disable autosuspend for device %s ? [y|n]" "$dev"
read -N 1 -t 60 -s YesNo
printf "
"
YesNo=$(echo $YesNo | tr ":upper:]" ":lower:]")
case $YesNo in
y)
echo -1 > $file
read -N 1 -t 60 -s -p "Did it solve the freezing problem? [y|n]" solved
solved=$(echo $solved | tr ":upper:]" ":lower:]")
printf "
"
if "$solved" == "y" ] ; then
grep -q "$file" /etc/rc.d/boot.local && exit
cat >> /etc/rc.d/boot.local << EOFBLPATCH
# workaround for usb autosuspend bug introduced by kernel update 2.6.34.4-0.1
# delete these 3 lines when no longer needed (hopefully soon)
echo -1 > $file
EOFBLPATCH
grep -q "$file" /etc/rc.d/boot.local && exec printf "
/etc/rc.d/boot.local has been modified.
"
fi
;;
n)
;;
esac
fi
done
done
Die Datei disableUsbAutosuspend benennen und im Verzeichnis /usr/local/bin speichern
Nun fogendes in Terminal eingeben: chmod 755 /usr/local/bin/disableUsbAutosuspend
Zum Schluss das Skript einfach so ausfuehren: /usr/local/bin/disableUsbAutosuspend
Die Fragen beantworten. Es wirkt sofort.
Es kling ja sehr vereinfacht. Aber einige Leute haetten das auch gut gebraucht.
Wenn ich mit dem KVM-Umschalter auf einen anderen Rechner wechsele und wieder zurück schalte, wird die USB-Maus wieder neu verbunden und die schöne Autosuspend-Einstellung ist wieder weg.
Gibt’s da ein Skript, das bei jedem Anstöpseln eines USB-Geräts ausgeführt wird?
Da könnte ich dann das Autosuspend für die Maus wieder abschalten.
Das Problem habe ich naemlich auch. Wenn Du diese Zeile and Ende der Datei /etc/rc.d/boot.local geschrieben hast, kannst Du die auch noetigerweise wieder ausfuehren (standardmaessig gibt es nichts anderes in der Datei). Du kannst auch ein Alias machen, so in der Art:
alias aa=/etc/rc.d/boot.local
Dann einfach ‘aa’ eintippen.
Es wird hoffentlich nur bis zum naechsten Kernel Update noetig sein.
Also, die optimale Loesung ist nicht in einem Skript sondern in einer udev-Regel.
Wir haben’s hier : Keyboard & mouse freezes
Dann gibt es auch kein Aerger mehr mit KVM Switches.
Könnte mir das bitte jemand nochmals Idiotensicher erklären.
Bisher war alles ok, aber so kann mann das OS nicht nutzen.
Als Neuling ist das der Killermoment für SUSE.
Lohnt ein warten auf das komende Kernelupdate?
Hast du den kompletten Code oben als Skript abgelegt oder fehlt da evtl. noch was?
Ansonsten würde ich den oben angesrochenen Weg über die udev-Regel bevorzugen.