Debian on Vostro 3460

This post summarize all the required steps to setup a operational GNU/Linux on a Dell Vostro 3460. After being a Fedora user during many years, I switched to Debian Wheezy to avoid the systemd philosophy (but I was also highly influenced by Pinpin).

Installation media preparation

First of all, copy the DVD1 into an USB stick :

# cat debian.iso > /dev/sdX
# sync

After a boot from this support, proceed with the classical installation, including the “Laptop” packages.

Energy saving bug

In the current kernel version (3.2.32-1) the power savings mechanism of Ivy Bridge platform is affected by a bug which leads to a random complete system freeze, more especially while using Firefox.

To get rid of this, the power savings mechanism can be disabled [1]. In /etc/default/grub, set the following :

GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.i915_enable_rc6=0"

Then re-install grub with update-grub.
This bug was corrected in more recent kernel versions.

Drivers installation

Once installed from scratch, the kernel does not detect neither the ethernet controller (Atheros AR813x), nor the WiFi chip (Dell 1704 / Broadcom 43142).

The WiFi driver is available here. Before installation, dkms must be installed from the ISO file (stored on an other partition for example) :

# mount -t iso9660 /path/to/debian-wheezy-DI-b3-amd64-DVD-1.iso /media/cdrom
# apt-cdrom add
# apt-get install dkms
# dpkg -i /path/to/wireless-bcm43142-dkms_<version>_amd64.deb

The alx driver for the ethernet card is available here. The installation must be done as documented in the project homepage :

tar xvf compat-wireless-2012-05-10-p.tar.bz2
cd compat-wireless-2012-05-10-p/
./scripts/driver-select alx
make && make install
modprobe alx

The touchpad is detected as aPS/2 mouse by default. In fact this is an ALPS touchpad :

# tpconfig
Found Synaptics Touchpad.
Firmware: 8.96 (multiple-byte mode).

The driver version 1.0 corrects the detection issue. To install it [2] :

# mv psmouse-alps-dst-1.0 /usr/src
# cd /usr/src
# dkms build psmouse/alps-dst-1.0
# dkms install psmouse/alps-dst-1.0
# rmmod psmouse && sudo modprobe -v psmouse

Since september 2013, update the CPU microcode on boot is also recommended [3] :

# apt-get install iucode-tool intel-microcode

Apt repositories configuration

Since the sources list was not completed during installation, edit the /etc/apt/sources.list to add the closest repositories :

deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb http://ftp.fr.debian.org/debian/ wheezy-updates main

and comment the entry added by the apt-cdrom add :

# deb cdrom:[Debian GNU/Linux wheezy-DI-b3 _Wheezy_ - Official Snapshot amd64 DVD Binary-1 20121012-12:02]/ wheezy contrib main

Then, add te source for the source for the WiFi driver.

Miscellaneous

Flash is included in the flashplugin-nonfree package and the official JRE must be declared via alternatives :

# update-alternatives --install /usr/bin/java java /usr/java/jre1.7.0_09/bin/java 1
# update-alternatives --config java

For Gnome 3, shortcuts can be added in the applications list with alacarte or in any repertory with gnome-desktop-item-edit.
The *slightly* too thick title bar can be reduced to a decent size with :

sed -i "/title_vertical_pad/s/value=\"[0-9]\{1,2\}\"/value=\"0\"/g" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml

To mount filesystems via ssh, Fuse is the best solution, especially for video playing with VLC. It can be installed with :

# apt-get gvfs-fuse sshfs fuse-utils
# adduser <username> fuse

In the same domain, usbmount is required to mount external HDDs via USB with ntfs-3g.
By default, the firefox theme is poorly suited to Gnome 3, but this can be adjusted by disabling the menu bar, and by enabling the dedicated theme with an extension to disable title bar [4].

Finally, to avoid bips during completion with the tabulation key, uncomment set bell-style none in /etc/inputrc and add set vb in the file ~/.vimrc.

Power management and temperature

The graphics chip sleep mode (i915.i915_enable_rc6) is available only from the current unstable kernel (3.8.13). To install it, add the unstable repo in /etc/apt/sources.list :

deb http://ftp.fr.debian.org/debian/ unstable main

Then lock system upgrade from unstable by modifying its priority with the file /etc/apt/preferences :

Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 102

The kernel can be installed :

# apt-get -t unstable install linux-image-3.8-2-amd64

Compatible drivers are available for WiFi and touchpad (the install is done the same way than for previous kernel versions).
At this point, the power saving options can be enabled in /etc/default/grub :

GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.i915_enable_rc6=3 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force acpi_osi=Linux"

Followed by a grub update for application :

# update-grub

The CPU scaling governor can also be set to conservative via cpufrequtils to limit the CPU frequency [5]. Temperature monitoring can me done with the i8kctl temp command, provided in the i8kutils package.

Finally, the kernel module for SD card reader can be disabled (it makes a lot of cpu events), and power saving mode for the audio chipset can be forced. In a new /etc/modprobe.d/power_savings.conf file, set :

blacklist rts5139
options snd-hda-intel power_save=5
options snd-hda-intel power_save_controller=Y

And to prevent powerd to overwrite this settings, disable the corresponding module via the /etc/pm/config.d/modules configuration file :

HOOK_BLACKLIST="intel-audio-powersave"

H264 hardware acceleration

To enable the MPEG2 and H.264 decoding by the graphics chipset, install the packages libva-intel-vaapi-driver and vainfo. The vainfo command will return all the video codecs supported by the GPU. Hardware acceleration is also natively supported by VLC, after enabling it in the preferences, and by mplayer in this this build [6].


[1] : http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1075486.html
[2] : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238/comments/227
[3] : http://lists.debian.org/debian-user/2013/09/msg00126.html
[4] : http://libre-ouvert.toile-libre.org/index.php?article117/toi-aussi-gnome3-firefox-adwaita-htitle-movable-firefox-button-tab-bar-omnibar
[5] : http://wiki.debian.org/HowTo/CpuFrequencyScaling
[6] : http://devel.mplayer2.org/ticket/17