Linux sur un portable Sony VPCF11M1E

Description matérielle

Introduction

Voici une documentation sur l’installation de Linux sur un portable Sony Vaio et plus précisément sur le modèle Sony VPCF11M1E.

Matériel

Processeur Intel Core i5-520M – 2.4 GHz
RAM 4 Go DDR2
Carte mémoire Ricoh Co Ltd Device e822
CD / DVD / Blu-ray Optiarc BD ROM BC-5500S4, 1.Va, max UDMA/100, ATAPI AN
Disque dur ATA-8: Hitachi HTS545050B9SA00, PB4OC64G, max UDMA/133
Contrôleur Sata Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller
Carte graphique nVidia GeForce GT 330M – 1024 Mo
Carte son Intel Corporation 5 Series/3400 Series Chipset High Definition Audio
nVidia Corporation High Definition Audio Controller
Carte réseau Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit Ethernet Controller
Carte Wi-Fi Intel Corporation Centrino Advanced-N 6200
PCMCIA Intel Corporation Core Processor PCI Express x16 Root Port
Autres Webcam, Bluetooth, Modem, FireWire, Touchpad…

Configuration PCI

Ci-dessous la sortie de la commande lspci :

[root@Dahlia /root]$ lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:01.0 PCI bridge: Intel Corporation Core Processor PCI Express x16 Root Port (rev 02)
00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 05)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 05)
00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 05)
00:1c.2 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 3 (rev 05)
00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 05)
00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a5)
00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 05)
01:00.0 VGA compatible controller: nVidia Corporation GT216 [GeForce GT 330M] (rev a2)
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 35)
03:00.0 SD Host controller: Ricoh Co Ltd Device e822
03:00.1 System peripheral: Ricoh Co Ltd Device e230
03:00.3 FireWire (IEEE 1394): Ricoh Co Ltd Device e832
03:00.4 SD Host controller: Ricoh Co Ltd Device e822
04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit Ethernet Controller (rev 10)
3f:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
3f:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
3f:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
3f:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02)
3f:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
3f:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02) 

Configuration USB

Ci-dessous la sortie de la commande lsusb :

[root@Dahlia /root]$ lsusb
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0489:e00f Foxconn / Hon Hai
Bus 001 Device 003: ID 064e:2100 Suyin Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Installation de la distribution

Debian unstable

Ayant l’habitude de travailler avec une distribution Debian, mon choix s’est naturellement porté vers Debian, et plus particulièrement sur la version Sid (ou encore unstable)

Toute fois, cela devrait être exactement la même chose en ce qui concerne les autres ditributions.

Pour commencer l’installation, j’ai utilisé la première ISO d’une Debian testing. J’installe le strict minimum, puis je configure le réseau pour enfin terminer mon installation par Internet.

La première étape est de définir ses partitions. Pour l’instant, j’ai conservé ma partition Windows d’origine.

A titre d’exemple, j’ai :

[root@Dahlia /root]$ fdisk -l /dev/hda
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xfdc27c00
 
Device     Boot   Start  End    Blocks        Id  System
/dev/sda1             1    608  4881408       82  Linux swap / Solaris
/dev/sda2     *     608   2432  14648320       7  HPFS/NTFS
/dev/sda3          2432  10942  68359168      83  Linux
/dev/sda4         10942  60802  400495616+     5  Extended
/dev/sda5         60802  55925  361326592     83  Linux
/dev/sda6         55925  59573  29295616      83  Linux
/dev/sda7         59573  60802  9871360       83  Linux
 
Partition table entries are not in disk order 

Mes points de montage :

[root@Dahlia /root]$ mount
/dev/sda2 on / type reiserfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda5 on /home type reiserfs (rw)
/dev/sda6 on /usr type reiserfs (rw)
/dev/sda7 on /var type reiserfs (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
nfsd on /proc/fs/nfsd type nfsd (rw) 

Ce que cela donne après une installation :

[root@Dahlia /root]$ df -h
Sys. de fich.  Tail.   Occ.   Disp.  %Occ.   Monté sur
/dev/sda2        14G   6,6M    7,5G    47%   /
tmpfs           1,9G      0    1,9M     0%   /lib/init/rw
udev            1,9G   280K    1,9M     1%   /dev
tmpfs           1,9G   284K    1,9G     1%   /dev/shm
/dev/sda5       345G    38G    307G    11%   /home
/dev/sda6        28G    17G     12G    60%   /usr
/dev/sda7       9,5G   3,8G    5,7G    40%   /var

Attention, si vous souhaitez utiliser les fonctionnalités de mise en veille prolongée, je vous conseille de mettre 10 Go de swap si vous voulez être tranquille.

Ma liste de packages

Kernel 2.6.34.1

Comme d’habitude (peut-être une mauvaise), je recompile mon noyau afin de mieux maîtriser ce qu’il fait.

Téléchargez mon fichier « .config ».
(en cours d’optimisation, en effet pour le moment c’est celui qui correspond au package)

[root@Dahlia src]$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.1.tar.bz2
[root@Dahlia src]$ tar -jxf linux-2.6.34.1.tar.bz2
[root@Dahlia src]$ ln -s linux-2.6.34.1 linux
[root@Dahlia src]$ cd linux
[root@Dahlia linux]$ cp ~/config.txt .config
[root@Dahlia linux]$ make bzImage
[root@Dahlia linux]$ make modules
[root@Dahlia linux]$ make modules_install
[root@Dahlia linux]$ cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.34.1-amd64
[root@Dahlia linux]$ cp System.map /boot/System.map-2.6.34.1-amd64
[root@Dahlia linux]$ cd /boot
[root@Dahlia boot]$ update-initramfs -c -k 2.6.34.1 

J’utilse GRUB comme bootloader. Téléchargez ici ma configuration de GRUB.

[root@Dahlia /root]$ apt-get install grub
[root@Dahlia linux]$ grub-install /dev/hda
[root@Dahlia linux]$ cd /boot
[root@Dahlia /boot]$ tar -zxf grub.tar.gz
[root@Dahlia /boot]$ cd grub
{root@Dahlia grub]$ ./install 

Bien sûr, vous devrez adapter votre configuration à vos partitions.

[root@Dahlia /root]$ blkid /dev/sda2
/dev/sda2: UUID="2383d50d-9235-458f-8a8f-a79a4bf54f55" TYPE="reiserfs" 

Réseau LAN

Pour utiliser votre interface réseau, il n’y a aucun soucis. En effet les noyaux ayant une version supérieure à 2.6.34.1 supportent nativement notre carte.

A l’aide de udev, vous pouvez choisir le nom de vos interfaces réseaux.

[root@Dahlia /root]$ cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x11ab:0x4380 (sky2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:24:be:c1:35:44", \
  ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x422c (iwlagn)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:14:27:d4:a0", \
  ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
[root@Dahlia /root]$ apt-get install ifrename
[root@Dahlia /root]$ ifconfig -a
eth0  	Lien encap:Ethernet HWaddr 00:24:be:c1:35:44
  	UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
	RX packets:0 errors:0 dropped:0 overruns:0 frame:0
	TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
	collisions:0 lg file transmission:1000
	RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
	Interruption:18
 
lo 	Lien encap:Boucle locale
  	inet adr:127.0.0.1 Masque:255.0.0.0
	UP LOOPBACK RUNNING MTU:16436 Metric:1
	RX packets:1040 errors:0 dropped:0 overruns:0 frame:0
	TX packets:1040 errors:0 dropped:0 overruns:0 carrier:0
	collisions:0 lg file transmission:0
	RX bytes:184312 (179.9 KiB) TX bytes:184312 (179.9 KiB)
 
pan0 	Lien encap:Ethernet HWaddr ce:ca:1a:da:7f:16
  	BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
	RX packets:0 errors:0 dropped:0 overruns:0 frame:0
	TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
	collisions:0 lg file transmission:1000
	RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
 
wlan0 	Lien encap:Ethernet HWaddr 00:23:14:27:d4:a0
  	UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
	RX packets:0 errors:0 dropped:0 overruns:0 frame:0
	TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
	collisions:0 lg file transmission:1000
	RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Vidéo (VGA, HDMI…)

J’ai choisi un ordinateur avec une GeForce car ces cartes sont beaucoup plus facile à utiliser sous Linux que les cartes ATI.

Nous allons donc voir tout de suite ce qu’il en est. Nous allons installer les drivers fournis par NVidia et activer l’accélération matérielle.

Dans l’exercice suivant, je suppose que vous compilez les drivers NVidia pour la version du noyau que vous êtes actuellement en train d’utiliser.

[root@Dahlia /root]$ aptitude install nvidia-kernel-dkms nvidia-kernel-source
[root@Dahlia /root]$ dkms build -m nvidia -v 195.36.24 -k 2.6.34.1
[root@Dahlia /root]$ dkms install -m nvidia -v 195.36.24 -k 2.6.34.1

Nous allons rencontrer notre première difficulté ! En effet, le portable ne détecte pas les écrans qui sont connectés.

Néanmoins, nous pouvons contourner le problème en les déclarant manuellement (voir mon fichier xorg).

Ici mon fichier de configuration Xorg.


Ici mon fichier sony-vpcf11m1e.edid.

Audio (Casque, micro…)

Le kernel 2.6.34.1 utilise la version 1.0.22 des drivers alsa. Notre carte son n’est donc pas supportée. Vous devez utiliser la prochaine version 1.0.33. Ou attendre les kernels 2.6.35 ou 2.6.36 dans lequel le support de notre carte est présent.

Une autre solution consiste à appliquer un patch sur la version 2.6.34.1 afin de profiter dès maintenant de votre carte son et de l’entrée micro.

Mon patch pour le son.

[root@Dahlia /root]$ cd /usr/src/linux
[root@Dahlia /usr/src/linux]$ wget http://www.progweb.com/modules/sony/data/sony-sound.patch
[root@Dahlia /usr/src/linux]$ patch -p1 < sony-sound.patch
[root@Dahlia /usr/src/linux]$ make modules
[root@Dahlia /usr/src/linux]$ make modules-install

Après redémarrage de l'ordinateur, le son devrait fonctionner.

Mais nous allons améliorer notre configuration. Personnellement, je souhaite utiliser le serveur de son de Gnome, ainsi qu'ALSA pour mes applications. Il faut donc que je puisse mixer le son.

Pour configurer votre carte si cela n'est pas déjà fait :

[root@Dahlia /root]$ alsaconf

A présent, nous allons configurer le mixer

[root@Dahlia /root]$ cat /etc/asound.conf
pcm.card0 {
    type hw
    card 0
}

pcm.!default {
    type plug
    slave.pcm "dmixer"
}

pcm.dmixer {
    type dmix
    ipc_key 1025
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 4096
        periods 128
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

Cette configuration me permet d'utiliser le serveur de son de Gnome avec ALSA.

Clavier Multimedia

Comment utiliser les touches "multi-média" de votre clavier sous Linux ?

Ceci est tout à fait possible à l'aide du module noyau sony-laptop. De plus vous pourrez chosir l'action a effectuer pour chacune des touches.

Cependant, vous devez légèrement patcher le kernel pour que toutes les touches soient utilisables.

[root@Dahlia /root]$ cd /usr/src/linux
[root@Dahlia /root]$ patch -p1 < sony-laptop-keys.patch

Ici mon patch.

Afin d'utiliser les touches multi-médias, j'ai modifié les scripts acpi.


Mes scripts ACPI.

Via votre gestionnaire de bureau, vous pouvez également utiliser les touches multi-médias.

Souris / Touchpad

Rien à faire de particulier pour avoir le support du touchpad ou d'une souris.

Regarder le fichier de configuration de Xorg pour pouvoir utiliser à la fois une souris et le touchpad.

[root@Dahlia /root]$ cat /etc/gpm.conf
device=/dev/input/mice
responsiveness=
repeat_type=none
type=exps2
append=''
sample_rate=

Néanmoins, votre touchpad n'est pas complètement fonctionnel. Il est en effet détecté comme une simple souris (IMPS/2). Vous ne pouvez donc pas utiliser les drivers synaptic et donc les fonctions multi-touch.

Avez le patch suivant, vous pouvez faire en sorte que votre touchpad soit reconnu par les drivers synaptics. Mais les fonctions de scrolling ne fonctionneront pas !

Il est possible de forcer le mode "souris simple" :

[root@Dahlia /root]$ cat /etc/modprobe.d/psmouse.conf
options psmouse proto=imps

J'essaie de travailler sur ce problème.

Processeur

Pour le processeur, il n'y a pas grand chose de particulier à faire. En plus de le compiler avec le support SMP, vous pouvez le compiler avec le support centrino afin de pouvoir contrôler la fréquence du processeur.

[root@Dahlia /root]$ cat /etc/modules
asus_acpi
speedstep-centrino
cpufreq_stats
cpufreq_userspace
cpufreq_powersave
cpufreq_ondemand 

Pour autoriser un utilisateur à modifier la fréquence du processeur :

[root@Dahlia /root]$ cat /etc/sudoers
login ALL = (root) NOPASSWD: /usr/sbin/cpufreqset [0-9]*
login ALL = (root) NOPASSWD: /usr/sbin/cpufreqsetgovernor [a-z]*
login ALL = (root) NOPASSWD: /usr/sbin/cpufreqnextgovernor 

Personnellement, j'utilise gkrellm pour visualiser et modifier la fréquence du processeur.

Port série

N'ayant plus de port série, j'ai acheté un adaptateur USB <-> série pour pouvoir continuer à utiliser d'ancien périphérique.

[root@Dahlia /root]$ modprobe usbserial
[root@Dahlia /root]$ modprobe pl2303

Et je trouve un port série /dev/ttyS0

CD / DVD / Blu-ray

Pour utiliser le DVD / graveur, il n'y a rien à faire de particulier.

PCMCIA

De même le bus PCMCIA est correctement supporté du moment que vous avez les drivers pour votre carte.

WAN Network

Pour utiliser le WiFi, il n'y a aucun problème. En effet, le support de la carte est inclu dans les kernels 2.6.34.1.

Pour activer ou désactiver la carte, vous pouvez utiliser le switch.

Bluetooth

L'interface Bluetooth est un périphérique USB.

[root@Dahlia /root]$ modprobe bluetooth
[root@Dahlia /root]$ modprobe hci_usb

Firewire

Pour utiliser le FireWire, il faut charger les bons modules.

Par exemple, pour pouvoir utiliser un camescope qui a une prise DV, on devra faire :

[root@Dahlia /root]$ modprobe ohci1394
[root@Dahlia /root]$ modprobe ieee1394
[root@Dahlia /root]$ modprobe raw1394
[root@Dahlia /root]$ modprobe dv1394

Lecteur cartes photo

Aucun soucis pour utiliser le lecteur de cartes, il suffit de charger le module sdhci.

[root@Dahlia /root]$ modprobe sdhci
[root@Dahlia /root]$ mkdir /mnt/sd
[root@Dahlia /root]$ mount /dev/mmcblk0p1 /mnt/sd

Webcam

Sony fournit une webcam respectant le standard UVC, standar qui est implémenté et bien supporté sous Linux..

L'utilisation de la webcam est par conséquent sans difficulté.

Utilisation 32 bits / 64 bits

J'utilise une Debian pour plateforme 64 bits. Se référer à la configuration du kernel.

Bien sûr, toutes les applications sont dans le format natif 64 bits.

Il n'y a donc aucun problème pour lancer des applications 64 bits sur un système 64 bits.

Malheureusement toutes les applications ne sont pas fournits en 64 bits, surtout lorsqu'il s'agit d'application non libre, dont on ne dispose que des binaires. C'est le cas par exemple de google-earth, flash et bien d'autres !

Applications 32 bits

Les mainteneurs Debian proposent des packages 32 bits pour nos plateforme x86-64 :

[root@Dahlia /root]$ aptitude install ia32-libs ia32-libs-gtk

Vous pourrez alors trouver de nouveaux dossiers : /lib32 ; /usr/lib32...
Flash

Depuis quelques mois, Adobe fournit une version 64 bits de son player flash :

[root@Dahlia /root]$ wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
[root@Dahlia /root]$ tar zxvf libflashplayer-*-x86_64.so.tar.gz
[root@Dahlia /root]$ cp libflashplayer.so /usr/lib/mozilla/plugins
[root@Dahlia /root]$ cp libflashplayer.so /usr/lib/iceweasel/plugins
[root@Dahlia /root]$ ln -s /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/xulrunner-addons/plugins

Google Earth

Google fournit seulement une version 32 bits.

[root@Dahlia /root]$ aptitude install googleearth-package
[root@Dahlia /root]$ make-googleearth-package
[root@Dahlia /root]$ dpkg -i googleearth_5.2.1.1329+0.5.7-1_amd64.deb

Vous pouvez alors rencontrer plusieurs difficultés. En effet, certaines versions 32 bits des librairies GL utilisant les modules DRI ne les cherchent pas au bon endroit. Ci-dessous un contournement !

[root@Dahlia /root]$ cat /usr/bin/googleearth
#!/bin/sh
cd /usr/lib/googleearth

# this no longer works with Google Earth 4.3, so we have to revert to using LD_LIBRARY_PATH, sorry
#exec /lib/ld-linux.so.2 --library-path /usr/lib/googleearth /usr/lib/googleearth/googleearth-bin "$@"

GOOGLE_EARTH_LD_LIBRARY_PATH=/usr/lib/googleearth
if [ ! -z "$LD_LIBRARY_PATH" ]; then
  LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GOOGLE_EARTH_LD_LIBRARY_PATH}
else
  LD_LIBRARY_PATH=${GOOGLE_EARTH_LD_LIBRARY_PATH}
fi
export LD_LIBRARY_PATH

LIBGL_DRIVERS_PATH=/usr/lib/dri
if [ `uname -m` = 'x86_64' ]; then
  LIBGL_DRIVERS_PATH=${LIBGL_DRIVERS_PATH}:/#DRIDIR32#/dri
fi
export LIBGL_DRIVERS_PATH

/usr/lib/googleearth/googleearth-bin "$@"

Si vous utilisez le driver Nvidia propriétaire, vous devez installer les librairies 32 bits :

[root@Dahlia /root]$ aptitude install nvidia-glx-ia32

Testez :

[root@Dahlia /root]$ LIBGL_DEBUG=verbose googleearth

Configuration logicielle

Mes applications

Vous trouverez ici rapidement la liste des applications que j'utilise :

Desktop Bureautique Réseau Développement Multi-média
Gnome & Sawfish OpenOffice Mutt Bluefish Audacious
Gkrellm2 Planer Evoluton Glade Grip
graveman Evince Gaim Anjuta Kino
gtkam Gnochm GFTP VIM VLC
Dia Epiphany Xine
GQview Ekiga Mplayer
The Gimp Pan RealPlayer
X-Chat Cinelerra

Mon bureau

Cette entrée a été publiée dans Debian, Linux, avec comme mot(s)-clef(s) , . Vous pouvez la mettre en favoris avec ce permalien.

3 réponses à Linux sur un portable Sony VPCF11M1E

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *