Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

gentoo_magic_trackpad_multitouch [2011/08/20 18:55]
terminar
gentoo_magic_trackpad_multitouch [2011/08/22 12:55] (aktuell)
terminar
Zeile 1: Zeile 1:
 +====== Apple Magic Trackpad unter Gentoo mit Multitouch ======
 +
 +Layman sollte funktionieren und eingerichtet sein.
 +sabotageandi hat mit der Portierung der utouch sourcen von Ubuntu/Canonical gute Arbeit geleistet.
 +
 +Hier ein paar Links dazu:
 +
 +  - [[http://sabotageandi.wordpress.com/2011/04/20/utouch-gentoo/||uTouch & Gentoo (outdated)]]
 +  - [[https://github.com/SabotageAndi/gentoo-portage-overlay|gentoo-portage-overlay bei github (outdated)]]
 +  - [[http://sabotageandi.wordpress.com/2011/08/06/i-have-a-gentoo-user-repository/|I have a Gentoo userRepository]]
 +
 +
 +===== Vorarbeit =====
 +
 +Ihr benötigt tools, die ihr vielleicht nicht installiert habt. Also:
 +
 +  mkdir -p /etc/portage/package.keywords
 +  echo "sys-apps/input-utils" >/etc/portage/package.keywords/input-utils
 +  emerge input-utils
 +
 +
 +Zuerst sorgt bitte dafür, das eure Bluetooth-Verbindung stimmt.
 +Das Modul "btusb" muss entweder im Kernel fest einkompiliert oder als Modul nachgeladen werden. Dazu gehört noch das Modul "hid-magicmouse". 
 +
 +==== Probleme mit hid-magicmouse bei Kernel 3.0.0 ====
 +
 +Ich habe beim Kernel den 3.0.0er genommen, der hat aber (seit 2.6.38 scheinbar) einen Bug mit einem Fallback beim hid-magicmouse.
 +Bitte patchen:
 +
 +Siehe https://patchwork.kernel.org/patch/797922/
 +
 +<code>
 +diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
 +index 0ec91c1..a5eda4c 100644
 +--- a/drivers/hid/hid-magicmouse.c
 ++++ b/drivers/hid/hid-magicmouse.c
 +@@ -501,9 +501,17 @@  static int magicmouse_probe(struct hid_device *hdev,
 +  }
 +  report->size = 6;
 + 
 ++ /*
 ++ * The device reponds with 'invalid report id' when feature
 ++ * report switching it into multitouch mode is sent to it.
 ++ *
 ++ * This results in -EIO from the _raw low-level transport callback,
 ++ * but there seems to be no other way of switching the mode.
 ++ * Thus the super-ugly hacky success check below.
 ++ */
 +  ret = hdev->hid_output_raw_report(hdev, feature, sizeof(feature),
 +  HID_FEATURE_REPORT);
 +- if (ret != sizeof(feature)) {
 ++ if (ret != -EIO) {
 +  hid_err(hdev, "unable to request touch data (%d)\n", ret);
 +  goto err_stop_hw;
 +  }
 +</code>
 +
 +==== Gui-Stuff ====
 +
 +Bei Gnome-Usern sollte Bluez sowie gnome-bluetooth installiert sein (net-wireless/bluez und net-wireless/gnome-bluetooth).
 +
 +KDE user helfen sich bitte selbst oder schicken mir Text den ich hier einpflegen kann, ich selbst nutze kein KDE.
 +
 +Mit dem bluetooth-applet unter gnome könnt ihr leicht eine Verbindung zum Trackpad aufbauen. Trackpad einschalten, notfalls etwas länger draufdrücken damit er mit blinken der LED anfängt (wenn da nichts blinkt oder nicht angeht ist die Batterie leer oder zu schwach). Passwort wird 0000 sein, hat zumindest bei mir funktioniert, also vorher in den Einstellungen vom Peering umstellen.
 +Bei weiteren Logins sollte dann bei geladenem applet das peering selbst stattfinden.
 +
 +==== Testing - Hardwareseitige Verbindung ====
 +
 +Nach Eingabe von lsinput müsste irgendwo ein
 +
 +<code>
 +/dev/input/event9
 +   bustype : BUS_BLUETOOTH
 +   vendor  : 0x5ac
 +   product : 0x30e
 +   version : 352
 +   name    : "Apple Wireless Trackpad"
 +   phys    : "XX:XX:XX:XX:XX:XX"
 +   uniq    : "XX:XX:XX:XX:XX:XX"
 +   bits ev : EV_SYN EV_KEY EV_ABS EV_MSC
 +</code>
 +
 +Das muss nicht event9 sein, wichtig ist nur, das er auftaucht.
 +
 +Falls da nichts auftaucht, bitte unter /var/log/messages die Ausgaben prüfen und schauen ob ihr bei 
 +
 +<code>
 +udevadm monitor
 +</code>
 +
 +eine Ausgabe bekommt, wenn ihr das Trackpad per Bluetooth trennt oder verbindet. 
 +
 +Trennen:
 +<code>
 +KERNEL[1313849982.919719] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input9/event9 (input)
 +UDEV  [1313849982.919959] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input9/event9 (input)
 +KERNEL[1313849983.110095] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input9 (input)
 +KERNEL[1313849983.110119] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0007/hidraw/hidraw6 (hidraw)
 +KERNEL[1313849983.110135] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0007 (hid)
 +UDEV  [1313849983.110388] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input9 (input)
 +UDEV  [1313849983.110407] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0007/hidraw/hidraw6 (hidraw)
 +UDEV  [1313849983.110454] remove   /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0007 (hid)
 +</code>
 +
 +Verbinden:
 +<code>
 +KERNEL[1313849986.273703] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0008 (hid)
 +KERNEL[1313849986.274113] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input10 (input)
 +UDEV  [1313849986.274129] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0008 (hid)
 +KERNEL[1313849986.274519] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input10/event9 (input)
 +KERNEL[1313849986.274535] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0008/hidraw/hidraw6 (hidraw)
 +UDEV  [1313849986.274696] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/0005:05AC:030E.0008/hidraw/hidraw6 (hidraw)
 +UDEV  [1313849986.329680] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input10 (input)
 +UDEV  [1313849986.353134] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.1/1-5.1.4/1-5.1.4:1.0/bluetooth/hci0/hci0:43/input10/event9 (input)
 +</code>
 +
 +Wenn da nur jeweils zwei Reihen kommen, fehlt der hid-magicmouse Treiber. Dann habt ihr zwar eine Verbindung zum Trackpad, könnt es aber nicht als Event nutzen.
 +
 +Das ist erstmal die reine Verbindung gewesen.
 +
 +Hinweis: ignoriert die Webseiten mit dem "hidd" Daemon von bluez, das war in älteren Versionen und funktioniert so nicht mehr mit bluez4. Momentan geht das Ganze über dbus und den Kernel direkt!
 +
 +
 +===== utouch Stuff - sabotageandi =====
 +
 +Per layman das sabotageandi hinzufügen.
 +<code>
 +layman -a sabotageandi
 +</code>
 +
 +Utouch keywords flicken (bleeding edge):
 +<code>
 +cat << EOF >/etc/portage/package.keywords/utouch
 +x11-apps/ginn
 +x11-libs/bamf
 +x11-libs/utouch-geis
 +x11-libs/utouch-grail
 +x11-libs/utouch-frame
 +x11-libs/mtdev
 +x11-libs/utouch-evemu
 +EOF
 +</code>
 +
 +Dann auf zum fröhlichen mergen.
 +<code>
 +emerge -uD glib inputproto xf86-input-evdev libXi xorg-server ginn utouch-frame utouch-geis utouch-grail mtdev bamf
 +</code>
 +
 +Es ist möglich, das beim compilen Probleme auftreten, dann stimmen irgendwelche Abhängigkeiten nicht. Einfach in anderer Reihenfolge mergen, zumindest auf jeden Fall zuerst das glib und xorg Kram.
 +
 +xorg sollte nach abmelden und neustart per /etc/init.d/xdm restart wieder ohne Probleme funktionieren.
 +
 +Ich habe irgendwo gelesen, das noch eine Anpassung bei xorg notwendig ist:
 +
 +Das kann entweder in die 60-magictrackpad.conf oder direkt in die /etc/X11/xorg.conf (bei mir ist es in der xorg.conf:
 +
 +<code>
 +cat << EOF > >/usr/share/X11/xorg.conf.d/60-magictrackpad.conf
 + # Apple Magic Trackpad
 + Section "InputClass"
 +      Identifier "Magic Trackpad"
 +      MatchUSBID "05ac:030e"
 +      Driver "evdev"
 + EndSection
 +EOF
 +</code>
 +
 +Bei einigen Webseiten findet man den Eintrag mit dem Treiber "synaptics". Das ist in sofern richtig, aber falsch.
 +Richtig für normale Nutzung als Trackpad ohne Multitouch, falsch für die Nutzung mit den späteren utouch tools über evdev, da sich beide zusammen beißen  / nicht funktionieren. Also - entweder - oder. Alles was mit "synaptics" als Treiber zu finden ist, ist momentan nicht multitouch!
 +
 +
 +
 +==== Testing - Softwareseitige Verbindung ====
 +
 +Prüft mit lsinput, wo euer Trackpad liegt, bei mir ist es /dev/input/event9.
 +
 +dann mit
 +
 +  mtdev-test /dev/input/event9 
 +
 +den Test starten und schauen ob bei Berührung oder Bewegung auf dem Trackpad etwas passiert.
 +Ja? Prima, ihr seid mit dem nächsten Step fertig. Nicht? Viel Spaß beim Fehlersuchen.
 +
 +
 +===== Nutzen =====
 +
 +Fügt "ginn" (/usr/bin/ginn) unter gnome zu euren Startprogrammen hinzu, dieses Programm ist ein Daemon, der die Multitouch-Gesten auf normale Key-Events um-mapt, sodaß normale nicht-multitouch apps auch genutzt werden können.
 +
 +Das war's schon.
 +
 +
 +===== Cosmetics =====
 +
 +[[https://wiki.ubuntu.com/Multitouch/AppleMagicTrackpad]] schreibt, ginn wäre noch etwas instabil.
 +
 +Bad hack script dazu, von der gleichen Webseite:
 +<code>
 +#!/bin/bash
 +
 +while true; do
 +  ginn
 +done
 +</code>
 +
 +Speichern nach /usr/bin/ginn-wrapper und anstatt ginn nun ginn-wrapper unter den Startprogrammen eintragen.
 +
 +==== Besseres Handling über ginn (rechte Maustaste-Emulation etc) ====
 +
 +Unter 
 +https://wiki.ubuntu.com/Multitouch/AppleMagicTrackpad?action=AttachFile&do=view&target=wishes.xml
 +
 +findet ihr eine von ubuntu angepasste ginn config, die auch rechte und mittlere Maustaste "emuliert".
 +Die könnt ihr dann nach /etc/ginn/wishes.xml speichern (vorher vielleicht das Original sichern?).
  
 
 
         
         
   
(27148 views) gentoo_magic_trackpad_multitouch.txt · Zuletzt geändert: 2011/08/22 12:55 von terminar