Touchpad Verhalten

lockdoc

Well-Known Member
Hallo,

ich bin sozusagen mit meiner Umstellung von Windows auf FreeBSD fuer meinen Notebook fast fertig, es gibt zwar hier und da noch ein paar Kompromisse die ich eingehen muss, aber soweit ganz gut.

Das (vor-)letzte Hardware Problem, dass ich noch habe ist mein Touchpad:

Unter Windows ist der Klick in das Touchpad (weiss nicht genau wie man das nennt) gleich mit der Funktion eines Links-Klick, sprich ich kann, damit unter windows Ordner oeffnen (doppel klick ins touchpad) und inaktive Fenster aktiv machen, indem ich ein einzelklick in das inaktive Fenster mache.

Unter FreeBSD verhaelt es sich sehr strange.
Das einzige Program, was den Touchpad-klick unterstuetzt, ist der gnome-terminal, und auch nur, wenn ich die scrollbar bediene, indem ich einmal rauf klicke und dann hoch oder runter ziehe.

Im Browser verhaelt sich der klick in das Touchpad leider sehr unpassend, denn wenn ich klicke, ist es so als wenn ich die history.back Taste des Browser klicke.

Anhand beider Eigenarten weiss ich allerdings, dass der Touchpad-Klick erkannt wird, nur haette ich gerne den selben Effekt wie unter Windows, dass sich das wie ein Links-Klick mit der Mouse verhaelt. Hat Jemand eine Idee dazu?

Edit:
Fuer die Hardware Info, es ist ein Dell Latitude D420 mit AlpsPS/2 ALPS GlidePoint touchpad
 
Zuletzt bearbeitet:
Ich habs gefunden:

in /etc/rc.conf den mouse daemon deaktiviert und in X11

Code:
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        [B]Option      "Device" "/dev/psm0"[/B]
        Option      "ZAxisMapping" "4 5 6 7"
EndSection


@Yamagi
Kann leider nicht rebooten und mein dmesg outout ist von wlan0 debug messages voll, der debug.yesterday ist von swap errorn voll. Debug scheint wohl einen begrenzten Buffer zu haben, da ich nicht mehr die Anfangsinformationen sehe, sondern nur die ganzen debug und error messages xD

Komischerweise ist es aber so
Code:
dmesg -a | wc -l
     982
> cat /var/log/dmesg.today | wc -l
    1042
> cat /var/log/dmesg.yesterday | wc -l
    1850
 
Kann leider nicht rebooten und mein dmesg outout ist von wlan0 debug messages voll, der debug.yesterday ist von swap errorn voll. Debug scheint wohl einen begrenzten Buffer zu haben, da ich nicht mehr die Anfangsinformationen sehe, sondern nur die ganzen debug und error messages xD

Dafür gibts doch (ich zitiere aus dmesg(8)):
/var/run/dmesg.boot
usually a snapshot of the buffer contents taken soon after file systems are mounted at startup time
 
@hades thanks!

also nochmal als Nachtrag (auch wenn es schon geloest ist)
Code:
cat /var/run/dmesg.boot 
Copyright (c) 1992-2011 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.0-CURRENT #2: Sat May 14 00:22:10 CST 2011
    root@trinity.the-wire.de:/usr/obj/usr/src/sys/TRINKERNEL i386
CPU: Genuine Intel(R) CPU           U2500  @ 1.20GHz (1197.34-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6e8  Family = 6  Model = e  Stepping = 8
  Features=0xbfe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xc1a9<SSE3,MON,VMX,EST,TM2,xTPR,PDCM>
  AMD Features=0x100000<NX>
  TSC: P-state invariant, performance statistics
real memory  = 1610612736 (1536 MB)
avail memory = 1553805312 (1481 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: <DELL   M07    >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
ioapic0: Changing APIC ID to 2
ioapic0 <Version 2.0> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <DELL M07    > on motherboard
acpi0: reservation of 0, 9fc00 (3) failed
acpi0: reservation of 100000, 5f591400 (3) failed
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
acpi_acad0: <AC Adapter> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0xeff8-0xefff mem 0xdff00000-0xdff7ffff,0xc0000000-0xcfffffff,0xdfec0000-0xdfefffff irq 16 at device 2.0 on pci0
agp0: <Intel 82945GM (945GM GMCH) SVGA controller> on vgapci0
agp0: aperture size is 256M, detected 7932k stolen memory
vgapci1: <VGA-compatible display> mem 0xdff80000-0xdfffffff at device 2.1 on pci0
hdac0: <Intel 82801G High Definition Audio Controller> mem 0xdfebc000-0xdfebffff irq 21 at device 27.0 on pci0
hdac0: HDA Driver Revision: 20100226_0142
pcib1: <ACPI PCI-PCI bridge> at device 28.0 on pci0
pci11: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> at device 28.1 on pci0
pci12: <ACPI PCI bus> on pcib2
bwi0: <Broadcom BCM4311 802.11b/g Wireless Lan> mem 0xdfdfc000-0xdfdfffff irq 17 at device 0.0 on pci12
bwi0: BBP: id 0x4311, rev 0x1, pkg 0
bwi0: MAC: rev 10
bwi0: PHY: type 2, rev 8, ver 4
bwi0: RF: manu 0x17f, type 0x2050, rev 2
bwi0: invalid antenna gain in sprom
pcib3: <ACPI PCI-PCI bridge> at device 28.2 on pci0
pci9: <ACPI PCI bus> on pcib3
bge0: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x006002> mem 0xdfcf0000-0xdfcfffff irq 18 at device 0.0 on pci9
bge0: CHIP ID 0x00006002; ASIC REV 0x06; CHIP REV 0x60; PCI-E
miibus0: <MII bus> on bge0
brgphy0: <BCM5752 1000BASE-T media interface> PHY 1 on miibus0
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
bge0: Ethernet address: 00:15:c5:4e:90:28
uhci0: <Intel 82801G (ICH7) USB controller USB-A> port 0xbf80-0xbf9f irq 20 at device 29.0 on pci0
usbus0: <Intel 82801G (ICH7) USB controller USB-A> on uhci0
uhci1: <Intel 82801G (ICH7) USB controller USB-B> port 0xbf60-0xbf7f irq 21 at device 29.1 on pci0
usbus1: <Intel 82801G (ICH7) USB controller USB-B> on uhci1
uhci2: <Intel 82801G (ICH7) USB controller USB-C> port 0xbf40-0xbf5f irq 22 at device 29.2 on pci0
usbus2: <Intel 82801G (ICH7) USB controller USB-C> on uhci2
uhci3: <Intel 82801G (ICH7) USB controller USB-D> port 0xbf20-0xbf3f irq 23 at device 29.3 on pci0
usbus3: <Intel 82801G (ICH7) USB controller USB-D> on uhci3
ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 0xffa80000-0xffa803ff irq 20 at device 29.7 on pci0
usbus4: EHCI version 1.0
usbus4: <Intel 82801GB/R (ICH7) USB 2.0 controller> on ehci0
pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib4
cbb0: <RF5C476 PCI-CardBus Bridge> at device 1.0 on pci2
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
fwohci0: <Ricoh R5C552> mem 0xdfbff800-0xdfbfffff irq 17 at device 1.1 on pci2
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 38:4f:c0:00:38:e3:bc:50
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
dcons_crom0: <dcons configuration ROM> on firewire0
dcons_crom0: bus_addr 0x12a4000
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 3a:4f:c0:e3:bc:50
fwe0: Ethernet address: 3a:4f:c0:e3:bc:50
fwip0: <IP over FireWire> on firewire0
fwip0: Firewire address: 38:4f:c0:00:38:e3:bc:50 @ 0xfffe00000000, S400, maxrec 2048
fwohci0: Initiate bus reset
fwohci0: fwohci_intr_core: BUS reset
fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode
pci2: <base peripheral, SD host controller> at device 1.2 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH7 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xbfa0-0xbfaf irq 16 at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64,0x62,0x66 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
[B][COLOR="DarkRed"]psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model GlidePoint, device ID 0
[/COLOR][/B]atrtc0: <AT realtime clock> port 0x70-0x71,0x72-0x77 irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 2 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xce7ff,0xce800-0xcffff pnpid ORM0000 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: parallel port not found.
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
Timecounters tick every 1.000 msec
firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0)  (me) 
firewire0: bus manager 0 
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 12Mbps Full Speed USB v1.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 480Mbps High Speed USB v2.0
ad0: 57231MB <TOSHIBA MK6008GAH BU011A> at ata0-master UDMA100 
ugen0.1: <Intel> at usbus0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <Intel> at usbus1
uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <Intel> at usbus2
uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
ugen3.1: <Intel> at usbus3
uhub3: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <Intel> at usbus4
uhub4: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus4
hdac0: HDA Codec #0: Sigmatel STAC9220
pcm0: <HDA Sigmatel STAC9220 PCM #0 Analog> at cad 0 nid 1 on hdac0
SMP: AP CPU #1 Launched!
Root mount waiting for: usbus4 usbus3 usbus2 usbus1 usbus0
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub2: 2 ports with 2 removable, self powered
uhub3: 2 ports with 2 removable, self powered
Root mount waiting for: usbus4
Root mount waiting for: usbus4
Root mount waiting for: usbus4
uhub4: 8 ports with 8 removable, self powered
ugen4.2: <vendor 0x413c> at usbus4
uhub5: <vendor 0x413c product 0xa005, class 9/0, rev 2.00/50.18, addr 2> on usbus4
Root mount waiting for: usbus4
uhub5: 4 ports with 0 removable, self powered
Root mount waiting for: usbus4
ugen4.3: <vendor 0x0b97> at usbus4
uhub6: <vendor 0x0b97 product 0x7761, class 9/0, rev 1.10/1.10, addr 3> on usbus4
uhub6: 3 ports with 2 removable, bus powered
Root mount waiting for: usbus4
ugen4.4: <O2> at usbus4
Root mount waiting for: usbus4
ugen4.5: <vendor 0x046d> at usbus4
Trying to mount root from ufs:/dev/ad0s2a [rw,noatime]...
WARNING: / was not properly dismounted
WARNING: /root was not properly dismounted
WARNING: /usr was not properly dismounted
/usr: mount pending error: blocks 8 files 1
WARNING: /var was not properly dismounted
/var: mount pending error: blocks 0 files 14
bwi0: firmware rev 0x0127, patch level 0x000e
wlan0: Ethernet address: 00:16:cf:59:9b:d6

Ich hab mal rot gehighlighted was ich all die Jahre uebersehen habe :-(
 
Also, er erkennt das Touchpad als solches. Das ist gut. Nun gibt es drei bis vier Möglichkeiten:
1. Wie du es gemacht hast es direkt an X.org anschließen und den moused rausnehmen.
2. Direkt an X.org, aber mit dem "synaptics"-Treiber. Unterstützt auch einige GlidePoint-Touchpads.
3. Probieren, ob es mit dem kernelseitigen Touchpad-Support funktioniert. Dafür in /boot/loader.conf 'hw.psm.synaptics_support="1"' setzen.
4. Schauen ob man moused entsprechend konfigurieren kann.
 
Verdammt, da hab ich mich zu frueh gefreut.

Ich hatte grade meine externe USB-Maus angeschlossen (weil ich den ganzen Tag nur mit Touchpad gearbeitet habe) und siehe da... sie wird nicht erkannt.

Ich musste in der xorg.conf das hier
Code:
Option      "Device" "/dev/psm0"
zum Ursprungszustand nach
Code:
Option	    "Device" "/dev/sysmouse
aendern

und auch wieder die Option moused_enable="YES" in der rc.conf

Also, ich brauche wieder Hilfe xD

Das Touchpad laeuft ja soweit nur das "tapping" geht nicht ganz richtig.
Irgendne Idee, wie ich die Tastenbelegung manuell aender?


@Yamagi
sysctl gibt mir nur relativ wenig Optionen fuer mein psm Device
Code:
> sysctl hw.psm
hw.psm.tap_timeout: 125000
hw.psm.tap_threshold: 25
hw.psm.tap_enabled: -1

Und ja, wo ich das mit dem Tap grad gesehen habe, hab ich mal schnell ein
Code:
> sysctl hw.psm.tap_enabled=1
hw.psm.tap_enabled: -1 -> 1
gemacht, hat leider nix gebracht
 
Also ich hab es jetzt notgedrungen hinbekommen:

Es funktioniert, solange eine externe USB Mouse angeschlossen ist, wenn der PC Bootet.
Ist sie nicht angeschlossen, muss ich einmal den moused per hand starten (der muss naehmlich aus bevor X startet, sein, da sonst das Touchpad nicht funktioniert). Es geht jetzt auch das Tapping mit dem Touchpad und auch die PS/2 Mouse. In meiner xorg.conf habe ich 2 sektions, eine Fuer die PS/2 Mouse und eine fuer das Touchpad

Code:
...
Section "ServerLayout"
	Identifier		"X.org Configured"
	Screen			0  "Screen0" 0 0
[B]	InputDevice		"Mouse0"			"CorePointer"
	InputDevice		"Touchpad0"			"SendCoreEvents"[/B]
	InputDevice		"Keyboard0"			"CoreKeyboard"
    Option			"DontZap"			"Off"
    Option			"AutoAddDevices"	"false"
EndSection
...
Section "Module"
	Load  "extmod"
	Load  "record"
	Load  "dbe"
	Load  "glx"
	Load  "dri"
	Load  "dri2"
	Load  "freetype"
	Load  "type1"
	[B]#Load  "synaptics"	 #Das braucht hier nicht geladen werden!!![/B]
EndSection
...

Section "InputDevice"
	Identifier	"Mouse0"
	Driver		"mouse"
	Option		"Protocol"		"auto"
	Option		"Device"		"/dev/sysmouse"
	Option	    "ZAxisMapping"	"4 5 6 7"
EndSection

Section "InputDevice"
	Identifier	"Touchpad0"
	Driver		"synaptics"
	Option		"Device"			"/dev/psm0"
	Option		"Protocol"			"alps"
	Option 		"Emulate3Buttons"	"on"
EndSection
...

In der rc.conf NICHT den moused starten!


Eventuell hilft es dem ein oder anderem mit aehnlichen Problemen.
 
Zurück
Oben