Sony Vaio VGN-S3XP e Slackware Linux 10.2
Sony VAIO VGN-S3XP e Slackware Linux 10.2
FUNZIONALITA' | STATUS |
---|---|
Kernel 2.6.17.4 | 100% |
Video | 100% |
Touchpad e Mouse | 100% |
Audio | buggato |
Risparmio energetico | 100% |
Sospensione (Suspend2) | 100% |
Automount periferiche removibili | 100% |
Wireless | 100% |
PCMCIA | 100% |
Bluetooth | 100% |
Tasti Fn | 100% |
Hardware
Processore Intel® Pentium® M 760 2 GHz, 533 MHz FSB, 2048 KB Cache L2 1 GB SDRAM DDR2 (PC2-3200 - DDR2-400) Schermo a cristalli liquidi X-black 13 1280x800 NVIDIA® GeForce™ Go 6200 con supporto TurboCache™ da 128 MB
# lspci 00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03) 00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03) 00:1b.0 Class 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller <br /> (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03) 00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller <br/> (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3) 00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller <br/> (rev 03) 00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03) 01:00.0 VGA compatible controller: nVidia Corporation GeForce Go 6200 TurboCache (rev a1) 06:05.0 CardBus bridge: Texas Instruments PCI7420 CardBus Controller 06:05.2 FireWire (IEEE 1394): Texas Instruments PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer <br/> Controller 06:05.3 Mass storage controller: Texas Instruments PCI7420/PCI7620 Dual Socket CardBus and Smart Card <br/> Cont. w/ 1394a-2000 OHCI Two-Port PHY/Link-Layer Cont. an 06:08.0 Ethernet controller: Intel Corporation 82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet <br/> Controller Mobile (rev 03) 06:0b.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)
Requisiti software
- Sorgenti del kernel 2.6.17.4
- Patch del kernel per la sospensione (Software Suspend 2)
- Driver video NVIDIA
- Driver synaptics
- Script hibernate
- sysfsutils
- cpufrequtils
- cpufreqd
- smartdimmer
- NVClock
- Moduli IEEE 802.11
- Moduli Intel Pro/Wireless 2200BG
- Firmware Intel Pro/Wireless 2200BG
- pcmciautils
- Driver e utility BlueZ
- evrouter
Partizionamento
Faremo coesistere Slackware Linux 10.2 con il Windows XP preinstallato nel laptop.
Con un tool di partizionamento, come 7Tools Partition Manager (da Windows), realizzare il seguente partizionamento:
# fdisk -l /dev/sda Disk /dev/sda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cilindri of 16065 * 512 = 8225280 bytes Dispositivo Boot Start End Blocks Id System /dev/sda1 1 912 7325608+ 12 Diagnostica Compaq /dev/sda2 * 913 4099 25599577+ 7 HPFS/NTFS /dev/sda3 4100 7924 30724312+ c W95 FAT32 (LBA) /dev/sda4 7925 9729 14498662+ f W95 Ext'd (LBA) /dev/sda5 7925 9602 13478503+ 83 Linux /dev/sda6 9603 9729 1020096 82 Linux swap
/dev/sda1 è la partizione di recovery del VAIO (~7,5 GB);
/dev/sda2 è la partizione di Windows (~25,5 GB);
/dev/sda3 è una partizione di scambio con filesystem FAT32 (~31 GB);
/dev/sda4 è una partizione estesa, che contiene 2 partizioni logiche:
/dev/sda5 è la partizione Linux reiserfs (~13,5 GB);
/dev/sda6 è la partizione di swap (~1 GB).
Installazione
All'accensione premere il tasto F2 alla comparsa del logo VAIO, per accedere al BIOS. E' necessario abilitare l'opzione "LCD Screen Expansion", poichè in caso contrario la schermata di Linux non occuperà tutto lo spazio disponibile nello schermo.
Uscire dal BIOS ed avviare il laptop con il DVD di Slackware inserito nel lettore.
Alla richiesta di quale kernel avviare per l'installazione (boot:) digitare sata.i, altrimenti il programma di installazione non riuscirà a vedere l'hard disk Serial ATA.
Proseguire l'installazione selezionando le opzioni desiderate, ma ricordandosi di scegliere reiserfs come filesystem per la partizione di boot e di scrivere il bootloader LILO nel Master Boot Record (MBR) dell'hard
disk quando richiesto.
Al termine dell'installazione, uscire dal setup e riavviare il laptop (si aprirà automaticamente il carrello del lettore DVD per rimuovere il DVD di installazione non più necessario).
NOTA: il DVD di installazione serve anche come recovery-disk. In caso di guai che non consentano il normale boot, basta avviare con il DVD inserito nel lettore, come se si dovesse arrivare all'installazione, ma arrivati alla shell si può montare il disco di root, cambiare la root con chroot e operare normalmente sui file per risolvere il problema.
Kernel
Estrarre i sorgenti del kernel 2.6.17.4 in /usr/src e creare un collegamento simbolico /usr/src/linux ai sorgenti appena estratti. Estrarre ed applicare la patch per la sospensione.
# tar xfvz linux-2.6.17.4.tar.gz # ln -s linux-2.6.17.4 linux # tar xfvj suspend2-2.2.7-for-2.6.17.tar.bz2 # cd linux # ../suspend2-2.2.7-for-2.6.17/apply
Ecco il mio .config ottimizzato per Sony VAIO VGN-S3XP (e altri modelli simili). Copiatelo in /usr/src/linux e rinominatelo in .config. Compilate il kernel ed installatelo.
# make && make modules_install # cp System.map /boot/System.map-2.6.17.4 # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.17.4
Modificare il file /etc/lilo.conf per avviare il kernel appena installato. Ecco il mio lilo.conf, con due opzioni di avvio per utilizzare o meno l'opzione di sospensione (può servire in caso di "guai"). E' anche importante l'opzione compact, che evita un'attesa iniziale di molti secondi per il caricamento del kernel in memoria. Salvare le modifiche con lilo -v.
NOTA: nella configurazione del kernel non ho incluso i moduli ieee80211 e ipw2200. E' preferibile compilarli a parte, in quanto vengono aggiornati molto più spesso del kernel.
Video
La scheda video è una NVIDIA® GeForce™ Go 6200 con supporto TurboCache™ da 128 MB ed il monitor a cristalli liquidi X-black 13 supporta una risoluzione di 1280x800.
Installare i driver video NVIDIA.
# chmod +x NVIDIA-Linux-x86-1.0-8762-pkg1.run # ./NVIDIA-Linux-x86-1.0-8762-pkg1.run
Lasciare modificare il file /etc/X11/xorg.conf direttamente al programma di installazione dei driver.
Aprire il file /etc/X11/xorg.conf con un editor di testo (per es. pico) ed aggiungere le righe
HorizSync 31.5 - 90.0 VertRefresh 60.0 - 60.0 ModeLine "1280x800" 87.1 1280 1336 1616 1728 800 802 814 840 -hsync +vsync
alla sezione "Monitor" ed aggiungere la modalità "1280x800" nella sezione "Screen" per utilizzare la risoluzione 1280x800.
NOTA: nella prossima scheda c'è il link per scaricare il mio xorg.conf.
Touchpad e Mouse
Il touchpad viene rilevato come un ALPS GlidePoint.
Installare i driver synaptics.
# tar xfvj synaptics-0.14.5.tar.bz2 # cd synaptics-0.14.5 # make && make install
Modificare il file /etc/X11/xorg.conf per l'utilizzo del touchpad e di un eventuale mouse USB.
Ecco il mio file xorg.conf modificato con le opzioni per la scheda video e per l'utilizzo di touchpad e mouse.
Audio
Il controller audio integrato è riconosciuto come Intel High Definition Audio Controller.
Lanciare alsaconf e poi alsamixer per regolare il volume dei canali audio. Ricordarsi di togliere il flag "mute" al canali PCM e Front, selezionando i canali con i tasti direzionali e premendo M.
NOTA: il modulo hda_intel del kernel 2.6.17.x è buggato. L'inizializzazione non funziona bene: avviando il laptop a freddo l'audio funziona soltanto dall'uscita cuffie, mentre avviando prima Windows e riavviando poi in Linux l'audio funziona correttamente. Il problema sarà risolto nella prossima release del kernel.
NOTA2: per risolvere momentaneamente il problema, utilizzando la sospensione la situazione dell'audio si "congela" e quindi non è necessario il primo avvio in Windows.
Risparmio energetico
Nel kernel sono state abilitate le opzioni per il CPU Frequency Scaling, ma è necessario un gestore dei controllori in ambiente userspace per far sì che il laptop si adatti automaticamente agli eventi ACPI.
Installare il pacchetto sysfsutils (sarà necessario anche per le funzionalità PCMCIA).
# installpkg sysfsutils-2.0.0-i486-2.tgz
Compilare ed installare cpufrequtils e poi cpufreqd.
# tar xfvj cpufrequtils-002.tar.bz2 # cd cpufrequtils-002 # make && make install # cd .. # tar xfvj cpufreqd-2.1.1.tar.bz2 # cd cpufreqd-2.1.1 # ./configure # make && make install
Per avviare cpufreqd ad ogni boot della macchina, aggiungere al file /etc/rc.d/rc.local la riga
/usr/local/sbin/cpufreqd
NOTA: si consiglia l'utilizzo dell'applet cpuinfo per tenere sotto controllo la frequenza e la temperatura della CPU direttamente dal pannello di KDE. Per caricare l'applet, installare il pacchetto (con installpkg), fare click destro sul pannello di KDE (la barra con le icone), scegliere l'opzione "Aggiungi un'applet al pannello" e selezionare poi "CPU Info".
Per gestire la luminosità del monitor si deve compilare ed installare il programma smartdimmer.
# tar xfvj smartdimmer-0.1.tar.bz2 # cd smartdimmer # ./configure # make && make install
Con i comandi smartdimmer -d e smartdimmer -i si diminuisce/aumenta la luminosità dello schermo. Questo programma sarà utilizzato successivamente, in abbinamento a evrouter, per gestire le azioni corrispondenti ai tasti Fn.
Il alternativa, si può utilizzare NVClock.
# tar xfvz nvclock0.8b2.tar.gz # cd nvclock0.8b2 # ./configure # make && make install
Per esempio: il comando nvclock -S 20 riduce la luminosità dello schermo al 20%.
Sospensione
Il kernel è stato patchato con la patch Software Suspend 2. Per lanciare la sospensione è necessaria l'installazione dello script hibernate.
Modificare il file /etc/hibernate/suspend2.conf per l'utilizzo della modalità di sospensione nella partizione di swap, decommentando le seguenti righe ed inserendo il giusto device della partizione di swap.
SuspendDevice swap:/dev/sda6 PowerdownMethod 5
Aprire il file /etc/hibernate/blacklisted-modules con un editor di testo, cercare la riga con il modulo nvidia e commentarla ponendo un # all'inizio della riga. Negli ultimi driver NVIDIA, infatti, è stato implementato il supporto per la sospensione.
Da adesso sarà possibile lanciare la sospensione con il comando hibernate (da root)
Automount periferiche removibili
E' consigliata l'installazione di udev, da utilizzare al posto di hotplug, e dbus, il nuovo bus di comunicazione tra le applicazioni. Questi pacchetti serviranno anche per altre funzionalità, quindi si dovrebbero installare a prescindere dall'automount.
Hal (Hardware Abstraction Layer) è, in pratica, il demone che permette di montare automaticamente le periferiche removibili come pendrive, macchine fotografiche e DVD. Niente di indispensabile, ma fa molto figo ;)
Nell'attesa di Slackware 11.0, in cui questi pacchetti saranno installati di default, c'è una guida molto ben fatta e sempre aggiornata su questo argomento ---> Automount con Kde e Slackware.
Wireless
La scheda wireless integrata è una Intel PRO/Wireless 2200BG.
Estrarre i moduli ieee80211 e ipw2200, compilarli ed installarli.
# tar xfvz ieee80211-1.1.14.tgz # cd ieee80211-1.1.14 # make && make install # cd .. # tar xfvz ipw2200-1.1.3.tgz # cd ipw2200-1.1.3 # make && make install
Estrarre il firmware della scheda Intel PRO/Wireless 2200BG e copiarli in /lib/firmware.
# tar xfvz ipw2200-fw-3.0.tgz # cp ipw2200-fw-3.0/* /lib/firmware
Caricare il modulo ipw2200 ed utilizzare il comando iwconfig per gestire la connessione wireless (man iwconfig per i dettagli).
# modprobe ipw2200 # iwconfig eth2 eth2 unassociated ESSID:off/any Mode:Managed Channel=0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0 Retry limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:9 Missed beacon:0
NOTA: la scheda Intel PRO/Wireless 2200BG non è adatta all'utilizzo con programmi di decifratura delle chiavi WEP, come la suite aircrack/aireplay/airodump, poichè il firmware attuale rifiuta i cosiddetti "Weak packets" (IVI), che servono ad aireplay per la tecnica del packet-flooding.
PCMCIA
Il kernel è configurato per il supporto generico PCMCIA. Per periferiche particolari sarà necessario compilare i driver specifici.
Compilare ed installare pcmciautils.
# tar xfvj pcmciautils-012.tar.bz2 # make && make install
Per gestire lo slot PCMCIA utilizzare il comando pccardctl (man pccardctl per i dettagli).
Bluetooth
Installare tutti i pacchetti della suite BlueZ ed il pacchetto kdebluetooth.
# installpkg bluez-firmware-1.2-i486-3sl.tgz # installpkg bluez-hcidump-1.32-i486-1sl.tgz # installpkg bluez-libs-3.4-i486-1sl.tgz # installpkg bluez-utils-3.4-i486-1suk.tgz # installpkg openobex-1.3-i486-1sid.tgz # installpkg kdebluetooth-20060415-i486-2sid.tgz
Avviare il demone spdp ed utilizzare il comando hciconfig per connettersi con le periferiche bluetooth (man hciconfig per i dettagli).
# sdpd # hciconfig hci0: Type: USB BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0 DOWN RX bytes:0 acl:0 sco:0 events:0 errors:0 TX bytes:0 acl:0 sco:0 commands:0 errors:0
Se si utilizza KDE, avviare il demone kdebluetoothd dal menù di KDE (nel sottomenù Internet).
Tasti Fn
Aggiungere al file /etc/rc.d/rc.modules la riga
/sbin/modprobe sonypi
(se non si vuole riavviare, eseguire lo stesso comando da shell)
Al successivo avvio di KDE, le combinazioni dei tasti Fn saranno intercettate dal demone KMilo e sarà visualizzato un OSD (On Screen Display) informativo. Comunque questa soluzione è parziale, in quanto non sembra possibile impostare le azioni corrispondenti alla pressione dei tasti Fn.
La soluzione definitiva è molto più complessa.
E' possibile rendere funzionanti al 100% i tasti funzione, utilizzando evrouter per intercettare la pressione dei tasti Fn.
Decomprimere ed installare evrouter.
# tar xfvz evrouter_0.3.3.tar.gz # cd evrouter # ./configure # make && make install
Creare il gruppo "evrouter" ed assegnare il vostro utente a questo gruppo.
# groupadd evrouter # usermod -G evrouter NOME_UTENTE
Modificare il file delle regole di udev /etc/udev/rules.d/udev.rules cercando la riga corrispondente ai device event* e sostituendola con la seguente
KERNEL=="event*", NAME="input/%k", MODE="0660", GROUP="evrouter"
Copiare il seguente script in /usr/bin/findSonyKeysDevice
#!/bin/bash evrouter -D /dev/input/event* | grep Keys | cut -f 2 -d ":"
e dargli l'attributo di esecuzione
# chmod 755 /usr/bin/findSonyKeysDevice
Eseguire findSonyKeysDevice per trovare il device corrispondente ai tasti Fn del VAIO. Per me è /dev/input/event5, ma può variare a seconda del modello.
Copiare il seguente script in ~/.kde/Autostart/evrouter
#!/bin/sh if [ -e /usr/local/bin/evrouter ]; then /usr/local/bin/evrouter `findSonyKeysDevice` >& /dev/null fi
e dargli l'attributo di esecuzione
# chmod 755 ~/.kde/Autostart/evrouter
Eseguire evrouter --dump `findSonyKeysDevice` e premere in sequenza tutte le combinazioni dei tasti Fn. Sarà data in output una serie di righe di configurazione da copiare ed incollare in ~/.evrouterrc, per poi modificare le azioni da eseguire alla pressione di ogni tasto.
Segue il mio file di configurazione ~/.evrouterrc per il funzionamento delle combinazioni Fn+F2/F3/F4/F5/F6/F12.
"Sony Vaio Keys" "/dev/input/event5" none key/467 "Shell/amixer set Front toggle > /dev/null" "Sony Vaio Keys" "/dev/input/event5" none key/468 "Shell/amixer set Front 5%- > /dev/null" "Sony Vaio Keys" "/dev/input/event5" none key/469 "Shell/amixer set Front 5%+ > /dev/null" "Sony Vaio Keys" "/dev/input/event5" none key/470 "Shell/smartdimmer -d" "Sony Vaio Keys" "/dev/input/event5" none key/471 "Shell/smartdimmer -i" "Sony Vaio Keys" "/dev/input/event5" none key/477 "Shell//usr/sbin/hibernate"
PS: lo script hibernate deve essere impostato con i permessi SUID (chmod +s /usr/sbin/hibernate), altrimenti funzionerà solo da root. PPS: il programma smartdimmer è stato trattato nella sezione Risparmio energetico.
Sarà necessario disabilitare il demone KMilo di KDE, per evitare interferenze nella gestione dei tasti Fn. E' possibile disabilitarlo da Menù -> Impostazioni -> Componenti di KDE -> Gestione servizi.
Al successivo reboot, alla pressione delle combinazioni di tasti Fn seguiranno le corrispondenti azioni appena impostate.
Ringrazio raphael per avermi fornto la soluzione che mi ha permesso di completare questo tutorial.
Aggiornamento della distribuzione
Si consiglia di mantenere la distribuzione aggiornata alla versione current tramite il tool swaret. Questo programma si appoggia ai repository di Slackware, ufficiali e non ufficiali, per scaricare ed installare le ultime versioni dei pacchetti precompilati ed ottimizzati per la distro.
Il mio swaret.conf è già configurato con i due repository non ufficiali più aggiornati: Slacky.it e LinuxPackages. Modificare eventualmente la voce NIC=ethX, verso la fine del file, specificando il nome dell'interfaccia di rete connessa ad Internet (eth0 LAN o eth2 wireless).
Changelog
- 06/09/2006 Tasti Fn funzionanti al 100%. Thanx to raphael! Aggiunta la sezione sull'automount.
- 24/07/2006 Aggiornamento totale. Nuova configurazione del kernel con il supporto per la sospensione.
- 22/10/2005 Aggiornato il .config per il kernel 2.6.13.4 e per il corretto utilizzo del CPU Frequency Scaling.
- Aggionata la parte del wireless (nuovi driver ipw2200).
- 26/09/2005 Aggiunte le parti sull'uscita video, sul Bluetooth e sulla luminosità dello schermo.
- 25/09/2005 Modificata la parte sui driver synaptics... ora funzionano al 100%! Sono stati aggiornati
anche il .config e xorg.conf.
- 24/09/2005 Prima release
Grazie a tutti e... buon divertimento con il vostro Sony VAIO Slackwarizzato! ;) Bruno Mendola « bruno.mendola AT gmail.com » Tutorial scritto da Bruno Mendola « bruno.mendola AT gmail.com » Ultimo aggiornamento: 06/09/2006