Dell Vostro 1310

From SlackWiki
Jump to: navigation, search

Slackware on a Dell Vostro 1310 Laptop

Hardware

Here is a Hardware Compatibility table for different versions of Slackware.

Slackware Hardware Compatibility
Slackware Versions
12 12.1 12.2 13 13.1
Bluetooth Not Tested Not Tested Not Tested Working Working
Camera Not Tested Not Tested Not Tested Working Working
Ethernet Not Tested Not Tested Working Working Working
Hibernate Not Tested Not Tested Not Tested Not Tested Not Tested
Keyboard Not Tested Not Tested P. Working P. Working P. Working
LCD Control Not Tested Not Tested Not Tested Working P. Working
Multimedia Keys Not Tested Not Tested Not Working Not Working Not Working
Sound Not Tested Not Tested Working Working Working
Suspend Not Tested Not Tested Not Tested Working P. Working
Touchpad Not Tested Not Tested P. Working P. Working P. Working
Wireless Not Tested Not Tested Working Working Working

Legend:

a
b

Hardware Specification

Output of 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 Controller #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.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (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 [Kedron] Network Connection (rev 61)
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
08:05.0 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)
08:05.2 SD Host controller: O2 Micro, Inc. Integrated MMC/SD Controller (rev 02)
08:05.3 Mass storage controller: O2 Micro, Inc. Integrated MS/xD Controller (rev 01)

Hardware Configuration

Multimedia Keys

One of the ways to configure the multimedia keys is installing an external software called xbindkeys. This software looks for it's configuration file $HOME/.xbindkeysrc. The code below shows a simple configuration that uses amixer commands to change volume. The play/pause, stop, previous, next keys were bind to xmms player.

"amixer set Master 5%+"
XF86AudioRaiseVolume
"amixer set Master 10%-"
XF86AudioLowerVolume
"xmms -t"
XF86AudioPlay
"xmms -s"
XF86AudioStop
"xmms -r"
XF86AudioPrev
"xmms -f"

Known Problems

Keyboard/Touchpad

When you boot a fresh version of Slackware installed on a Dell Vostro 1310 laptop you may find yourself without control of you keyboard and touchpad, like they were turned off at boottime. As many forums and mailing list have discussed, this is a kernel-related issue, however, you don't need to recompile and/or update the default kernel shipped with your Slackware CD/DVD box.

The fix is real simple, all you have to do is to modify the kernel's append line in the your /etc/lilo.conf in order to add the "i8042.reset" text. Remember you must be logged as the super user to be able to edit lilo's configuration. At the end your append line should be like this (considering you didn't added commands to this line previously):

append="i8042.reset vt.default_utf8=0"

This is it. Problem fixed. Just remember to run lilo command to update your changes.

# lilo

Note that this change can be done at installation to save you time and avoid stress. Just type "i8042.reset" when the setup script prompts you about any desirable lilo append command.

LCD Brightness Control

Affected versions:

  • Slackware 13: working.
    • Console and GUI apps work flawlessly.
  • Slackware 13.1: partially working.
    • Console apps work as intended.
    • GUI app (Xfce4 Power Manager) not working.

Suspend to RAM

As shown on the Slackware Hardware Compatibility table, the Suspend to RAM feature used to work without problems on Slackware 13. But version 13.1 introduced a new flaw where you no longer can suspend the machine using GUI tools. To be more specific, this is a problem related to pm-utils. An workaround to fix it is to create a script at /etc/pm/sleep.d with this content:

#!/bin/bash

function unbind_usb {
    for driver in ehci ohci uhci; do
        cd "/sys/bus/pci/drivers/${driver}_hcd";
        ids=$(ls | grep :);
        echo $ids > /tmp/DISABLED_$driver;
        for id in $ids; do
            echo "Unbinding $id";
            echo -n "$id" > unbind;
            disabled="$disabled $id";
        done;
    done;
}

function bind_usb {
    for driver in ehci ohci uhci; do
        cd "/sys/bus/pci/drivers/${driver}_hcd";
        for id in $(cat /tmp/DISABLED_$driver); do
            echo "Binding $id";
            echo -n "$id" > bind;
        done;
        rm /tmp/DISABLED_$driver;
    done;
}

case "$1" in
    hibernate|suspend)
        unbind_usb;
    ;;
    thaw|resume)
        bind_usb;
        # Uncomment the following two lines if USB devices stutter after resume
        # unbind_usb;
        # bind_usb;
    ;;
    *)
    exit 1;
    ;;
esac;
exit 0;

Now you're able to suspend your laptop using GUI tools. Note that you don't need this script to suspend with command line like this:

# echo mem > /sys/power/state

See also