Štítky:
články,
Debian,
driver,
hardware,
instalace,
klávesnice,
Linux,
ovladače,
PC,
Suspend,
UMPC,
VIA,
Xorg
Linux na MIVVY UM400
19.7.2008 22:44
| Přečteno: 3365×
| všechno možny
|
Když jsem před pár lety držel v rukou poprvé Tablet PC (byl to nějaký starší Compaq), tak mi bylo jasné, že něco takového musím mít.
Zaměstnavatel mi však poskytuje notebooka a já nikdy nebyl dostatečně šílený, abych si takový stroj sám pořídil.
Paralelně vyvstala potřeba nějakého malého domácího počítače, který by spíš fungoval jako komunikátor, šel by použít kdekoliv po bytě a který by mohl skoro pořád běžet, aby se kvůli kdejaké ptákovině nemusel zapínat "velký" počítač. V podstatě jsem již byl rozhodnut pro Asus Eee, ale přeci jen mi pro tento účel příšerně vadilo to, že se jakýkoliv notebook musí otevřít a provozovat otevřený.
Z dlouhodobých občasných úvah mne vytrhl až
blogpost na root.cz, na který jsem náhodou narazil. Z něj jsem se dozvěděl, že existuje zařízení splňující obě mé předchozí představy a navíc dostupné za velmi rozumnou cenu - UMPC (ultramobilní PC) MIVVY UM400.
Zařízení vyrábí taiwanská společnost
Arima (teď pro změnu koupená Flextronicsem) a po světě se prodává pod mnoha různými značkami. U nás je kromě české značky MIVVY známo především jako Gigabyte U60. Podrobných recenzí je na českých webech několik, např.
na Světě hardware.
I když jsem zvěděl, že podpora Linuxu není dokonalá a na trhu se během pár týdnů objeví modernizovaná verze, nakonec jsem se pro koupi přeci jen rozhodl. Teď už mám UM400 několik týdnů (věnoval jsem mu však bohužel zatím jen málo času).
Nedostatečnou podporu Linuxu jsem vzal spíše jako výzvu (přeci jen jsem patřil i mezi průkopníky provozu Linuxu na handheldech iPAQ, viz
moje články na root.cz) a ohledně modernizované verze nebylo jasné, kdy bude a za kolik.
Mimochodem, aktuálně je prodej modernizované verze MIVVY UM470 ohlášen na polovinu srpna a kromě pozměněného designu (pěkné!) je rozdíl zdá se jen ve třech parametrech. Displej se zvětšil z 6.5" na 7" a jeho rozlišení stouplo z 800x480 na 1024x600 (tohle by se sakra hodilo), disk si polepšil z 30/40GB na 60GB (čert to vem) a webcam z 0.3MPix na 1.3MPix (tak tohle je mi už úplně jedno).
A teď už k věci...
Hardwareová specifikace a specifika
V zásadě jde o normální PC postavené na úsporném procesoru VIA C7-M (který běží na frekvencích 1.2GHz resp. 600MHz) a chipsetu VIA VX700 s integrovanou grafikou UniChrome Pro. Ta si pro sebe z nerozšiřitelné paměti 768MB ukrajuje 64MB.
Protože nejde o recenzi, odkazuji zájemce o nelinuxové podrobnosti na některou z recenzí, např. na již výše uvedenou, já se dál budu věnovat jen tomu, co mne nějak zaujalo.
Chybí ethernet
Ethernet je sice dostupný v dokovací stanici, ale v samotném zařízení citelně chybí, především kvůli tradiční instalaci linuxu ze sítě (problematický WiFi adaptér to nespasí). Jednoduchým řešením je nákup USB Ethernet adaptéru, já si vybral
Linksys 10/100 USB 2.0 Network Adapter a jsem nadmíru spokojen.
Výsuvná klávesnice
je docela fajn. Trošku připomíná klávesnici mobilu, ale je vemi dobře použitelná. Několik "ale" tu však přeci jen je.
Pravá polovina mezerníku má chybný popisek, je popsána "Alt Gr". Na to, že to není "Alt Gr" a především, že tam není vůbec žádný "Alt Gr", jsem přišel při tom, co jsem se na klávesnici dlouho a marně snažil napsat klasické lomítko. Tedy, nakonec jsem lomítko objevil, protože mne zarazilo, že jsou na klávesnici dvě klávesy s obráceným lomítkem/pajpou. Jedna z nich má totiž opět špatnou popisku a skrývá se pod ní ono důležité "normální" lomítko. Inu, mám pocit, že by se na takovýchto zařízeních měla nechávat jen anglická klávesnice, pokud to má přinášet takovéto problémy...
Klávesnice samozřejmě není kompletní, ale z chybějících kláves opravdu postrádám jen klávesu "Insert". Probůh, jak bez něj mám označovat soubory v Midnight Commanderu?
Funkční klávesy jsou dostupné přes klávesu "Fn", při přepínání konzolí pak díky tomu nastává pravé peklo, protože to vyžaduje stisk tří kláves současně na levé straně klávesnice. A pokud jste v X, tak čtyř. Nejlépe všechno jedním palcem.

Ale je fakt, že zase tak často se to nedělá.
Pokud pominu klávesy okolo displeje, má klávesnice i čtyři speciální klávesy. Jedna z nich fyzicky připojuje a odpojuje interní USB WiFi adaptér, druhá dělá totéž pro USB Bluetooth a třetí připojuje a odpojuje USB HUB s připojenou kamerou a současně se chová i jako normální klávesa (posílá nějaký kód). Čtvrtá je určená k aktivaci externího zařízení, ale nic bych nedal za to, že zařízení jsou opět USB (byť s nestadardním konektorem) a opět je jen fyzicky připojuje a odpojuje.
Touchpad v cestě
Umístění touchpadu v pravém spodním rohu nepovažuji za šťastné. Na používání jeho samého to sice vliv nemá, ale v okamžiku, kdy jako pravák vezmu do ruky stylus a začnu používat touchscreen, tak si na něj zápěstím neustálě hrabu a nestačím se divit, kam mi ten kurzor jezdí a kliká. Toto je, zdá se, u modernizované verze upraveno.
Instalace
Instalace operačních systémů dnes obvykle zahajuje boot z CD/DVD, takovou mechaniku ovšem MIVVY nemá. Linux v zásadě není problém tam nějak dostat např. bootem z flashky, ale protože jsem (kvůli srovnání) chtěl zkusit nainstalovat i Windows XP, zapůjčil jsem si od kolegyně externí USB vypalovačku. Instalace XP z flashky je sice podle návodů na internetu možná, ale nepřipomíná ani tak jednoduché drbání se pravou rukou za levým uchem, jako spíše dělání téhož skrz řitní otvor.
Instalace OS (obou) s externí USB mechanikou již byly dokonale přímočaré a bez potíží.
Podpora Linuxu
Na stránkách
mivvy.eu, případně
gigabyte.com.tw se ohledně Linuxu sice něco dozvíte, ale v podstatě je to vždy jen informace typu "použijte tohle", případně "tohle nefunguje", bez toho, aby byla problematika nějak výrazněji rozvedena. Proto tedy vlastně vznikl tento blogpost.
Instaluji Debian
Začal jsem stabilní verzí (Etch). Instalace (s pomocí již výše zmíněné USB vypalovačky a USB Ethernet adaptéru) proběhla až na pár detailů vcelku spořádaně a systém se rozběhl. Protože však spousta hardwaru nebyla podporována, řekl jsem si, že zkusím upgradeovat na testing verzi (Lenny), která by mohla mít blíže všude uváděnému Ubuntu. Balíčky byly postahovány během chvilky, ale když běžel upgrade již několikátou hodinu a progress bar se skoro nehýbal, tak jsem vše ukončil s tím, že se druhý den pokusím o čistou instalaci od nuly.
Druhý den nezačal dobře. Při pokusu o instalaci jsem zjistil, že kernel Lennyho na MIVVY spolehlivě vytuhne dřív, než celý systém nabootuje. A nezdálo se, že by to nějaká tajemná kernel volba mohla zvrátit. Nezbylo, než na to jít jinak. (Dodatečně mi dochází, že když jsem zkoušel init=, že jsem zapomněl, že v daném okamžiku je tam jen initrd.)
Vzal jsem tedy staršího testovacího notebooka a nainstaloval Lennyho do něj. Po instalaci jsem doplnil starší kernel z Etche a systém přesunul na MIVVY. Ouha, při bootu vytuhnul i kernel z Etche...
Zbývalo zkusit zkompilovat na jiném stroji svůj vlastní kernel. Stáhnul jsem vanilla 2.6.24.7, udělal "make oldconfig" na configu z Lennyho, přepnul CPU na VIA C7, vyhodil pár nepotřebností, zkompiloval, přesunul... Chvilka napětí - ano, tento kernel běží na první pokus. Můžu jít dál...
Co nám visí na PCI?
'lspci' říká:
00:00.0 Host bridge: VIA Technologies, Inc. CX700 Host Bridge (rev 10)
00:00.1 Host bridge: VIA Technologies, Inc. CX700 Host Bridge
00:00.2 Host bridge: VIA Technologies, Inc. CX700 Host Bridge
00:00.3 Host bridge: VIA Technologies, Inc. CX700 Host Bridge
00:00.4 Host bridge: VIA Technologies, Inc. CX700 Host Bridge
00:00.7 Host bridge: VIA Technologies, Inc. CX700 Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
00:0f.0 IDE interface: VIA Technologies, Inc. Unknown device 5324
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 90)
00:11.0 ISA bridge: VIA Technologies, Inc. CX700 PCI to ISA Bridge
00:11.7 Host bridge: VIA Technologies, Inc. CX700 Internal Module Bus
00:13.0 PCI bridge: VIA Technologies, Inc. CX700 Host Bridge
00:13.1 PCI bridge: VIA Technologies, Inc. CX700 PCI to PCI Bridge
01:00.0 VGA compatible controller: VIA Technologies, Inc. Unknown device 3157 (rev 03)
02:01.0 Audio device: VIA Technologies, Inc. VIA High Definition Audio Controller (rev 10)
03:07.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832
03:07.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:07.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
Pro znalce a uživatele
device drive check page i numericky:
00:00.0 0600: 1106:0324 (rev 10)
00:00.1 0600: 1106:1324
00:00.2 0600: 1106:2324
00:00.3 0600: 1106:3324
00:00.4 0600: 1106:4324
00:00.7 0600: 1106:7324
00:01.0 0604: 1106:b198
00:0f.0 0101: 1106:5324
00:10.0 0c03: 1106:3038 (rev 90)
00:10.1 0c03: 1106:3038 (rev 90)
00:10.2 0c03: 1106:3038 (rev 90)
00:10.4 0c03: 1106:3104 (rev 90)
00:11.0 0601: 1106:8324
00:11.7 0600: 1106:324e
00:13.0 0604: 1106:324b
00:13.1 0604: 1106:324a
01:00.0 0300: 1106:3157 (rev 03)
02:01.0 0403: 1106:3288 (rev 10)
03:07.0 0c00: 1180:0832
03:07.1 0805: 1180:0822 (rev 19)
03:07.2 0880: 1180:0843 (rev 01)
Než se vrhnu na popis dvou problematických zařízení z tohoto seznamu, upozornil bych na dva detaily. První je, že ačkoliv jsou konektory FireWire a Ethernet pouze na docku, tak FireWire adaptér přítomen je, ale Ethernet adaptér ne. Zajímavé řešení. Druhým detailem je přítomnost adaptéru pro čtečku MMC/SD (ta samozřejmě přítomna je).
První problém na PCI - Audio
Jeden z důvodů, proč jsem dával Lennyho/novější kernel byl, že ve starších kernelech nebyl modul pro zvukový chip (přesněji řečeno, modul byl, ale ne verze, která by na použitém čipu zvučela). V Ubuntu 8.04 údajně zvuk již funguje, tak jsem se mylně domníval, že by mohl i v Lennym/mém 2.6.24.7. Není tomu tak, je třeba stále dokompilovat novější verzi modulů přímo z projektu ALSA (potřebný modul se jmenuje 'snd-hda-intel.ko', což je poněkud překvapující, když na tomto stroji není od Intelu vůbec nic a i zvukový kodek je Realtek). Pak už zvuk chodí jako z praku.
Druhý problém na PCI - Video
Všude píšou, že jediná možnost je VESA, protože binární ovladač VIA nefunguje. Binární ovladač jsem nezkoušel, ale dohledal jsem, že pro VIA/S3 chipsety existuje i open source řešení. To ho nikdo nezkoušel? Dobrá, budu první...
Driver se jmenuje '
openChrome' a v Lennym je k dispozici (i toto byl jeden z důvodů k upgrade, v Debianu Etch není). Chodí, ale není to nikterak růžové. Aby start X nekončil černou obrazovkou, bylo třeba dopsat volbu "VBEModes". Aby bylo možné přeskakovat z X do textových konzolí, bylo třeba dopsat volbu "VBESaveRestore". A aby v pravidelných intervalech nemizel obsah obrazovky, je třeba vypnout akceleraci volbou "NoAccel". (Projevuje se to tak, že obrazovka problikne a vše zmizí. Pokud je však někde na obrazovce zaznamenána aktivita, místo se správně překreslí, takže je možné mít po chvíli opět obsah celé obrazovky.) Zda po vypnutí akcelerace zůstává zachována možnost použití overlay, jsem zatím neověřoval. Pokud ne, možná by vážně bylo lepší zůstat u použití VESA driveru.
Příslušná část 'xorg.conf' tedy vypadá takto:
Section "Device"
Identifier "Configured Video Device"
Driver "openchrome"
Option "VBEModes" "true"
Option "VBESaveRestore" "true"
Option "NoAccel" "true"
EndSection
Zde bych zmínil zvláštní vlastnost ovladače ve Windows. Ten umí na fyzické rozlišení 800x480 přepočítat i některá další rozlišení až do 1024x768, což se občas opravdu hodí (ač to nemusí být úplně čitelné). S openChrome ani VESA toto možné není a co hůř, nepodařilo se mi ani zprovoznit větší virtuální plochu. Přesněji řečeno, větší asi je, ale nescrolluje...
Co nám visí na USB?
Jak jsem již popisoval výše, některá USB zařízení se dají fyzicky odpojit pomocí speciálních tlačítek na klávesnici. Pokud jsou však všechna připojena, 'lsusb' nám říká něco takového:
Bus 004 Device 009: ID 0c45:62c0 Microdia Pavilion Webcam
Bus 004 Device 008: ID 05e3:0607 Genesys Logic, Inc.
Bus 004 Device 006: ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 002: ID 0a5c:2101 Broadcom Corp. A-Link BlueUsbA2 Bluetooth
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Ta čtyři zařízení s ID 0000:0000 jsou čtyři host controllery (root HUBy). Dále je tam vidět (podle pořadí sběrnic) touchscreen, bluetooth, WiFi a HUB s kamerou (proč je tam vřazen ten HUB, mi stále uniká).
První problém na USB - WiFi
Podpora pro RTL8187 je dnes již součástí kernelu. Čip RTL8187B je však - bohužel - něco úplně jiného a rozdýchat jej není zrovna triviální. Nejprve jsem vsadil na osvědčený ndiswrapper, který by měl fungovat. Funguje však jen do té míry, že kartu vidí, ale jakékoliv nastavení iwconfigem v tichosti ignoruje a adaptér se samozřejmě nikam nespojí. Dočetl jsem se, že jistá kombinace verzí ndiswrapperu a ovladače by snad fungovat měla, nicméně mé pokusy stejně nikam nevedly.
Pak jsem narazil na
nativní open source ovladač. Ten, zdá se, funguje, má však některé velmi podivné vlastnosti.
Samotná kompilace je bezproblémová. Soubor 'rtl8187b-modified-dist.tar.gz' se rozbalí, rozbalená struktura se opatchuje souborem '2.6.24.patch' a výsledek se zkompiluje. Pak to ale začne...
Výsledkem kompilace je pro kernely 2.6.x celkem šest modulů (pro 2.4.x dokonce devět!) a pro správné zavedení ovladače je třeba tyto moduly nahrát příkazy 'insmod' v přesně daném pořadí. Důsledkem je to, že je třeba tyto moduly držet mimo strom modulů jádra (a nebo je alespoň blacklistovat a stejně nahrávat specializovaným scriptem). 'depmod' spolu s 'modprobe' totiž jinak napáchají víc škody než užitku a síťový adaptér se v systému ani neukáže.
Další nepříjemnou vlastností tohoto ovladače je, že 'iwconfig' neukazuje žádnou statistiku připojení a dokonce ani sílu signálu.
A do třetice, 'lsusb -v' shodí spojení a je třeba moduly odstranit a znovu zavést...
Druhý problém na USB - Touchscreen
Jako nepřítel binárních driverů jsem se napřed vydal
cestou přes
evtouch driver. Ten jsem po jistých obstrukcích nakonec úspěšně zkompiloval, ovladač se úspěšně zaváděl, ale pokud byl v 'xorg.conf' i nakonfigurován, Xka během startu z neznámých důvodů na půli cesty vytuhla.
Nezbylo, než se vydat
binární cestou výrobce touschscreenu. Pro "Kernel 2.6 with xorg 1.4.0 only" byla ke stažení verze 2.03.1712. Zde jsem strávil víc času, než bylo nutné, protože jsem dokumentaci chytil za špatný konec. Očekával jsem totiž, že první bude třeba zkompilovat dodaný kernelový modul 'tkusb.ko', což končilo na obskurní chybě "struct usb_device_id is not terminated with a NULL entry!". Google mi naštěstí poradil doplnit na konec struktury prázdný pár složených závorek a modul se uspěšně zkompiloval. Po jeho zavedení do jádra jsem přešel do další části dokumentace, kde jsem se dozvěděl, že ten modul vůbec nepotřebuji. Uááá...
Binární modul pro X, který jsem mezitím nakopíroval do příslušného adresáře X Window Systemu, totiž umí touchscreen obsluhovat ve třech různých režimech:
- jako USB HID device se standardním kernelovým modulem 'usbhid.ko'
- jako USB event device se standardním kernelovým modulem 'usbtouchscreen.ko' (a nebo 'touchkitusb.ko', který ale v systému nemám)
- s vlastním modulem 'tkusb.ko'
Protože nestandarnímu modulu jsem se chtěl vyhnout a v případě event device není dostupná jedna drobná funkce touchscreenu, volba byla jasná - HID device. V systému se naštěstí nachází jen jedno HID device, takže ověření, zda je to to správné (pomocí 'cat /dev/usb/hiddev0' a následného klepání na touscreen) bylo v podstatě zbytečné. Po doplnění patřičné sekce do 'xorg.conf':
Section "InputDevice"
Identifier "EETI"
Driver "egalax"
Option "Device" "/dev/usb/hiddev0"
Option "Parameters" "/var/lib/eeti.param"
Option "ScreenNo" "0"
EndSection
a doplnění řádku:
InputDevice "EETI" "SendCoreEvents"
na konec sekce "ServerLayout" byl touchscreen funkční. Tedy, ještě se musel zkalibrovat.
Zbývalo jediné. Klepnutí na touchscreen se chovalo jako doubleclick. Z již dříve přečteného mi došlo, že událost se zřejmě nějak dostává i k myši (tj. touchpadu) a systém si myslí, ze jeden klik přišel z touchscreenu a další od myši. Úprava sekce pro myš tak, aby v ní bylo přesně specifikováno, jak je myš připojena, mi dala za pravdu. Doubleclicky zmizely.
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "PS/2"
EndSection
Pro úplnost, do souboru '/var/lib/eeti.param' si ovladač touchcreenu ukládá kalibraci a nastavení, které se provádí dodanou 7.5MB binárkou...
Co jsem zatím nezkoušel
Bluetooth a kameru jsem zatím neřešil, ale zdá se, že zde by problém být neměl (pod Ubuntu 8.04 údajně funguje obojí).
Úsporné režimy
Bez jakýchkoliv dalších zásahů funguje CPU frequency scaling. Bez zátěže běží procesor na 600MHz, pod zátěží se frekvence zvene na 1.2GHz.
Suspend to RAM (ACPI S3) jsem zkoušel jednou, po probuzení počítač opravdu ožil, ale obrazovka zůstala černá. To je prý vcelku standardní chování a řeší se nějakým scriptem. Zatím jsem dál nepátral.
Suspend to disk (ACPI S4) jsem zkoušel opakovaně a zdá se, že funguje bez chyb.
Co nefunguje
I když se toho asi ještě ukáže víc, v tomto okamžiku mne napadá jediné. Regulace podsvětlení displeje. Pod Windows je na to určena jedna speciální klávesa vedle displeje, která cyklicky mění podsvětlení v několika stupních jasu. Pod Linuxem nedělá nic...
Dále mne trošku mrzí, že se mi nějak nedaří obejít nízký počet řádků obrazovky. Ovladač ve Windows to má vyřešeno geniálně, mně by stačil alespoň funkční "Virtual" v 'xorg.conf', protože občas je spodní část nějakého dialogu velice důležitá...
Tak a to je zatím vše. Pokud dospěju k něčemu dalšímu zajímavému, tak dám vědět.
Tiskni
Sdílej:
Komentáře
Vložit další komentář
20.7.2008 08:28
dustin | skóre: 63
| blog:
dustin
Re: Linux na MIVVY UM400
20.7.2008 10:06
Rezza | skóre: 25
| blog:
rezza
| Brno
Re: Linux na MIVVY UM400
20.7.2008 13:25
Kvakor
Suspend to RAM a tmava obrazovka
24.2.2009 14:24
Peter
Re: Linux na MIVVY UM470
Založit nové vlákno •
Nahoru