buchstabensalat
Anmeldungsdatum: 14. Dezember 2009
Beiträge: 85
|
Guten Morgen Forum, ich habe mir einen 3DConnexion Space Navigator zugelegt, den ich gerne als Maus nutzen möchte. Unter Windows (XP) habe ich das mit dem alternativen Treiber RBC9 wunderbar hinbekommen, unter Ubuntu Wily gelingt es mir nicht. Der SpaceNavigator wird im System erkannt:
| [ 2.141459] usb 1-1: Product: SpaceNavigator
[ 2.571581] input: 3Dconnexion SpaceNavigator as /devices/pci0000:00/0000:00:10.0/usb1/1-1/1-1:1.0/0003:046D:C626.0001/input/input8
[ 2.571836] logitech 0003:046D:C626.0001: input,hidraw1: USB HID v1.11 Multi-Axis Controller [3Dconnexion SpaceNavigator] on usb-0000:00:10.0-1/input0
|
Per udev-Rule habe ich ihn an /dev/input/spacenavigator gehängt
| KERNEL=="event[0-9]*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62[68]",MODE="0664", GROUP="plugdev", SYMLINK+="input/spacenavigator"
|
Um die Eingaben vom SN als Maus zu interpretieren, soweit mein Verständnis nach der Lektüre einiger zig Seiten, müsste ich jetzt über die /etc/X11/xorg.conf oder über /usr/share/X11/xorg.conf.d nur folgende Einträge vornehmen und das gute Stück sollte mausen:
1
2
3
4
5
6
7
8
9
10
11
12
13 | Section "ServerLayout"
InputDevice "3DMouse" "CorePointer"
...anderer Kram
EndSection
Section "InputDevice"
Identifier "3DMouse"
Driver "evdev"
Option "Name" "3Dconnexion"
Option "Pass" "3"
Option "Mode" "Relative"
Option "ConstantDeceleration" "15"
EndSection
|
Uuund - nix. LED dunkel, kein Wackler bringt auch nur ein Zucken hervor. xev zeigt Eingaben meines Logitech Trackballs an, aber nicht den SN.
Mein System ist ein Ubuntu Wily mit Mate als Desktop. Sicherheitshalber habe ich xserver-xorg-input-evdev, libevdev-tools und libevdev2:amd64 (nach)installiert. Keine Veränderung. Ich hatte zwischenzeitlich folgende weitere Versuche gestartet:
- 3DConnexion Treiber installiert. Lief, im Demoprogramm konnte ich den Cube bewegen. Auf dem Desktop weiterhin keine Bewegung des Mauszeigers. - Free spacenavd aus den Paketquellen: installiert sich, Daemon läuft, SN bewegt nichts. spnavcfg konnte ich nicht aufrufen. - Spacenavd 6.0 selbst kompiliert: installiert sich, Daemon läuft, spnavcfg aufrufbar, aber scheint nichts zu verändern - oder ich sehe es nicht, weil sich der Zeiger ja nicht bewegt. LED an- und ausschalten ging als einziges. - nach langem Googlen noch gefunden: https://github.com/mason-larobina/spnavkbd Scheitert aber, weil: "<builtin>: recipe for target 'spnavkbd' failed". Wäre ansonsten genau das, was ich gerne hätte. Noch zur Erklärung: ich "brauche" keine 3d-Funktionen, für 5 min Google Earth käme ich auch anders zurecht, aber wegen einer Rheumaerkrankung kann ich weder herkömmliche Mäuse noch meinen geliebten Trackball M570 langfristig weiter nutzen. Die Windowstests haben mir sehr gefallen und kommen meinen kaputten Gelenken auch sehr entgegen, da das gute Stück mit minimaler Kraft und Bewegung gut zu steuern ist. So, und nun noch die Technik:
| lspci -nnk | grep "VGA\|'Kern'\|3D\|Display" -A2
00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Mullins [Radeon R4/R5 Graphics] [1002:9851] (rev 05)
Subsystem: Hewlett-Packard Company Device [103c:22c2]
Kernel driver in use: fglrx_pci
--
01:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Jet XT [Radeon R5 M240] [1002:6664] (rev ff)
Kernel driver in use: fglrx_pci
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 10)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | xrandr --prop
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 16384 x 16384
LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
BACKLIGHT: 50
range: (0, 50)
SignalFormat: DisplayPort
ConnectorType: Panel
1366x768 59.99*+ 39.94
1280x768 59.99 39.94
1280x720 59.99 39.94
1024x768 59.99 39.94
800x600 59.99 39.94
640x480 59.99 39.94
DFP1 disconnected (normal left inverted right x axis y axis)
SignalFormat: TMDS
ConnectorType: HDMI
CRT1 disconnected (normal left inverted right x axis y axis)
SignalFormat: VGA
ConnectorType: VGA
|
Danke im Voraus,
bstabens
- forum.txt (48.4 KiB)
- Download forum.txt
- xorg.conf.txt (938 Bytes)
- Download xorg.conf.txt
|
Letalis_Sonus
Anmeldungsdatum: 13. April 2008
Beiträge: 12990
Wohnort: Oldenburg/Erlangen
|
Du musst dem Treiber schon irgendwie mitteilen, was er überhaupt ansteuern soll, es gibt mit InputDevice keine magische Zuordnung zur Hardware. Die Option "Name" gibt es auch gar nicht - weder beim evdev Treiber noch beim X Server selbst. Gleiches gilt für die "Pass" Option, das wird bestenfalls eine Warnung im Log verursachen. Mach dich mal über InputClass schlau, damit ist die Zuordnung einfach und flexibel.
|
buchstabensalat
(Themenstarter)
Anmeldungsdatum: 14. Dezember 2009
Beiträge: 85
|
Einfach und flexibel... wenn man sich auskennt, wahrscheinlich schon.
Wenn ich das Gelesene richtig verstehe, werden die alten "InputDevices" schlicht als "Input Class" in die xorg.conf.d ausgelagert?
Dort steht jetzt als 91-spacenav.conf (damit wirklich nichts aus Versehen überschreiben kann) folgendes:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | Section "InputClass"
Identifier "spacenav"
MatchProduct "3Dconnexion|SpaceNavigator|Space Navigator"
MatchDevicePath "/dev/input/spacenavigator"
Driver "evdev"
Option "ZRelativeAxisButton" "Off"
Option "XRelativeAxisMap" "0"
Option "YRelativeAxisMap" "1"
Option "ZRelativeAxisMap" "2"
Option "RXRelativeAxisMap" "3"
Option "RYRelativeAxisMap" "4"
Option "RZRelativeAxisMap" "5"
Option "ZRelativeAxisButtons" "off"
Option "AutoServerLayout" "on"
EndSection
|
Die Axis-Options kommen von der Free SpaceNav-Seite, wo aufgelistet ist, dass dies gerade nicht in der xorg.conf stehen darf...
Aber das Problem ist immer noch das gleiche. Das Gerät bewegt nichts und taucht auch bei xinput list nicht auf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M570 id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ HP Truevision HD id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ HP Wireless hotkeys id=14 [slave keyboard (3)]
↳ HP WMI hotkeys id=15 [slave keyboard (3)]
|
Und im Xorg.0.log steht auch immer noch
| [ 734.724] (II) config/udev: Adding input device 3Dconnexion SpaceNavigator (/dev/input/event6)
[ 734.724] (II) No input driver specified, ignoring this device.
[ 734.724] (II) This device may have been added with another device file.
|
Hast du da noch einen hilfreichen Hinweis?
|
Letalis_Sonus
Anmeldungsdatum: 13. April 2008
Beiträge: 12990
Wohnort: Oldenburg/Erlangen
|
Diese Zeilen beschreiben lediglich was der X Server bereits von sich aus macht. Wichtig ist, was in der Xorg.0.log über die Anwendung deiner InputClass steht - wenn die gar nicht erst in Betracht gezogen wird, stimmt etwas mit den Match Bedingungen nicht. Beim Device Path würde ich mich schon einfach an den ursprünglichen Node halten, ich bin mir nicht sicher ob das mit einem Symlink darauf funktionieren würde. Das kannst du einfach von den Beispielen im Wiki übernehmen: "/dev/input/event*"
|
iermar
Anmeldungsdatum: 15. Mai 2016
Beiträge: Zähle...
|
Hallo, habe auch so einen Space Navigator, und länger danach gesucht wie ich den für Google Earth verwenden kann. Als Maus hat er aber eigentlich gleich funktioniert. Ich benutze Ubuntu 14.04 mit Unity als Oberfläche. Das habe ich dazu getan. Eine udev-Regel festlegen mit:
| sudo bash -c 'echo KERNEL==\"event[0-9]*\", ATTRS{idVendor}==\"046d\", ATTRS{idProduct}==\"c626\", SYMLINK+=\"input/spacenavigator\", GROUP=\"plugdev\", MODE=\"0664\" > /etc/udev/rules.d/90-spacenavigator.rules'
|
noch das Paket installieren
| sudo apt-get install xserver-xorg-input-joystick
|
Nach einem Neustart erscheint nach einen
bei mir der Space Navigator. Der Mauszeiger lässt sich jetzt bereits bewegen. Das ist zwar auch nicht sehr komfortabel, weil es etwas zu langsam ist und mit den 6 Achsen irgendwie gewöhnungsbedürftig. Habe aber nicht herausgefunden wie sich das noch konfigurieren läßt. Das kann auch noch ein und ausgeschaltet werden. Ausschalten mit: | xinput set-int-prop "3Dconnexion SpaceNavigator" "Device Enabled" 8 0
|
Einschalten mit | xinput set-int-prop "3Dconnexion SpaceNavigator" "Device Enabled" 8 1
|
Vielleicht hilft dir das weiter. Ich habe diese Anleitung irgendwo im Netz gefunden und benutze den SN nur für Google Earth. Ich selbst verstehe nicht viel davon, was mit diesen Befehlen im Hintergrund passiert. Grüße
|
buchstabensalat
(Themenstarter)
Anmeldungsdatum: 14. Dezember 2009
Beiträge: 85
|
Hier erstmal für alle Suchenden:
der SpaceNavigator läuft mit dieser InputClass out of the box, ohne weitere udev-Regeln oder zusätzliche Treiber:
| Section "InputClass"
Identifier "spacenav"
MatchProduct "3Dconnexion|SpaceNavigator|Space Navigator"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "AutoServerLayout" "on"
Option "ButtonMapping" "1 3"
EndSection
|
Damit hat man linke und rechte Maustaste und eine X-Y-Bewegung. Leider kein Scrollen und DragnDrop ist damit recht unbequem. Man kann auch noch "Option "Emulate3Buttons" "true"" hinzufügen, bislang habe ich damit aber noch keinen Mittelklick erfolgreich hinbekommen. Ehrlich gesagt reicht mir das noch gar nicht. Ich möchte gerne auf die Push/Lift(Z)Achse noch Rechts- und Linksklick legen, um ein besseres DragnDrop hinzubekommen, sowie ein Scrollen über die Rotate-Achse. Das wäre Minimum. Ich habe daher den joystick-Treiber installiert und (sicherheitshalber per Hand) einen symbolischen Link auf den gerade aktuellen Event angelegt. Danach habe ich von hier: https://wiki.gentoo.org/wiki/SpaceNavigator
folgende InputClass "geklaut":
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | Section "InputClass"
Identifier "SpaceNavigator"
MatchProduct "3Dconnexion|SpaceNavigator|Space Navigator"
Driver "joystick"
Option "StartMouseEnabled" "true"
# X: move left/right - horizontal scroll
Option "MapAxis1" "mode=relative axis=+5zx deadzone=15000"
# Y: move up/down - vertical scroll
Option "MapAxis2" "mode=relative axis=+5zy deadzone=15000"
# Z: pull up / push down - right / left click
Option "MapAxis3" "mode=relative keyhigh=251 keylow=252 deadzone=2000"
# RY: tilt up/down - move pointer
Option "MapAxis4" "mode=relative axis=+5y deadzone=500"
# RX: tilt left/right (inverted) - move pointer
Option "MapAxis5" "mode=relative axis=-5x deadzone=500"
# RZ: twist left/right - horizontal scroll
Option "MapAxis6" "mode=relative axis=-10zy deadzone=5000"
# Button 2 - right click
Option "MapButton2" "button=3"
EndSection
|
Sobald ich aber diese InputClass in /usr/share/X11/xorg.conf.d/53-spacenav.conf packe, funktionieren nur noch die Buttons. jstest-gtk findet aber trotzdem keinen Joystick. (Grundsätzlich geht das schon, habe mit einem Logitech-Joystick die Gegenprobe gemacht: wurde problemlos erkannt.)
Das Xorg.log dazu:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 | [ 1955.478] (II) config/udev: Adding input device 3Dconnexion SpaceNavigator (/dev/input/event6)
[ 1955.478] (**) 3Dconnexion SpaceNavigator: Applying InputClass "spacenav"
[ 1955.478] (II) LoadModule: "joystick"
[ 1955.479] (II) Loading /usr/lib/xorg/modules/input/joystick_drv.so
[ 1955.479] (II) Module joystick: vendor="X.Org Foundation"
[ 1955.479] compiled for 1.16.0, module version = 1.6.2
[ 1955.479] Module class: X.Org XInput Driver
[ 1955.479] ABI class: X.Org XInput driver, version 21.0
[ 1955.479] (II) Using input driver 'joystick' for '3Dconnexion SpaceNavigator'
[ 1955.479] (**) 3Dconnexion SpaceNavigator: always reports core events
[ 1955.479] (**) 3Dconnexion SpaceNavigator (keys): Applying InputClass "spacenav"
[ 1955.479] (II) Using input driver 'joystick' for '3Dconnexion SpaceNavigator (keys)'
[ 1955.479] (**) 3Dconnexion SpaceNavigator (keys): always reports core events
[ 1955.479] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:10.0/usb1/1-1/1-1:1.0/0003:046D:C626.0001/input/input8/event6"
[ 1955.479] (II) XINPUT: Adding extended input device "3Dconnexion SpaceNavigator (keys)" (type: JOYSTICK, id 10)
[ 1955.482] (II) XKB: reuse xkmfile /var/lib/xkb/server-D378AD8F86E560F712A83EE36E4E5E92C595B9BD.xkm
[ 1955.482] (**) Option "Device" "/dev/input/event6"
[ 1955.482] (**) Option "StartMouseEnabled" "true"
[ 1955.482] (**) Option "MapButton2" "button=3"
[ 1955.482] (**) Option "MapAxis1" "mode=relative axis=+5x deadzone=500"
[ 1955.482] (**) Option "MapAxis2" "mode=relative axis=+5y deadzone=500"
[ 1955.482] (**) Option "MapAxis3" "mode=relative keyhigh=251 keylow=252 deadzone=2000"
[ 1955.482] (**) Option "MapAxis4" "mode=relative axis=+5zy deadzone=15000"
[ 1955.482] (**) Option "MapAxis5" "mode=relative axis=+5zx deadzone=15000"
[ 1955.482] (**) Option "MapAxis6" "mode=relative axis=-10zy deadzone=5000"
[ 1955.482] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:10.0/usb1/1-1/1-1:1.0/0003:046D:C626.0001/input/input8/event6"
[ 1955.482] (II) XINPUT: Adding extended input device "3Dconnexion SpaceNavigator" (type: JOYSTICK, id 11)
[ 1955.483] (II) Joystick: 3Dconnexion SpaceNavigator. bus 0x3 vendor 0x46d product 0xc626 version 0x111
[ 1955.483] (II) Joystick: found 0 axes, 2 buttons
[ 1955.492] JOYSTICK: DebugLevel set to 0
[ 1955.492] (**) 3Dconnexion SpaceNavigator: (accel) keeping acceleration scheme 1
[ 1955.492] (**) Option "ConstantDeceleration" "15"
[ 1955.492] (**) 3Dconnexion SpaceNavigator: (accel) constant deceleration by 15.0
[ 1955.492] (**) 3Dconnexion SpaceNavigator: (accel) acceleration profile 0
[ 1955.492] (**) 3Dconnexion SpaceNavigator: (accel) acceleration factor: 2.000
[ 1955.492] (**) 3Dconnexion SpaceNavigator: (accel) acceleration threshold: 4
[ 1955.494] (II) config/udev: Adding input device Logitech M570 (/dev/input/event7)
[ 1955.494] (**) Logitech M570: Applying InputClass "evdev pointer catchall"
[ 1955.494] (II) Using input driver 'evdev' for 'Logitech M570'
[ 1955.494] (**) Logitech M570: always reports core events
...
|
So, wie ich das sehe, packt er den SN zweimal rein? Einmal ID10, einmal ID11, und die ID11 überschreibt die ausführliche Konfiguration mit einer minimalen??? Können irgendwo sonst noch Konfigurationen herumliegen? Z. B. die Zeile hier: XKB: reuse xkmfile /var/lib/xkb/server-D378AD8F86E560F712A83EE36E4E5E92C595B9BD.xkm ? Ansonsten, wenn ich ihn als evdev starte, habe ich folgende Ausgabe:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | [ 3051.790] (II) config/udev: Adding input device 3Dconnexion SpaceNavigator (/dev/input/event6)
[ 3051.790] (**) 3Dconnexion SpaceNavigator: Applying InputClass "spacenav"
[ 3051.790] (II) Using input driver 'evdev' for '3Dconnexion SpaceNavigator'
[ 3051.790] (**) 3Dconnexion SpaceNavigator: always reports core events
[ 3051.790] (**) evdev: 3Dconnexion SpaceNavigator: Device: "/dev/input/event6"
[ 3051.790] (**) evdev: 3Dconnexion SpaceNavigator: ButtonMapping '1 3'
[ 3051.790] (--) evdev: 3Dconnexion SpaceNavigator: Vendor 0x46d Product 0xc626
[ 3051.790] (--) evdev: 3Dconnexion SpaceNavigator: Found 2 mouse buttons
[ 3051.790] (--) evdev: 3Dconnexion SpaceNavigator: Found relative axes
[ 3051.790] (--) evdev: 3Dconnexion SpaceNavigator: Found x and y relative axes
[ 3051.790] (II) evdev: 3Dconnexion SpaceNavigator: Configuring as mouse
[ 3051.790] (**) Option "Emulate3Buttons" "true"
[ 3051.790] (**) evdev: 3Dconnexion SpaceNavigator: YAxisMapping: buttons 4 and 5
[ 3051.790] (**) evdev: 3Dconnexion SpaceNavigator: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 3051.790] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:10.0/usb1/1-1/1-1:1.0/0003:046D:C626.0001/input/input8/event6"
[ 3051.790] (II) XINPUT: Adding extended input device "3Dconnexion SpaceNavigator" (type: MOUSE, id 10)
[ 3051.790] (II) evdev: 3Dconnexion SpaceNavigator: initialized for relative axes.
[ 3051.791] (**) 3Dconnexion SpaceNavigator: (accel) keeping acceleration scheme 1
[ 3051.791] (**) Option "ConstantDeceleration" "15"
[ 3051.791] (**) 3Dconnexion SpaceNavigator: (accel) constant deceleration by 15.0
[ 3051.791] (**) 3Dconnexion SpaceNavigator: (accel) acceleration profile 0
[ 3051.791] (**) 3Dconnexion SpaceNavigator: (accel) acceleration factor: 2.000
[ 3051.791] (**) 3Dconnexion SpaceNavigator: (accel) acceleration threshold: 4
[ 3051.792] (II) config/udev: Adding input device Logitech M570 (/dev/input/event7)
[ 3051.792] (**) Logitech M570: Applying InputClass "evdev pointer catchall"
[ 3051.792] (II) Using input driver 'evdev' for 'Logitech M570'
...
|
Hat da jemand ein erhellendes Lichtlein für mich? @Iermar: welche Distribution nutzt du, und kannst du mir mal deine InputClass für den SN geben? Danke,
Salat
|
Letalis_Sonus
Anmeldungsdatum: 13. April 2008
Beiträge: 12990
Wohnort: Oldenburg/Erlangen
|
buchstabensalat schrieb: Ehrlich gesagt reicht mir das noch gar nicht. Ich möchte gerne auf die Push/Lift(Z)Achse noch Rechts- und Linksklick legen, um ein besseres DragnDrop hinzubekommen, sowie ein Scrollen über die Rotate-Achse. Das wäre Minimum.
Das grundlegende Problem dabei ist, dass du zwar die Tasten und Achsen hin und her mappen kannst, aber ohne spezielle Unterstützung durch den Treiber nicht Achsen und Tasten gemischt werden können. Es mag zwar auf den ersten Blick etwas merkwürdig erscheinen, aber Scrollen wird ebenfalls über Tasten realisiert, was das benutzen einer Achse schwierig macht. buchstabensalat schrieb: So, wie ich das sehe, packt er den SN zweimal rein? Einmal ID10, einmal ID11, und die ID11 überschreibt die ausführliche Konfiguration mit einer minimalen???
xinput behandelt Geräte die den Mauszeiger bewegen und die die Tasten-Events auslösen getrennt. Auch eine normale Maus bekommt 2 IDs zugeordnet, einmal als Pointer Device und einmal als Keyboard Device. Das befindet sich allerdings alles eine Abstraktionsschicht höher - da hast du mit diesen Konfigurationsdateien gar kein Einfluss drauf, die behandeln das ganze nach wie vor nur wie ein einziges Gerät, da es nur ein einziges event Node besitzt.
|
buchstabensalat
(Themenstarter)
Anmeldungsdatum: 14. Dezember 2009
Beiträge: 85
|
Wenn ich da aber mal aus "man joystick" zitieren darf:
1
2
3
4
5
6
7
8
9
10
11
12
13 | Generating Key Events
Providing a "key=<scancode>[,<scancode>[...]]" option will generate X Events with the specified scancodes when the joystick button is pressed or the axis changed it's position. When the button/axis is released, the keys are released in the reverse order.
To lookup keycodes for KeySyms, you can use xmodmap -pk. You can use unused keycodes and map them to a KeySym of your choice using xmodmap(1) .
You can specify up to 4 scancodes per joystick button/axis, which is useful to use modificators. Make sure you use modificators that are necessary to get a certain keysym.
....
Option "MapAxis1" "mode=relative keylow=113 keyhigh=114 axis=0.5key"
Option "MapAxis2" "mode=relative keylow=111 keyhigh=116"
Option "MapAxis3" "mode=accelerated keylow=113 keyhigh=114"
Option "MapAxis4" "mode=accelerated keylow=111 keyhigh=116"
will map the first and third axis to the arrow keys left and right and the second and fourth axis to the arrow keys up and down. The keys for the first two axes will be generated in an interval according to the value of the axis. The autorepeat speed of the first axis will be half the speed of that of the second axis. The keys for the third and fourth axis are generated once when the axis moves out of the deadzone and when it moves back into the deadzone. X.Org will autorepeat those keys according to current keyboard settings.
|
Das scheint mir doch genau das zu sein, was ich möchte. Und wenn ich nochmal meine InputClass erwähnen darf:
| # Z: pull up / push down - right / left click
Option "MapAxis3" "mode=relative keyhigh=251 keylow=252 deadzone=2000"
|
macht doch nun genau das - es sendet key 251 beim Pull und 252 beim Push. Ja, ich sehe das Problem, wenn es sich da um Buttonklicks handelt - ich würde ja nur einen erzeugen wollen, nicht -zig.
Bislang wäre ich aber froh, wenn ich bis zu diesem Problem überhaupt käme, denn wie gesagt - die Achsen machen gar nix, nicht mal Bewegung. *seufz* Salat ***Nachtrag: durfte übrigens gerade feststellen, dass der RBC9-Treiber unter Windows 10 nicht mehr installierbar ist. Und kleine Joysticks (im Sinne von kleiner als der herkömmliche Neandertalerknüppel, aber größer als ein Zahnstocher mit Zwergwuchs) scheinen auch nicht mehr vorhanden zu sein. Gnarf.
|
iermar
Anmeldungsdatum: 15. Mai 2016
Beiträge: 8
|
Hallo, wie ich schon schrieb benutze ich Ubuntu 14.4 mit der Standard Oberfläche Unity.
In den von dir genannten Ordner /usr/share/X11/xorg.conf.d befindet sich keine Datei mit den Namen 53-spacenav.conf oder ähnlich. Ich selbst habe auch keine InputClass erstellt. Der SN funktioniert jetzt so. Durch schieben links/rechts und vor/zurück wird der Mauszeiger genau so bewegt. Durch kippen vor/zurück scrollt man rauf und runter. Durch drücken/ziehen scrollt man links rechts.Gleich ob das Fenster aktiv ist oder nicht. Linke Taste ist die linke Maustaste. Rechte Taste ist anders als die rechte Maustaste, hierbei wir markierte Text eingefügt also entspricht der mittleren Maustaste. Es ist aber schwierig so den Mauszeiger zu steuern, da ich immer mehrere Achsen auf einmal bewege, sind ja sehr feinfühlig.
|
buchstabensalat
(Themenstarter)
Anmeldungsdatum: 14. Dezember 2009
Beiträge: 85
|
iermar schrieb: Hallo, wie ich schon schrieb benutze ich Ubuntu 14.4 mit der Standard Oberfläche Unity.
Stimmt, schriebest du, hab ich überlesen. In den von dir genannten Ordner /usr/share/X11/xorg.conf.d befindet sich keine Datei mit den Namen 53-spacenav.conf oder ähnlich. Ich selbst habe auch keine InputClass erstellt.
Ebent. Die 53-spacenav.conf stammt ja auch von mir. Aber es muss ja Dateien in deiner xorg.conf.d geben, denn der SN wird ja erkannt. Interessante Standard-Dateien sind da sicherlich 50-joystick.conf und 10-evdev.conf. Vielleicht magst du mal ein Listing der xorg.conf.d zusammen mit diesen beiden Dateien einstellen, so dass ich mal gucken kann?
Der SN funktioniert jetzt so. Durch schieben links/rechts und vor/zurück wird der Mauszeiger genau so bewegt. Durch kippen vor/zurück scrollt man rauf und runter. Durch drücken/ziehen scrollt man links rechts.Gleich ob das Fenster aktiv ist oder nicht. Linke Taste ist die linke Maustaste. Rechte Taste ist anders als die rechte Maustaste, hierbei wir markierte Text eingefügt also entspricht der mittleren Maustaste. Es ist aber schwierig so den Mauszeiger zu steuern, da ich immer mehrere Achsen auf einmal bewege, sind ja sehr feinfühlig.
Und ich *wette*, dass das mit einer Deadzone geändert werden könnte... Ich habe den ganz starken Verdacht, wenn du folgendes auf dem Terminal eingibst: grep 'Joystick' /var/log/Xorg.0.log ...dann kommt da ein ...(II) Joystick: found 6 axes, 2 buttons in einer Zeile mit bei raus. Wäre jedenfalls sehr klasse von dir, dir die Mühe zu machen. Ich würde auch im Gegenzug dann eine conf für die oben beschriebene Einstellung posten - eine, bei der der Klick auf der Z-Achse liegt. ☺ Danke,
Salat
|
iermar
Anmeldungsdatum: 15. Mai 2016
Beiträge: 8
|
hier die Dateien die in /usr/share/X11/xorg.conf.d enthalten sind
| markus@EP43-UD3L:/usr/share/X11/xorg.conf.d$ ls
10-evdev.conf 50-joystick.conf 51-synaptics-quirks.conf
10-quirks.conf 50-synaptics.conf glamoregl.conf
11-evdev-quirks.conf 50-vmmouse.conf
11-evdev-trackpoint.conf 50-wacom.conf
|
hier die 50-joystick.conf
markus@EP43-UD3L:/usr/share/X11/xorg.conf.d$ cat 50-joystick.conf
Section "InputClass"
Identifier "joystick catchall"
MatchIsJoystick "on"
MatchDevicePath "/dev/input/event*"
Driver "joystick"
EndSection
hier die 10-evdev.conf
markus@EP43-UD3L:/usr/share/X11/xorg.conf.d$ cat 10-evdev.conf
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection Ich habe den ganz starken Verdacht, wenn du folgendes auf dem Terminal eingibst: grep 'Joystick' /var/log/Xorg.0.log ...dann kommt da ein ...(II) Joystick: found 6 axes, 2 buttons
Ja hast du Recht
markus@EP43-UD3L:/usr/share/X11/xorg.conf.d$ grep 'Joystick' /var/log/Xorg.0.log
[ 9.094] (II) Joystick: 3Dconnexion SpaceNavigator. bus 0x3 vendor 0x46d product 0xc626 version 0x110
[ 9.094] (II) Joystick: found 6 axes, 2 buttons
So dann kannst du weiter an einer vernünftigen Konfiguration üben. Und bei Erfolg hier mitteilen wird mich auch interessieren. Wenn du noch mehr Daten brauchst, jederzeit gerne.
|
iermar
Anmeldungsdatum: 15. Mai 2016
Beiträge: 8
|
Servus, nur mal so zur Info, habe den Space Navigator mal an meinen Uralt Laptop mit Lubunt 14.04 angeschlossen. Den Joystick Treiben xserver-xorg-input-joystick installiert und die von dir genannte InputClass erstellt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | markus@asus-A3H:/usr/share/X11/xorg.conf.d$ cat 53-spacenav.conf
Section "InputClass"
Identifier "SpaceNavigator"
MatchProduct "3Dconnexion|SpaceNavigator|Space Navigator"
Driver "joystick"
Option "StartMouseEnabled" "true"
# X: move left/right - horizontal scroll
Option "MapAxis1" "mode=relative axis=+5zx deadzone=15000"
# Y: move up/down - vertical scroll
Option "MapAxis2" "mode=relative axis=+5zy deadzone=15000"
# Z: pull up / push down - right / left click
Option "MapAxis3" "mode=relative keyhigh=251 keylow=252 deadzone=2000"
# RY: tilt up/down - move pointer
Option "MapAxis4" "mode=relative axis=+5y deadzone=500"
# RX: tilt left/right (inverted) - move pointer
Option "MapAxis5" "mode=relative axis=-5x deadzone=500"
# RZ: twist left/right - horizontal scroll
Option "MapAxis6" "mode=relative axis=-10zy deadzone=5000"
# Button 2 - right click
Option "MapButton2" "button=3"
EndSection
|
Einen Neustart, kenne den Befehl nicht zum neu einlesen dieser Konfigurationsdateien, und der SN funktioniert in etwas so wie du das haben wolltest. Kippen in alle vier Richtungen = Mauszeiger in alle vier Richtungen. Drehen = Scrollen. Ziehen/Drücken hat keine Funktion. Taste 1 = linke Maustaste, Taste 2 ist rechte Maustaste. Die Steuerung ist jetzt schon brauchbar, aber noch schwammig. Meine damit z. B. wenn man nur Scrollen durch drehen möchte, bewegt man auch sehr leicht den Mauszeiger wieder weg. Bei der ersten InputClass war der Mauszeiger immer im Zentrum fixiert, und konnte nur davon wegbewegt werden. Beim auslassen war er wieder im Zentrum. Es war kein Symbolischer Link oder eine Udev Regel notwendig.
Sobald ich aber diese InputClass in /usr/share/X11/xorg.conf.d/53-spacenav.conf packe, funktionieren nur noch die Buttons. jstest-gtk findet aber trotzdem keinen Joystick.
jstest-gtk hat da bei mir den SN erkannt, und lies sich testen. Wenn das bei dir so nicht funktioniert, könnte der Fehler auch wo anders liegen. Vielleicht hilft das ja. Grüße
|
buchstabensalat
(Themenstarter)
Anmeldungsdatum: 14. Dezember 2009
Beiträge: 85
|
...da bin ich wieder. Ich habe jetzt mal Ubuntu gnome 14.04 auf einer zweiten Platte installiert und Klimmzüge am Fensterbrett gemacht, aber der SpaceNavigator wird und wird nicht als Joystick erkannt. Bzw. wird er als Joystick nur mit den zwei Buttons erkannt. Wenn ich die von dir genannte Conf benutze, tut sich gar nichts mehr. Ich glaube so langsam, dass es am SpaceNav selbst liegt - vllt. habe ich eine spätere Version oder sonstwas.
Ein lsusb -v zeigt jedenfalls dies hier:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 | lsusb -v -s 1:3
Bus 001 Device 003: ID 046d:c626 Logitech, Inc. 3Dconnexion Space Navigator 3D Mouse
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0xc626 3Dconnexion Space Navigator 3D Mouse
bcdDevice 4.36
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 41
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 228
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
|
Magst du mal zum Vergleich deine Ausgabe dagegen setzen? Ich denke übrigens, wenn du die "Deadzone"-Werte bei der x-y-Bewegung etwas höher setzt, sollte dieses Schwammigkeit der Steuerung weg sein. Die Deadzone beschreibt ja, wie weit du den Knopf bewegen darfst, bis der Treiber dies als "ernst gemeint" ansieht und umsetzt. Salat
|
iermar
Anmeldungsdatum: 15. Mai 2016
Beiträge: 8
|
Servus, hier die Ausgabe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 | markus@EP43-UD3L:~$ lsusb -v -s 6:2
Bus 006 Device 002: ID 046d:c626 Logitech, Inc. 3Dconnexion Space Navigator 3D Mouse
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0xc626 3Dconnexion Space Navigator 3D Mouse
bcdDevice 4.04
iManufacturer 3
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 202
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
markus@EP43-UD3L:~$
|
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
buchstabensalat schrieb: Du mußt entschuldigen, aber nicht jeder kommt automatisch darauf, dass er hinter einem Link zu LTS auch eine Erklärung zum HWE findet.
Da üblicherweise Dinge verlinkt werden, die benöltigte Informationen enthalten könnten, ist es doch das mindeste, dass man ihnen folgt und zumindest die Browser-eigene Suchfunktion mal über die Seite laufen lässt, wenn einem das Akronym HWE nicht schon in Inhaltsverzeichnis des Artikels in Auge springt...
Ich habe Rheuma und brauche eine Möglichkeit, die Maus zu bedienen, die ich mit meinen Gelenksentzündungen noch hinbekomme. Der Spacenavigator schien mir die beste Möglichkeit, da er mit meinen - momentan noch unbeteiligten - Fingergelenken zu steuern ist. Jetzt sieht es so aus, als hätte ich über hundert Euro für einen Briefbeschwerer ausgegeben. Das macht mich nicht glücklicher, auch, wenn es natürlich niemandes Schuld ist außer meiner.
Mir ist noch nicht ganz klar, warum du das Paket xserver-xorg-input-joystick benötigst (folgst du da einer bestimmten Anleitung?) - soweit ich das im Arch Linux Wiki gelesen habe kann man (abhängig von der Modellvariante) entweder den proprietären Herstellertreiber oder den freien spacenavd Treiber benutzen. Unabhängig davon gibt es Trackballs, die sich gut über die Finger bedienen lassen, ohne den ganzen Arm zu bewegen (wobei eine Bewegung ohne große Widerstände ja auch bei Rheumatischer Arthritis nicht verkehrt ist, um die Gelenkfunktion möglichst lange zu erhalten) und Tastaturen mit integrierten Trackpoints (z.B. das Lenovo compact Keyboard) - die gibt es bereits für einen Bruchteil des Preises und die kommen ohne Spezialtreiber aus.
Moderiert von redknight: Abgetrennt aus dem Thread zur Paketverwaltung
|