ich hatte gerade eine sich verselbständigende Maus die meinen Computer bedient hat, bis irgendwann ein Bluescreen kam. Ich habe nun meinen cp2102 usb ttl Wandler dafür ausfindig gemacht. Anscheinend hat der ein HID device emuliert, aber wie kann das sein?
Habe erstmal den Treiber deinstalliert, aber der kommt natürlich beim nächsten mal wieder.
Mit usbdeview24 alle Treiber löschen, wirklich alle auf einmal !
Dann mit dem Einschaltknopf (10s drücken) PC ausschalten.
Erneut eunschalten, warten und alles wichtige ist korrekt wieder eingerichtet.
Anscheinend hat der ein
HID device emuliert, aber wie kann das sein?
Hat er nicht, sondern das Ding hat sich verhalten wie eine serielle Schnittstelle, an der eine serielle Maus angeschlossen ist.
Aus irgendwelchen Gründen schleppt Windows /immer noch/ die Unterstützung für diese fossilen Eingabegeräte mit sich herum, dabei dürfte schon vor der Jahrtausendwende damit aufgehört worden sein, so etwas herzustellen.
Also eine PS2 Maus. sowas habe ich gar nicht, da hängt nur ein µC dran. Interessant dass der CP2102 das verwechselt hat. Mit deaktivieren hat es geklappt. Danke.
Ich kenne das allerdings nur, wenn da ein Gerät dranhängt, das kontinuierlich Daten an den pc sendet, insbesondere binärformate… baudrate egal. ASCII mag auch funktionieren…
Nein, eine /serielle/ Maus. Die für den Anschluss an einer RS232-Schnittstelle vorgesehen ist. So funktionierten Mäuse lange vor der Erfindung von PS/2.
PS/2-Mäuse funktionieren nicht an seriellen Schnittstellen (auch wenn das PS/2-Protokoll ein serielles ist, ist es ein synchrones mit separaten Takt- und Datenleitungen und braucht daher komplett andere Hardware).
Um das loszuwerden, musst Du im Gerätemanager unter "Serielle Anschlüsse" deinen USB-Seriell-Adapter auffinden und mit einem Rechtsklick die Eigenschaften anzeigen lassen. Auf der Seite "Anschlusseinstellungen" gibt es einen "Erweitert"-Knopf, und im dann angezeigenten Dialog für erweiterte Einstellungen musst Du das Häkchen für "Plug & Play für serielle Schnittstelle" entfernen.
Hab es nicht gefunden, aber es scheint sich erledigt zu haben, konnte es nicht reproduzieren. (Upps, das mit dem Screenshot war nicht beabsichtigt.. Frau hat den Fernseher an)
Ich kenne das allerdings nur, wenn da ein Gerät dranhängt, das
kontinuierlich Daten an den pc sendet, insbesondere binärformate…
baudrate egal. ASCII mag auch funktionieren…
Danke ich hab das als .reg umbenannt und per Doppelklick eingetragen. Es kann sein der µC hat nämlich Daten gesendet (soll er ja auch, deswegen hab ich den CP2102 ja dran damit ich die Daten sehe)
Danke ich hab das als .reg umbenannt und per Doppelklick eingetragen. Es
kann sein der µC hat nämlich Daten gesendet (soll er ja auch, deswegen
hab ich den CP2102 ja dran damit ich die Daten sehe)
Hab es nicht gefunden, aber es scheint sich erledigt zu haben, konnte es
nicht reproduzieren.
Das passiert, wenn beim Systemstart irgenwelche Aktivität an einem COM-Port besteht, also der Peer irgendwas sendet. Auch wenn der vom PC empfangene Inhalt nicht dem seriellen Mausprotokoll entspricht, wird trotzdem oft eine erkannt. Warum auch immer.
Jedenfalls ist für diese Erkennung ein Dienst zuständig. Denn kann man dauerhaft (und natürlich für alle COM-Schnittstellen) deaktivieren. Eine Konsole mit Adminrechten öffnen und folgendes Kommando absetzen:
Aus irgendwelchen Gründen schleppt Windows /immer noch/ die
Unterstützung für diese fossilen Eingabegeräte mit sich herum, dabei
dürfte schon vor der Jahrtausendwende damit aufgehört worden sein, so
etwas herzustellen.
Da spricht der Experte.
Auch heutzutage werden die Chips verbaut.
Da spricht der Experte.
Auch heutzutage werden die Chips verbaut.
Ach ja? "Die Chips" also. Welche denn? Welche in diesem Jahrtausend oder gar Jahrzehnt hergestellte Maus funktioniert denn an einer seriellen Schnittstelle?
(Nein, eine "GPS-Maus" ist keine Maus, sondern nur eine völlig idiotische Bezeichnung für GPS-Empfänger)
Unsinn. Mäuse zum Anschluss an echte serielle (COM) Ports sind seit Jahrzehnten nicht mehr üblich - ja, ich bezweifele sogar, das es je optische RS232 Mäuse gab.
Die hatten alle noch die Kugel unten drin, wie die alte Maus an meinem SE/30. Auch ein Scrollwheel und mehr als 3 Buttons waren damals nicht üblich.
'sermouse' Service kann man also ruhigen Gewissens abschalten.
Welche in diesem Jahrtausend oder
gar Jahrzehnt hergestellte Maus funktioniert denn an einer seriellen
Schnittstelle?
Keine. Und es wird auch fast niemand mehr so eine einfache serielle Maus in Betrieb haben.
Aaaber: Es gab auch andere Eingabegeräte, die das serielle Mausprotokoll sprachen. Und einige davon könnten durchaus noch aktiv in Benutzung sein. Es geht da um die Vorläufer heutiger Touchpads oder Penpads. Ewiggestrige, die exzessiv steinalte Software benutzen, sind die Kandidaten für sowas. Naja, die dürfen den Dienst halt nicht abschalten.
Alle anderen (geschätzt >99,9%) schon, die brauchen diesen Dienst nicht und werden ihn auch niemals wieder brauchen.
Es geht da um die Vorläufer heutiger Touchpads oder Penpads.
Die müssen dann aber auch schon präkolumbianisch sein, mit was anderem als USB-Anschluss habe ich sowas auch schon sehr, sehr lange nicht mehr gesehen.
Ich habe nun remote in \\Computer\C$\Users\Name\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup eine .bat Datei platzieren können, die das wieder rückgängig machen soll. in die .bat Datei habe ich regedit.exe /s datei.reg eingetragen. Trotzdem kommt ein Eingabedialog. Kennt jemand noch einen anderen Trick wie ich das korrigiert bekomme? Vielleicht ein ENTER per cmd line hinterher schießen? Remote Registry hat nicht geklappt (von Windows XP auf Windows 7)
edit1: Dateipfad vergessen. Der Dialog kam nur weil die .reg Datei auch im Startup Ordner liegt. Jetzt blockiert aber der Virenschutz, den muss ich auch noch abschalten.
edit2: hat geklappt. habe nun Tastatur und Maus zurück.
Aus irgendwelchen Gründen schleppt Windows immer noch die
Unterstützung für diese fossilen Eingabegeräte mit sich herum
Das ist ja nicht das Problem. Das Problem ist, dass dieser fossile Bug
immer noch mitgeschleppt wird. Es wäre ein Leichtes, bei der Erkennung
des BallPoint erst einmal ca. 30 Bytes zu lesen und diese auf
Plausibilität zu prüfen. Ist Microsoft zu dumm, das hinzubekommen,
könnte als Work-Around die Erkennung des BallPoint per Default einfach
deaktiviert werden (eine Registry-Eintrag gibt es dafür ja schon).
Beides ist bisher nicht geschehen, obwohl die Microsoft-Foren voll von
Anfragen zu diesem Problem sind.
Bei mir ist das Problem auch schon aufgetreten, geschickterweise kurz
vor einer Vorführung vor hohem Besuch. Innerhalb kürzester Zeit hat die
wild gewordene Maus den Desktop verunstaltet (Taskleiste an den linken
Bildschirmrand verschoben und verbreitert, Hintergrundbild geändert und
noch ein paar Dinge mehr). Mit ähnlichen Wahrscheinlichkeit hätte sie
auch die Festplatte formatieren können, was zum Glück nicht geschah.
Dieser Bug aus Windows-95-Zeiten kann durchaus als Sicherheitsrisiko
angesehen werden, wurde aber innerhalb von fast drei Jahrzehnten immer
noch nicht gefixt.
Im Moment habe ich ein Windows ohne Tastatur und Maus. Mal sehen wie ich
das rückgängig kriege.
Ich bekenne mich schuldig, ich habe eine falsche regdatei gepostet und suche gerade vergeblich der korrekten Lösung. Ich schreibe jetzt einen Moderator an und bitte um Löschung der Datei.
Das Problem ist, dass dieser fossile Bug
immer noch mitgeschleppt wird. Es wäre ein Leichtes, bei der Erkennung
des BallPoint erst einmal ca. 30 Bytes zu lesen und diese auf
Plausibilität zu prüfen.
So einfach ist das nicht, einerseits wird der Ballpoint von sich aus gar nicht so viel senden, und es gab schließlich auch andere serielle Mäuse, die genau ein einziges Byte von sich gegeben haben. Und die mussten schließlich auch erkannt werden können.
Die originäre serielle Maus beispielsweise sendete beim Anlegen der Versorgungsspannung genau ein Byte, ein 'M' mit 1200 Baud bei 7n1.
Andere Mäuse sendeten '3' (Logitech) oder 'Z' (Maus mit Scrollrad).
Wieder andere (so auch der Ballpoint hier) sendeten mehrere Zeichen, ein "M" zum Start und dann noch wohl elf weitere zur genaueren Idenfikation.
Mit Deinem "es wäre ein Leichtes" würde also gar keine serielle Maus erkannt werden.
Mehr Daten sendet die Maus erst dann, wenn sie aktiv bewegt wird oder ihre Tasten betätigt werden, aber darauf kann bei der automatischen Erkannung logischerweise nicht gewartet werden.
Mehr Daten sendet die Maus erst dann, wenn sie aktiv bewegt wird oder
ihre Tasten betätigt werden, aber darauf kann bei der automatischen
Erkannung logischerweise nicht gewartet werden.
Wieso nicht? Bevor der Benutzer die Maus zum ersten Mal bewegt, muss
auch der Treiber noch nicht aktiv sein. Sobald die Maus bewegt wird,
sind die 30 Bytes im Bruchteil einer Sekunde beisammen, und der Treiber
kann entscheiden, ob es sich um eine Maus mit einem bestimmten Protokoll
oder um ein anderes Gerät handelt. Für den Benutzer stellt sich dies so
dar, dass die Maus bei der ersten Bewegung etwas verzögert anspricht,
danach läuft alles rund wie gewohnt.
Die originäre serielle Maus beispielsweise sendete beim Anlegen der
Versorgungsspannung genau ein Byte, ein 'M' mit 1200 Baud bei 7n1.
Andere Mäuse sendeten '3' (Logitech) oder 'Z' (Maus mit Scrollrad).
Mit nur einem einzelnen Zeichen zur Identifikation ist natürlich keine
zuverlässige Erkennung möglich.
Wieder andere (so auch der Ballpoint hier) sendeten mehrere Zeichen, ein
"M" zum Start und dann noch wohl elf weitere zur genaueren Idenfikation.
Wenn die elf Zeichen gut durchmischt sind und tatsächlich auch vom
Treiber bei der Erkennung überprüft werden, ist die Wahrscheinlichkeit
einer fehlerhaften Erkennung praktisch 0. Dann dürfte es aber nicht zu
dem hier diskutierten Problem kommen.
Laut diesem Artikel reicht aber schon das Senden eines 'B', um von
Windows als BallPoint erkannt zu werden:
Wieso nicht? Bevor der Benutzer die Maus zum ersten Mal bewegt, muss
auch der Treiber noch nicht aktiv sein.
Doch, damit die Schnittstelle sicher als belegt gilt und nicht irgendwelche oberschlauen anderen Programme daherkommen und durch "Proben" versuchen, herauszufinden, ob sie ihre Geräte daran finden können.
Mit nur einem einzelnen Zeichen zur Identifikation ist natürlich keine
zuverlässige Erkennung möglich.
Tja, so waren halt in den 80ern serielle Mäuse designt. Man hatte ja nichts anderes.
(Es gab auch sogenante "Busmäuse" mit ISA-Steckkarten, die aber waren einerseits noch teurer*, und andererseits belegten sie einen 8-Bit-ISA-Slot, der nicht überall verfügbar war. Vom Gehampel mit freien Interruptleitungen ganz zu schweigen)
*) 1988 kostete eine einfache serielle Zwei-Tasten-Kugelmaus 250 DM. Eine Maus!
Wieso nicht? Bevor der Benutzer die Maus zum ersten Mal bewegt, muss
auch der Treiber noch nicht aktiv sein.
Doch, damit die Schnittstelle sicher als belegt gilt und nicht
irgendwelche oberschlauen anderen Programme daherkommen und durch
"Proben" versuchen, herauszufinden, ob sie ihre Geräte daran finden
können.
Wenn die Geräteerkennung dieser Programme nicht genauso unzuverlässig
ist wie die des BallPoint-Treibers, ist das ja völlig in Ordnung. Wenn
sie hingegen einen echten BallPoint irrtümlicherweise als etwas anderes
erkennen, gehören sie natürlich ebenso gefixt wie der BallPoint-Treiber.
Bei Programmen, die die serielle Schnittstelle einfach als solche
nutzen, ohne einen bestimmten Gerätetyp dahinter anzunehmen (wie bspw.
ein Terminalprogramm), ist die Belegung der Schnittstelle ebenfalls in
Ordnung, da diese hier explizit vom Benutzer ausgewählt wird, der ja
genau weiß, was er will. Das ist vermutlich die Situation des TE, in der
ihm der BallPoint-Treiber dazwischengefunkt hat.
Wenn die Geräteerkennung dieser Programme nicht genauso unzuverlässig
ist wie die des BallPoint-Treibers, ist das ja völlig in Ordnung. Wenn
sie hingegen einen echten BallPoint irrtümlicherweise als etwas anderes
erkennen, gehören sie natürlich ebenso gefixt wie der BallPoint-Treiber.
Einfacher wäre es, die automatische Unterstützung für "serielle Mäuse" rauszuwerfen. Die braucht schon sehr, sehr lange niemand* mehr, und die stört schon seit Jahrzehnten immer wieder viele Leute.
Ältere Versionen von Windows NT hatten deswegen sogar einen Kernelparameter namens "noserialmice" ...
*) die geschätzt an einer Hand abzählbaren Leute, die sowas immer noch brauchen, die können dafür gezielt passende Software installieren. Das ist denen zuzumuten.
Ist Microsoft zu dumm, das hinzubekommen, könnte als Work-Around die
Erkennung des BallPoint per Default einfach deaktiviert werden (eine
Registry-Eintrag gibt es dafür ja schon).
Dann hätten Freunde antiker Eingabegeräte nach wie vor die Möglichkeit,
diese ohne große Verrenkungen zu nutzen.
Aber Microsoft scheint ja nicht einmal das zu schaffen.
Aber Microsoft scheint ja nicht einmal das zu schaffen.
Vermutlich arbeitet dort an der Software schon seit Jahrzehnten niemand mehr, der überhaupt weiß, was eine serielle Maus ist. Man wird davon ausgehen müssen, daß die da im Schnitt 25 Jahre alt sind, und ganz furchtbar im Team und agil und scrum und continuous integrative und so arbeiten.
Da wird Grundlagenwissen oder gar strategischer Überblick komplett dem Marketing überlassen.
PS/2-Mäuse funktionieren nicht an seriellen Schnittstellen (auch wenn
das PS/2-Protokoll ein serielles ist, ist es ein synchrones mit
separaten Takt- und Datenleitungen und braucht daher komplett andere
Hardware).
Jain, es gab Adapter, mit denen man PS/2-Mäuse am Serial-Anschluß betreiben konnte.
Witzigerweise waren dieses reine Drahtadapter.
Die Mäuse mußten also mit den Signalen und den Spannungen der RS-232-Schnittstelle klarkommen.
Wieso nicht? Bevor der Benutzer die Maus zum ersten Mal bewegt, muss
auch der Treiber noch nicht aktiv sein. Sobald die Maus bewegt wird,
sind die 30 Bytes im Bruchteil einer Sekunde beisammen, und der Treiber
kann entscheiden, ob es sich um eine Maus mit einem bestimmten Protokoll
oder um ein anderes Gerät handelt.
Andere Lösung: Eigene Geräte mit nativem USB-Protokoll ausstatten statt virtuelle Serial-Ports zu nutzen, dann passiert sowas nicht, denn USB enthält einen wohlspezifizierten Enumerationsmechanismus und braucht keine Heuristik über einzelne "M"-Bytes oder so ;-) Und an Windows-Systemeinstellungen braucht man da auch nicht zu drehen.
Jain, es gab Adapter, mit denen man PS/2-Mäuse am Serial-Anschluß
betreiben konnte.
Witzigerweise waren dieses reine Drahtadapter.
Die Mäuse mußten also mit den Signalen und den Spannungen der
RS-232-Schnittstelle klarkommen.
Diese Mäuse waren dann /bilinguale/ Mäuse. Man durfte auch nur die /explizit/ dafür ausgelegten Mäuse mit den dazugehörenden Adaptern verwenden.
Später gab es das gleiche Konzept nochmal, da gab es sowohl bilinguale Mäuse als auch bilinguale Tastaturen. Diese konnten wahlweise an einem PS/2- als auch an einem USB-Anschluss betrieben werden.
Aber auch hier war eine Funktion nur dann gegeben, wenn die Geräte /explizit/ dafür ausgelegt waren.