Asus T101MT
Asus hat seine EeePC-Reihe um ein 10'' Netbook erweitert, welches über ein druckempfindliches Display verfügt. Dieses Display lässt sich natürlich drehen und über die Tastatur legen (Netvertible). Ich halte das für eine sehr interessantes Gerät für den schulischen Einsatz. Aktuell (24. März 2010) hat Mediamarkt das Gerät für 449,00€ im Angebot. Offiziell soll es wohl 499,00€ kosten, bei anderen Händlern war es aber noch nicht verfügbar. Mal sehen, wo sich der Preis einpendelt und ob es das Gerät eventuell auch ohne Windows geben wird. Vermutlich gibt es auch ein T101 ohne MT, das MT steht nämlich für Multi-Touch.
- CPU Atom N450 mit 2 x 1,66 GHz
- 2 GByte Hauptspeicher DDR2
- Wind7 Home Premium auf Recovery-Partition und Service-DVD
- Grafikkarte Intel GMA 3150
- 0,3 MPixel Camera
- 4 Zellen Polymer-Akku
- 320 GByte Festplatte
Die Festplatte ist recht unpraktisch partitioniert:
- sda1 etwa 100 GByte NTFS (unter Wind7 als C:)
- sda2 etwa 200 GByte NTFS (unter Wind7 als D:)
- sda3 etwa 10,5 GByte Verst. W95 FAT32
- sda4 17 MByte EFI (FAT-12/16/32)
Hierbei beinhaltet die dritte Partition das Recovery-System für das Wind7 und die vierte Partition ist eine EFI-Partition, die auf modernen Rechnern den BootBooster ermöglicht und damit ein etwas beschleunigtes Booten.
Windows 7
Mitgeliefert wird als Betriebssystem Windows 7, damit fühlt sich das Gerät recht zäh an. Die Ersteinrichtung dauert relativ lange (>20 Minuten) und der Rechner rebootet dreimal. Danach hat man dann einen recht unübersichtlichen Desktop, auf dem sich eine Menge Testsoftware befindet. Alles mögliche will erst einmal aktualisiert bzw. aktiviert werden.
Nett ist die Möglichkeit den Bildschirminhalt in 90° Schritten zu drehen, Dafür findet sich extra ein kleiner Knopf links unten am Display. Man kann das Display mit dem mitgelieferten Stift, oder mit den Fingern bedienen, das muss man aber in der Software passend konfigurieren. Die Gesten zum Zoomen, Drehen und Scrollen stehen nur im Finger-Modus zur Verfügung.
Linux
Zur Installation von Ubuntu habe ich die Partition sda2 gelöscht und durch eine erweiterte Partition ersetzt. In dieser erweiterten Partition habe ich dann zuerst eine 20GByte NTFS-Partition angelegt und formatiert. Diese Partition hat Wind7 beim nächsten Start als Laufwerk d: akzeptiert, ohne weitere Einstellungen.
Bei der Ubuntu-Installation habe ich den kompletten freien Bereich für das Ubuntu zur Verfügung gestellt. Das Ubuntu hat dann zwei Partitionen angelegt, eine große Linux-Partition und eine kleinere Swap-Partition.
Soweit ich das sehen kann funktioniert erst einmal alles, außer dem Treiber für das Touch-Display. Es gibt es auch eine Hardware-Beschleunigung für die Grafikkarte, zumindest funktionieren die Grafik-Effekte.
Hardware laut lspci:
- Intel Corporation Pineview Integrated Graphics Controller (GMA 3150)
- SATA: Intel 82801GR/GH AHCI-Controller
- Attansic Atheros AR8132 / L1c Ethernet Adapter
- Atheros AR9285 Wireless Adapter
Die CPUInfo liefert 2 x 3325 Bogomips, es handelt sich um einen Atom 450 Dualcore-Prozessor.
Es funktionieren Out-of-the Box:
- Grafikkarte
- WLAN
- Soundkarte
- Webcam (das Bild steht auf dem Kopf) Id 13d3:5111 IMC Networks
- Bluetooth Id 0b05:1788 Asustek
Das System ist also erst einmal nutzbar, für das Touch-Display muss ich erst einmal ein bisschen recherchieren. Das Gerät ist ein D-WAV mit der Id 0eef:480d. Das Kalibrierungstool calibrate_touchscreen funktioniert wie erwartet, es fehlt nur noch die Anbindung an die normale Oberfläche.
Was wirklich toll klappt ist Suspend to RAM. Der Rechner legt sich sehr schnell schlafen und ist nach einem Druck auf eine beliebige Taste sofort wieder da.
Touchscreen
Der Touchscreen läuft mit dem eGalax-Treiber von der EEti-Homepage. Es hat eine Weile gedauert bis das alles geklappt hat, weil ich ursprünglich das Paket xserver-xorg-input-evtouch mit installiert hatte. Erst nach dem Deinstallieren dieses Paketes funktionierte der eGalax-Treiber.
Ich habe mir zuerst eine xorg.conf erzeugen lassen mittels:
xorg -configure
Die Datei landet im Homeverzeichnis als xorg.conf.new Diese Datei habe ich dann ins Verzeichnis /etc/X11 kopiert. Wenn es keine xorg.conf gibt, dann lässt sicher der Treiber nicht installieren. Vermutlich dürfte die Datei aber auch leer sein.
Unter http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm gibt es dann einen aktuellen Treiber für den Tochscreen. Das Archiv habe ich mittels
tar xvfz eGalaxTouch-3.00.3719-32b-k26.tar.gz
entpackt und dann mittels
cd eGalaxTouch32 sudo sh setup.sh
installiert. Ein paar Informationen zu dem Gerät:
xorg.conf
In der xorg.conf habe ich nur die folgenden Zeilen belassen:
Section "ServerLayout" InputDevice "EETI" "SendCoreEvents" Identifier "X.org Configured" EndSection ### Touch Configuration Beginning ### Section "InputDevice" Identifier "EETI" Driver "egalax" Option "Device" "usbauto" Option "Parameters" "/var/lib/eeti.param" Option "ScreenNo" "0" EndSection ### Touch Configuration End ###
Hinweis: Da mehrfach Nachfragen nach meiner xorg.conf gekommen sind. Dies ist die komplette Datei, mehr Zeilen gibt es nicht. Moderne Linux-Distributionen benutzen keine xorg.conf mehr, die Einstellungen werden zu Laufzeit erstellt.
eGalaxTouch
Mit dem Treiber geliefert wird auch ein Programm zur Kalibrierung, dass unter /usr/bin/eGalaxTouch zu finden ist. Mittels
eGalaxTouch
kann man das Touchpad dann konfigurieren. Seine Einstellungen speichert das Programm in der Datei /var/lib/eeti.param (siehe xorg.conf).
Im Reiter Tool finden sich die Kalibrierungsfunktionen. Das ist eigentlich recht einfach und funktioniert gut. Im Reiter Misc findet sich eine ganz wichtige Einstellmöglichkeit:
Unter MouseMode legt man fest, wir das Pad sich verhält. In der Standardeinstellung folgt der Mauscursor nämlich nicht der Stiftposition, dazu muss man auf die Betriebsart Desktop umschalten.
xinput list
Mittels
xinput list
kann man feststellen, ob das Gerät eingebunden wird. Der entsprechende Ausschnitt sieht bei mir folgendermaßen aus:
"egalax" id=2 [XExtensionPointer] Type is egalax Num_buttons is 1 Num_axes is 2 Mode is Absolute Motion_buffer is 10 Axis 0 : Min_value is 0 Max_value is 2048 Resolution is 9500 Axis 1 : Min_value is 0 Max_value is 2048 Resolution is 10500
lsusb
lsub -vv
liefert
Bus 003 Device 002: ID 0eef:480d D-WAV Scientific Co., Ltd Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0eef D-WAV Scientific Co., Ltd idProduct 0x480d bcdDevice 2.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 1 bmAttributes 0xa0 (Bus Powered) Remote Wakeup 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 ** UNRECOGNIZED: 09 21 00 01 00 01 22 d5 01 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1
lshal
lshal
liefert eines sehr umfangreiche Ausgabe:
udi = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial' info.linux.driver = 'usb' (string) info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_1_0000_00_1d_1' (string) info.product = 'USB TouchController' (string) info.subsystem = 'usb_device' (string) info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial' (string) info.vendor = 'D-WAV Scientific Co., Ltd' (string) linux.device_file = '/dev/bus/usb/003/002' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'usb' (string) linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2' (string) usb_device.bus_number = 3 (0x3) (int) usb_device.can_wake_up = true (bool) usb_device.configuration = 'eGalax Inc.' (string) usb_device.configuration_value = 1 (0x1) (int) usb_device.device_class = 0 (0x0) (int) usb_device.device_protocol = 0 (0x0) (int) usb_device.device_revision_bcd = 512 (0x200) (int) usb_device.device_subclass = 0 (0x0) (int) usb_device.is_self_powered = false (bool) usb_device.linux.device_number = 2 (0x2) (int) usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2' (string) usb_device.max_power = 100 (0x64) (int) usb_device.num_configurations = 1 (0x1) (int) usb_device.num_interfaces = 1 (0x1) (int) usb_device.num_ports = 0 (0x0) (int) usb_device.product = 'USB TouchController' (string) usb_device.product_id = 18445 (0x480d) (int) usb_device.speed = 12.0 (12) (double) usb_device.vendor = 'D-WAV Scientific Co., Ltd' (string) usb_device.vendor_id = 3823 (0xeef) (int) usb_device.version = 1.1 (1.1) (double) udi = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial_if0' info.linux.driver = 'usbhid' (string) info.parent = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial' (string) info.product = 'USB HID Interface' (string) info.subsystem = 'usb' (string) info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial_if0' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'usb' (string) linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0' (string) usb.bus_number = 3 (0x3) (int) usb.can_wake_up = true (bool) usb.configuration = 'eGalax Inc.' (string) usb.configuration_value = 1 (0x1) (int) usb.device_class = 0 (0x0) (int) usb.device_protocol = 0 (0x0) (int) usb.device_revision_bcd = 512 (0x200) (int) usb.device_subclass = 0 (0x0) (int) usb.interface.class = 3 (0x3) (int) usb.interface.number = 0 (0x0) (int) usb.interface.protocol = 0 (0x0) (int) usb.interface.subclass = 0 (0x0) (int) usb.is_self_powered = false (bool) usb.linux.device_number = 2 (0x2) (int) usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0' (string) usb.max_power = 100 (0x64) (int) usb.num_configurations = 1 (0x1) (int) usb.num_interfaces = 1 (0x1) (int) usb.num_ports = 0 (0x0) (int) usb.product = 'USB HID Interface' (string) usb.product_id = 18445 (0x480d) (int) usb.speed = 12.0 (12) (double) usb.vendor = 'D-WAV Scientific Co., Ltd' (string) usb.vendor_id = 3823 (0xeef) (int) usb.version = 1.1 (1.1) (double) udi = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial_if0_logicaldev_input' info.capabilities = {'input', 'input.touchpad'} (string list) info.category = 'input' (string) info.parent = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial_if0' (string) info.product = 'eGalax Inc. USB TouchController' (string) info.subsystem = 'input' (string) info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial_if0_logicaldev_input' (string) input.device = '/dev/input/event6' (string) input.originating_device = '/org/freedesktop/Hal/devices/usb_device_eef_480d_noserial_if0' (string) input.product = 'eGalax Inc. USB TouchController' (string) input.x11_driver = 'synaptics' (string) linux.device_file = '/dev/input/event6' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'input' (string) linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input/input6/event6' (string)
dmesg
dmesg
zeigt folgende Zeilen
[ 2.353181] usbcore: registered new interface driver hiddev [ 2.365964] input: eGalax Inc. USB TouchController as /devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input/input6 [ 2.366272] generic-usb 0003:0EEF:480D.0001: input,hiddev96,hidraw0: USB HID v1.00 Pointer [eGalax Inc. USB TouchController] on usb-0000:00:1d.1-2/input0 [ 2.366317] usbcore: registered new interface driver usbhid [ 2.366326] usbhid: v2.6:USB HID core driver
Kernelmodul
Wie man an den dmesg-Zeilen sieht wird das Touchpad von dem Treiber usbhid bedient. Es findet sich in dem Paket eGalaxTouch-3.00.3719-32b-k26.tar.gz aber auch die Quellen für ein Kernelmodul namens tksub. Dieses Modul wird anscheinend nicht benötigt, zumindest hat es bei mir keine Funktion gezeigt. Falls jemand damit experimentieren möchte, so muss er wissen, dass es sich unter Ubuntu 9.10 nicht ohne Änderung übersetzen lässt. Die Quelltexte befinden sich in einem Archiv namens eGalaxTouch.tar.gz. Packt man dieses Archiv aus (das setup-Tool entpackt dieses Archiv nach /usr/local/eGalaxTouch32), so befindet sich im entstehenden Verzeichnis ein Unterverzeichnis namens USBsrc. Dort soll man laut Anleitung aus dem Ordner Guide einfach mittels sudo make all das Modul erstellen. Das scheitert aber daran, dass ein Pfad verändert ist. Zum erfolgreichen Compilieren muss man in der Datei tksub.h in Zeile 25 eine kleine Änderung vornehmen. Im Original steht dort:
#include <asm/semaphore.h>
das muss gändert werden zu
#include <linux/semaphore.h>
danach lässt sich das Modul übersetzen.