SonyVaioFZ210
<small>Z Tišnet Wiki</small>
| Obsah |
Linux na Sony Vaio FZ210C
Tady následuje můj pokus zdokumentovat postup pro zprovoznění notebooku Sony Vaio, jež jsem dostal od rodiny darem k vánocům. Model je z USA, v české republice se snad prodává jako FZ21 (bez 0).
lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c) 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) 00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03) 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03) 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3) 00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03) 00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03) 06:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN Network Connection (rev 61) 08:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8036 PCI-E Fast Ethernet Controller (rev 16) 09:03.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller 09:03.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller 09:03.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
lsusb
Bus 006 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 007 Device 005: ID 044e:3012 Alps Electric Co., Ltd Bus 007 Device 003: ID 044e:3010 Alps Electric Co., Ltd Bus 007 Device 004: ID 044e:3013 Alps Electric Co., Ltd Bus 007 Device 002: ID 044e:3011 Alps Electric Co., Ltd Bus 007 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 002: ID 05ca:183b Ricoh Co., Ltd Bus 001 Device 001: ID 0000:0000
(při zapnuté wifi, tedy i s bluetoothem)
Acpi events
eventy reportované z acpi démona. První a zásadní rozdíl je, že reporty se ohlašují jako SNC, nikoliv jako SPIC. Ubuntu je predpripraveno na SPIC, podle toho by i fungovalo par dalsich klaves, jako trebas light +/-.
Momentální poznatky: eventy speciálních kláves chodí jako čísla. první je 00001, druhé podle klávesy. Druhé číslo je 0x000080 OR id klávesy. Při uvolnění tlačítka je bez 0x00080. 0X00080 tedy bude asi rozlišení stisku/puštění. V závorce jsou čísla puštění klávesy.
sony/hotkey SNC 00000001 0000008d fn+esc (0d) sony/hotkey SNC 00000001 0000000c fn+f1 (3b) sony/hotkey SNC 00000001 00000010 fn+f5 - bright down (3b) sony/hotkey SNC 00000001 00000011 fn+f6 bright up (3b) sony/hotkey SNC 00000001 00000012 fn+f7 display switch (3b) sony/hotkey SNC 00000001 00000088 fn+f8 (08) sony/hotkey SNC 00000001 00000089 fn+f9 (09) sony/hotkey SNC 00000001 00000015 fn+f10 zoom (3b) sony/hotkey SNC 00000001 0000008b fn+f11 (0b) sony/hotkey SNC 00000001 00000017 fn+f12 hibernate (3b) sony/hotkey SNC 00000001 00000090 S1 (vedle avmode) (10) sony/hotkey SNC 00000001 000000a1 av-mode (vedle next/prev/play...) (21) sony/hotkey SNC 00000001 00000094 wifi-switch
Funguje (Works)
Na svůj notebook jsem nainstaloval Ubuntu Gutsy (7.10) ve 32 bitové verzi. Updatováno na 8.04.
Wifi
Notebook má uvnitř intel wifi 4965 abgn. V linuxu je podporovaná ovladačem iwlwifi (http://www.intellinuxwireless.org/), přesněji iwl4965.
Po zkompilování mého vlastního kernelu 2.4.24 ovladač je přímo ve vanilla jádru. Tento je poměrně dobrý a netrpí problémy s 802.11G, které jsem měl s výchozím ovladačem v ubuntu po instalaci. Funguje i wpa na AP 5420, tedy přes sdílené heslo. Nefunguje mě ale přihlašování na EDUROAM, pravděpodobně nefunguje správně WPA2 Enterprise verze s 802.1X. Otázka je, jestli je to kernelem, nebo supplicantem.
Grafika
Ovladače na grafiku jsou celkem bez problémů, a nejsou zas tak málo výkonné, jak jsem čekal. Problém je, že s výchozím winem mě hry jedou blbě a tuhnou občas. S vývojovým winem z repozitáře winu to pro jistotu padá. V novější mese jsou prý opravené, to ale vyžaduje rekompilaci nejen mesy (což se mě podařilo), ale i odpovídající verzi X serveru. Tu nemám, takže windowsové hry nefungují.
Od Ubuntu Hardy už hry chodí, zkoušen jenom WoW. Na rozdíl od předchozích pokusů vypadá přesně jak má, v hratelné kvalitě, ale po pár minutách se mě to seklo. Takže to chodí. V Hardym "fungovala" i akcelerace desktopu (zkoušel jsem jen částečnou).
Zkoušel jsem enemy territory, jelo v pohodě v nativní verzi.
Ztmavování funguje pomocí utility xbacklight, je třeba doinstalovat stejnojmenný balík. Ve výchozím ubuntu není mapována ani klávesa, ani akce pro klávesu brightness up/down, nutno nastavit přes gconf editor, globální klávesy jsou v nastavení metacity.
Ozkoušeno přepínání VGA a LVDS výstupu. Plně funguje pomocí xrandr, má rozšíření 1.2. Lze nastavovat rozlišení jednotlivým obrazovkám, i nastavovat pozici separátně nad sebou. Problém byl ale ve velikosti framebufferu, měl jsem to nastaveno na 1280x1280, tedy nelze mít 2 desktopy vedle sebe.
Čtečka karet
Na 2.6.24 jede bez jakéhokoliv zásahu. Jediný problém nastane, když mám puštěnou aplikaci na náhledo fotek (byla mě nabídnuta automaticky po vsunutí karty z foťáku) a uspím systém. Po probuzení aplikace gThumb zbortí Xka docela solidním způsobem, napřed metacity, po zabití metacity pomocí -KILL zase běhal ve smyčce Xserver. Testováno pouze s SD kartou, druhé rozhraní netestováno.
Doporučuju nainstalovat balík pmount, umožní uživatelskou správu zařízení a bezpečné odpojení připojených svazků.
Napájení
Veškerá hlášení fungují přes ACPI, ubuntu korektně rozezná nabíjení, vybíjení a procento nabití i odhad vybití. Teplota procesoru jde přečíst přes ACPI, rychlost větráků ani přes ACPI, ani přes lmsensors.
Uspání
Do paměti
Uspání do paměti mě funguje v kernelu 2.4.24. Z hotkeys jsem vykomentoval zavádění modulu sonypi, aby mě fungovaly i speciální klávesy jako podsvícení a mute. Musí být jenom modul sony-laptop, jinak se bijí a nefunguje speciální nastavení X serveru. Co jsem zkoušel kernel 2.6.22-14-generic, tak tam se mě uspání v tomto nastavení nepovedlo. Možná souvisí se sonypi, myslím že to úspávalo do paměti ve výchozí instalaci.
Na disk - hibernace
Hibernace se mě nepovedla zprovoznit, ani její náznak. Snad časem
Klávesy
Od kernelu je funkční podpora i řady FZ (mojí) pro klávesové zkratky na FN klávesách F2-F12. Následující fungovalo v Ubuntu Gutsy. Je třeba přidat do Xorg.conf:
Section "InputDevice"
Identifier "Sony Vaio Keys"
Driver "evdev"
Option "Name" "Sony Vaio Keys"
Option "XkbLayout" "evdev"
Option "XkbModel" "evdev"
EndSection
Section "InputDevice"
Identifier "Sony Vaio Jogdial"
Driver "evdev"
Option "Name" "Sony Vaio Jogdial"
EndSection
Poznámka: od Ubuntu Hardy input systém vyžaduje zadání "Device" a cesty. Bohužel sony-laptop nemá by-id nebo by-path cestu v /dev/input, a na různých kernelech se mě to ukazuje s různými čísly u eventX. Navíc mě to nějak nefunguje. Pro otestování inputu lze použít balík xinput, případně input-utils. Momentálně mě zase FN klávesy přes xev nechodí, ale chodí jenom přes ACPI.
V Ubuntu Hardy Heron funguje toto:
Section "InputDevice"
Identifier "Sony Vaio Keys"
Driver "evdev"
Option "Device" "/dev/input/by-id/acpi-sony_laptop-event-kbd"
Option "Name" "Sony Vaio Keys"
Option "XkbLayout" "evdev"
Option "XkbModel" "evdev"
EndSection
Section "InputDevice"
Identifier "Sony Vaio Jogdial"
Driver "evdev"
Option "Device" "/dev/input/by-id/acpi-sony_laptop-event-mouse"
Option "Name" "Sony Vaio Jogdial"
EndSection
Aby se objevila cest /dev/input/by-id/acpi-sony_laptop*, musel jsem si napsat skriptik pro udev. Umístit do /etc/udev/rules.d/60-sony-input.rules (http://www.pihhan.info/sony/60-sony-input.rules)
# modified version of persistent-input rules. a few hacks to link sony input keys on laptops to single name
ACTION!="add|change", GOTO="sony_input_end"
SUBSYSTEM!="input", GOTO="sony_input_end"
KERNEL=="input[0-9]*", GOTO="sony_input_end"
SUBSYSTEMS=!"acpi", GOTO="sony_input_end"
ATTRS{name}=="Sony Vaio Keys", ENV{ID_CLASS}="kbd"
ATTRS{name}=="Sony Vaio Jogdial", ENV{ID_CLASS}="mouse"
ATTRS{name}=="Sony Vaio *", ENV{ID_BUS}="acpi"
ATTRS{name}=="Sony Vaio *", ENV{ID_SERIAL}="sony_laptop"
# fill empty serial number
ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
# by-id links
#KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}"
# by-path
# not yet handled by script, path_id does not support LNXSYSTEM strange thing!
LABEL="sony_input_end"
Poznámka: V kernelu 2.6.25 se hlásí události FN kláves pomocí kódu KEY_FN_F1 etc. To je sice hezké, ale keycode těchto kláves je > 255, takže Xorg je zcela ignoruje. Pomocí programu xinput ze stejnojmenného balíku lze ověřit, že alespoň v této konfiguraci fungují jenom klávesy S1 a AV-mode, protože hlásí události <= 255.
Do ServerLayout ještě přidat tato zařízení:
InputDevice "Sony Vaio Keys" "SendCoreEvents"
InputDevice "Sony Vaio Jogdial" "SendCoreEvents"
Potom je možné mapovat speciální funkce. Já si je namapoval pomocí ~./Xmodmap takto:
keycode 222 = SunVideoLowerBrightness keycode 223 = SunVideoRaiseBrightness keycode 227 = XF86ZoomIn keycode 224 = XF86Display keycode 229 = XF86Sleep keycode 218 = F13 keycode 219 = F14 keycode 157 = XF86AudioMedia
Multimediální klávesy nepotřebují žádnou speciální podporu a fungují z fleku. AV mode a S1 fungují taky, ale nepoužívám. Klávesy zprovozňuje kernel od 2.6.23 v modulu sony-laptop. Bez nich budou fungovat jen multimediální tlačítka.
Zvukovka
Zvukovka je HD Audio, ale mapování ve výchozím nastavení nebylo rozpoznáno. Do /etc/modprobe.d/sony-laptop jsem si pridal:
options snd-hda-intel model=vaio
Tento soubor neexistoval, prostě si vytvořte nový s tímto :)
DVD palírna
Ačkoliv nautilusovo vypalování mě nějak blblo a nebylo schopné vymazat moje dvd-rw, trochu nakopnutí pomocí dvd+rw-tools pomohlo. Problém je zdá se v gui, cmd příkazy nemají pravděpodobně problém. Akorát si dejte pozor, ať se vám notes neuspí při pálení DVD na hodinu, jak se to stalo mě po půl hodině, kdy jsem šel pryč :)
Webkamera
Ovladač není v kernelu ani výchozím ubuntu, ale je ke stažení na [1] (http://wiki.mediati.org/R5u870). Pro můj model není v balíku dostupný správný firmware, bylo potřeba upravit kód načítání, aby se nebortil na paketu nulové délky. Patch je v bugtrackeru, i s patchem pro kompilaci pro 2.6.25.
Tak, 20. dubna 2008 se mi podařilo najít problém v délce firmwaru a kamera se rozchodila jako mávnutím kouzelného proutku :) Patch odeslán maintainerovi, uvidíme, zda se bude líbit. Funguje v Ekize i xawtv. Skype nezkoušen.
Bluetooth
Připojeno automaticky přes usb hub, automaticky se vypíná wifi switchem, netřeba vypínat programově.
Zařízení se detekuje, je to nějaký broadcom. Používá modul hci_usb. Zařízení se sice s hci utilitami baví, ale nepovedlo se mi provést úspěšné objevení zařízení. Ve výpisu hciconfig nejsou ani PSCAN, ani ISCAN, hcitool vrací na pscan chyby.
Edit: je třeba přidat modulu hci-usb parametr reset=1, poté se objeví PSCAN i ISCAN. Pravděpodobně bude potřeba také zapnout force_scofix=1.
do /etc/modprobe.d/sony-laptop
options hci-usb reset=1
Nefunguje (Do not work)
Hibernace
alias Suspend to disk. V ubuntu 8.04 se s distribučním jádrem samo nabízí uspání na disk, nicméně to funguje velice podezřele.
Vypnutí bluetooth
Nejde vypínat bluetooth pro ušetření napájení, podobně jak to jde utilitou ve vistě.
Netestováno
- Modem (přes zvukovku cosi)
- Čtečka karet

