Maus deaktiviert sich nach ca. 2s

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.:expressionless:

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?

Es ist ein Bug aus dem letzten Kernel Update .
Loesung gibt’s hier: Keyboard & mouse freezes
Es betrifft nur USB Tastatur und/oder Maus, keine PS/2.

Super, danke!
Das funktioniert prima.

Leider muss ich da jetzt doch nochmal nachhaken.

echo on > /sys/bus/usb/devices/1-1.3/power/control

oder

echo -1 > /sys/bus/usb/devices/1-1.3/power/autosuspend

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.

@ Alle (besonders Neulinge)

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:

  1. In ein Terminal als root folgendes eingeben:
    ** -d /usr/local/bin ] || mkdir /usr/local/bin**
  2. 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

  1. Die Datei disableUsbAutosuspend benennen und im Verzeichnis /usr/local/bin speichern
  2. Nun fogendes in Terminal eingeben:
    chmod 755 /usr/local/bin/disableUsbAutosuspend
  3. Zum Schluss das Skript einfach so ausfuehren:
    /usr/local/bin/disableUsbAutosuspend
  4. 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.

Diese Meldung erhalte ich nach dem ich den letzten Befehl eingegeben habe

/usr/local/bin/disableUsbAutosuspend: line 53: syntax error: unexpected end of file

Suse liegt auf der HDD nach Win7

Auch unter root kein Erfolg

leider keine Englisch-Kenntnisse

Nach jeden Eintrag im Terminal die Entertaste??

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.

Ich habe unter root im Terminal

-d /usr/local/bin ] || mkdir /usr/local/bin

eingegeben und Enter

dann in Kwrite

#! /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

Keyboard & mouse freezes

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

eingefügt und die Datei mit

disableUsbAutosuspend

in

/usr/local/bin

gespeichert.

Zurück im Terminal

chmod 755 /usr/local/bin/disableUsbAutosuspend

eingegeben und Enter.

Jetzt im Terminal

/usr/local/bin/disableUsbAutosuspend

eingegeben und Enter.

Ergebnis diese Meldung

/usr/local/bin/disableUsbAutosuspend: line 53: syntax error: unexpected end of file

Wo mach ich da etwas falsch?

Habe jetzt SUSE neu aufgesetzt, wird der Fehler beim kommenden Kernelupdate behoben sein?
Zur Zeit hab ich jetzt alle Updateversuche deaktiviert.