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
Osobní nástroje