Linux on Sony VPCF11M1E laptop

Hardware features

Introduction

Here, you find a documentation about Linux on a Sony Vaio laptop and in particular a Sony VPCF11M1E.

Hardware

Processor Intel Core i5-520M – 2.4 GHz
RAM 4 Go DDR2
Photo card reader Ricoh Co Ltd Device e822
CD / DVD / Blu-ray Optiarc BD ROM BC-5500S4, 1.Va, max UDMA/100, ATAPI AN
Hard drive ATA-8: Hitachi HTS545050B9SA00, PB4OC64G, max UDMA/133
Sata controler Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller
Video card nVidia GeForce GT 330M – 1024 Mo
Sound card Intel Corporation 5 Series/3400 Series Chipset High Definition Audio
nVidia Corporation High Definition Audio Controller
Netword card Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit Ethernet Controller
Wi-Fi Intel Corporation Centrino Advanced-N 6200
PCMCIA Intel Corporation Core Processor PCI Express x16 Root Port
Others Webcam, Bluetooth, Modem, FireWire, Touchpad…

PCI features

Below lspci output :

[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) 

USB features

Below lsusb ouput :

[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

Distribution installation

Debian unstable

I used to work with a Debian distribution, so I choose a Debian and in particular a Sid Debian (or unstable)

Normally, it should be exactly the same proceed with the others distributions.

At first, I use the first ISO of Debian testing. I install the minimal system, then I set the network to complet the install by network.

The first step is the definition of partitions. I keep the Windows partitions.

Sample below :

[root@Dahlia /root]$ fdisk -l /dev/sda
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 

Mount points :

[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) 

After a complet install :

[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

WARNING, if you wish use the hibernate mode… You’d rather set 10 Go to be quiet.

My packages list

Kernel 2.6.34.1


I used to compile my kernel… to choose its features. You can download my “.config” file (in current optimisation…).

[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 

My bootloader is GRUB. You can download here my GRUB configuration.

[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 

Of course, you have to adapt for your table partitions(and partition names). Use the “blkid” command to get the partition names.

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

LAN network

To use the netword card, there isn’t problem. Indeed the kernels higher to 2.6.34.1 support our card.

From udev, you can choose the name to give to your netword interfaces.

[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)

Video (VGA, HDMI…)

I have chosen a laptop with a GeForce card, because this card are better supported by Linux than the ATI cards.

We install the driver and try the hardware acceleration.

Below, I compile the driver for the kernel current running.

[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

We meet our first difficultiy ! Indeed, the laptop doesn’t detect the monitors that are plugged

Nevertheless, we can find a workaround to define manually it (refer to my Xorg file).

Here my Xorg file configuration.

Here my sony-vpcf11m1e.edid file.

Audio (Headphone, Micro…)

The 2.6.34.1 is provided with the 1.0.22 alsa drivers. So it doesn’t support your sound card. You have to use the next release of the alsa driver 1.0.23.

An other way is patch your 2.6.34.1 kernel release so as to use now your sound card and the micro.

My sound patch.

[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

After rebooting, the sound should work !

But, we increase this installation. In fact, I want use the Gnome sound daemon and ALSA for my applications. I have to mix the sound.

To install the sound card :

[root@Dahlia /root]$ alsaconf

Now, I set the 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
    }
} 

This configuration permits to use the Gnome sound server and ALSA.

Multimedia keyboard

How do you use the "multi-media" keys under Linux ?

This is possible with the module sony-laptop from kernel. Moreover, you can choose the action for each button.

However, you have to patch your kernel (sony laptop module) :

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

Here the sony laptop module patch.

To use the multi-media keys, I have modified the acpi scripts.

Here my acpi scripts.

To use multimedia keys, you can also use your window managers.

Mouse / Touchpad

It isn't very difficult. To use in the same time mouse and touchpad.

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

Nevertheless, your touchpad is only detected as a simple mouse (IMPS/2). So you can't use synaptic drivers and multi-touch features.

With the follow patch, you can enable the synaptic features. Your touchpad will be detect as a synaptic devices. But the scroll feature doesn't work !

You can so use the workaround to use your touchpad :

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

I'm trying to fix this issue and to be able to use the multitouch feature.

Processor

For the processeur, you have to compile your kernel with the SMP support and the centrino support to be able to control the CPU frequency.

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

To allow an user to modify the CPU frequency :

[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 

As far as I'm concerned, I use gkrellm to set the CPU frequency.

Serial port

I have bought an USB <-> serial adaptater to be able to used my old devices.

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

And I find the serial port /dev/ttyS0

CD / DVD / Blu-ray

Nothing in particular for this device.

PCMCIA

Nothing in particular for this device.

WAN Network

To use the wireless network card, there isn't problem. Indeed the kernels 2.6.34.1 supports our card.

To enable or disable the device, you can use the switch.

Bluetooth

To use bluetooth, you have to enable the USB interface.

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

Firewire

To use this device, you have to load the good modules.

By sample, to use a video camera :

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

Photocard reader

No difficult to use the photocard reader, you haveto load the module sdhci.

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

Webcam

Sony is provided with a webcam compliant with UVC standard.

So, your webcam should work without difficuty.

32 bits / 64 bits using

I use a Debian distribution for 64 bits architecture. See my kernel configuration.

Of course, all my applications are in native format (64 bits).

I haven't issue to run application into 64 bits.

Although all seems operate well in 64 bits. You can get issue with some applications, in particular with non-free applications : google-earth, Flash... Why ? Because these applications aren't released in 64 bits, we have only 32 bits format.

32 bits applications

Debian mainteners have built libraries in 32 bits for x86_64 / amd64 distributions :

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

You can find new directories : /lib32 ; /usr/lib32...
Flash

For few months, Adobe released a 64 bits flashplayer :

[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 provides only a 32 bits release of Google Earth.

[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

You can get several issues. Indeed, in my ia32-libs release, GL doesn't seek the DRI module in the good path. WARNING : it's only a workaround !

[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 "$@"

If you use the non-free nvidia driver, you have to use 32 bits nvidia libraries :

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

To try and make tests :

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

Software installation

My applications

Below my applications :

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

My desktop

This entry was posted in Debian, Linux and tagged , . Bookmark the permalink.

3 Responses to Linux on Sony VPCF11M1E laptop

Leave a Reply to seqizz Cancel reply

Your email address will not be published. Required fields are marked *