Hallo Liste, ihr seid meine letzte Chance! Die folgende Frage habe ich schon in fast alle mir bekannten Newsgroups und relevanten Listen gestellt, aber leider keine Antwort bekommen. Deshalb, auch wenn ich damit leicht OT bin, hier mein Problem: Ich habe mir ein kleines, embedded Linux mit folgenden Specs zusammengebastelt, welches ein POS/POI-System werden soll: Kernel 2.4.18, XFree 4.1.0. Die Hardware ist ein 3,5-Zoll-SBC mit 533MHz-VIA-Eden-Prozessor und 128 MB Ram. Angeschlossen ist ein 12-Zoll-TFT mit Touchscreen an ttyS0. Im Normalbetrieb läuft der Rechner ohne Keyboard und Maus, mit einer Software die eben nur mit dem o.a. Touchscreen bedient wird. Ab und zu aber, zur Wartung, sollte auch mit Tastatur und/oder Maus daran gearbeitet werden können. Tastatur und Maus hängen dann beide am PS/2-Port. Es gibt zwei Varianten, in denen das System korrekt läuft, einmal wenn nur der Touchscreen dran ist, und einmal wenn alles, also Touch, Keyboard und Maus angeschlossen sind. Was _nicht_ funktioniert, ist wenn Touch und Tastatur, aber keine Maus dran hängen. Dann geht nämlich auch die Tastatur nicht. Scheinbar ignoriert X die PS/2-Schnittstelle komplett, wenn eine Maus daran konfiguriert, aber nicht vorhanden ist. Normalerweise würde X dann ja gar nicht starten, dafür habe ich ein ServerFlag im Konfig-File stehen. Dafür brauche ich dringend einen Workaround. Leider ist es nicht möglich, mit der Maus auf andere Schnittstellen wie serielle oder USB auszuweichen. Hier angehängt die derzeitige XF86Config: ---8<------------------------------------------------------------------- Section "Module" Load "dbe" SubSection "extmod" Option "omit xfree86-dga" EndSubSection Load "type1" Load "freetype" EndSection # ********************************************************************** # Files section. This allows default font and rgb paths to be set # ********************************************************************** Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/local/" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection # ********************************************************************** # Server flags section. # ********************************************************************** Section "ServerFlags" Option "AllowMouseOpenFail" "1" EndSection # ********************************************************************** # Input devices # ********************************************************************** Section "InputDevice" Identifier "Keyboard1" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "de" EndSection # ********************************************************************** # Core Pointer's InputDevice section # ********************************************************************** Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "PS/2" Option "Device" "/dev/mouse" EndSection Section "InputDevice" Identifier "ELO_touchscreen" Driver "elographics" Option "Device" "/dev/ttyS0" Option "MinimumXPosition" "4150" Option "MaximumXPosition" "45" Option "MinimumYPosition" "4150" Option "MaximumYPosition" "45" Option "UntouchDelay" "10" Option "ReportDelay" "10" Option "SendCoreEvents" "yes" EndSection Section "InputDevice" Identifier "touchscreen0" Driver "mutouch" Option "Type" "finger" Option "Device" "/dev/ttyS0" Option "MinimumXPosition" "1076" Option "MaximumXPosition" "14486" Option "MinimumYPosition" "1443" Option "MaximumYPosition" "14703" Option "ScreenNumber" "0" Option "ReportingMode" "Scaled" Option "ButtonNumber" "1" Option "SendCoreEvents" EndSection # ********************************************************************** # Monitor section # ********************************************************************** Section "Monitor" Identifier "My Monitor" HorizSync 31.5 - 37.9 VertRefresh 50-90 EndSection # ********************************************************************** # Graphics device section # ********************************************************************** Section "Device" Identifier "Standard VGA" VendorName "Unknown" BoardName "Unknown" Driver "vesa" EndSection Section "Device" Identifier "My Video Card" Driver "vesa" VideoRam 8192 EndSection # ********************************************************************** # Screen sections # ********************************************************************** Section "Screen" Identifier "Screen 1" Device "My Video Card" Monitor "My Monitor" DefaultDepth 16 Subsection "Display" Depth 8 Modes "800x600" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "800x600" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "800x600" ViewPort 0 0 EndSubsection EndSection # ********************************************************************** # ServerLayout sections. # ********************************************************************** Section "ServerLayout" Identifier "Simple Layout" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" InputDevice "ELO_touchscreen" InputDevice "touchscreen0" EndSection ---8<------------------------------------------------------------------- Ich hoffe, irgendjemand von Euch kann mir da 'nen Tip geben. Danke schonmal... mfG, Jens
Hi Jens, On Tue, Nov 18, 2003 at 03:57:15PM +0100, Jens Nixdorf wrote:
Tastatur und/oder Maus daran gearbeitet werden können. Tastatur und Maus hängen dann beide am PS/2-Port. ^^^ ist das wirklich nur ein Port oder Standard (2 Ports)
Es gibt zwei Varianten, in denen das System korrekt läuft, einmal wenn nur der Touchscreen dran ist, und einmal wenn alles, also Touch, Keyboard und Maus angeschlossen sind. Was _nicht_ funktioniert, ist wenn Touch und Tastatur, aber keine Maus dran hängen. Dann geht nämlich auch die Tastatur nicht. Scheinbar ignoriert X die PS/2-Schnittstelle komplett, wenn eine Maus daran konfiguriert, aber nicht vorhanden ist. Normalerweise würde X dann ja gar nicht starten, dafür habe ich ein ServerFlag im Konfig-File stehen.
hmm, X Stört es hier gar nicht ob ich Maus und Tastatur dran habe oder nur Tastatur?
Dafür brauche ich dringend einen Workaround. Leider ist es nicht möglich, mit der Maus auf andere Schnittstellen wie serielle oder USB auszuweichen.
Heisst das nur du kannst die dort nicht anschliessen oder dass dein System dann immernoch besteht? Vielleicht hilft Dir ja folgendes. Workaround: Rechner im Runlevel 3 starten und über ein Skript das im Runlevel 3 gestartet wird den Link auf eine funktionierende XF86Config setzen. Dazu musst du aber halt erst mal etwas tüfteln und schaun wann X deine Tastatur erkennt. Bzw. was du dazu in die XF86Config eintragen musst. Das Runlevel kannst du am Bootprompt ändern und wenn du zur Wartung in rc3 warst dann einfach per startx weiter. Andererseits wozu brauchst du zur Wartung X? *g* In Runlevel 5 hast du dann ein Script das immer einen Link auf deine default XF86Config setzt. Alternativ kannst du natürich auch bei jedem Start eine Abfrage einbauen, welche XF86Config benutzt werden soll. Dann sparst du dir den Runlevelwechsel. Greetings Daniel -- "Die Summe der Intelligenz auf unserem Planeten ist konstant, aber die Bevoelkerung waechst."
Ah! Endlich mal eine Antwort ;) Daniel Lord schrieb: [PS/2-Port]
ist das wirklich nur ein Port oder Standard (2 Ports)
Standard, also zwei Ports. Wie die aber genau hardwaremäßig angebunden sind, weiß ich nicht.
hmm, X Stört es hier gar nicht ob ich Maus und Tastatur dran habe oder nur Tastatur?
Doch, es stört X eigentlich schon wenn keine Maus da ist. Wenn nur die Tastatur fehlt, stört das seltsamerweise nicht. Die Maus ist der CorePointer, da der Touchscreen kein CorePointer-Device ist (wird von X nicht als CorePointer akzeptiert). Ohne CorePointer startet X aber normalerweise nicht, sondern fällt mit entsprechender Fehlermeldung wieder auf die Konsole zurück. Also habe ich das ServerFlag "AllowMouseOpenFail" eingetragen, damit X trotzdem startet.
Heisst das nur du kannst die dort nicht anschliessen oder dass dein System dann immernoch besteht? Vielleicht hilft Dir ja folgendes.
Ich kann die da nicht anschliessen, weil es USB im System nicht gibt und die serielle(n) Schnittstelle(n) schon belegt sind.
Workaround: Rechner im Runlevel 3 starten und über ein Skript das im Runlevel 3 gestartet wird den Link auf eine funktionierende XF86Config setzen. Dazu musst du aber halt erst mal etwas tüfteln und schaun wann X deine Tastatur erkennt. Bzw. was du dazu in die XF86Config eintragen musst. Das Runlevel kannst du am Bootprompt ändern und wenn du zur Wartung in rc3 warst dann einfach per startx weiter. Andererseits wozu brauchst du zur Wartung X? *g* In Runlevel 5 hast du dann ein Script das immer einen Link auf deine default XF86Config setzt.
Damit kommen wir zum nächsten Punkt: Mein System hat keine Runlevel, beim Start wird per Autologin der einzige User angemeldet, und X startet automatisch mit dem Bedienprogramm als Login-Shell (quasi ein Kiosk-Modus). Die Tastatur funktioniert btw. in der Konsole ganz prima, unabhängig ob 'ne Maus da ist oder nicht. Erst wenn X startet und die Maus nicht ansprechen kann, schaltet X auch die Tastatur ab. Und zwar komplett, nicht mal die Numlock-LED kann ich ein- bzw. ausschalten. Gehe ich aus X raus, tuts auch die Tastatur wieder.
Alternativ kannst du natürich auch bei jedem Start eine Abfrage einbauen, welche XF86Config benutzt werden soll. Dann sparst du dir den Runlevelwechsel.
Ja, das wäre noch eine Möglichkeit, dann müsste ich "per Hand" die PS/2-Schnittstelle abfragen, ob da was angeschlossen ist. Davor schrecke ich eigentlich etwas zurück. Aber wenn ich nix anderes finde, bleibt mir wohl nichts anderes übrig. Mich würde auch interessieren, ob das normal ist bei X. An meinen normalen PC's kann ich das schlecht ausprobieren, da bei den "modernen" Linuxen ja immer gleich alles automatisch erkannt wird. Das ich darüber mal fluche...<g> mfG, Jens PS: Um Verwirrung vorzubeugen: In meinem Konfig-File sind zwei Touchscreens angegeben, das ist auch richtig so. Je nachdem was für ein Touch dran hängt, nimmt X da das richtige InputDevice.
participants (2)
-
Daniel Lord
-
Jens Nixdorf