Dell Inspiron 6400

From ArchWiki
Revision as of 21:27, 17 August 2008 by Thayer (Talk | contribs) (Intel PRO/Wireless 3945ABG)

Jump to: navigation, search


Contents

Introduction

Summary

The goal of this wiki is to provide a comprehensive guide for Dell Inspiron 6400 owners seeking to install Arch Linux. It will attempt to cover all facets of hardware management, including wireless networking and hotkey support. Although this guide has been written specifically for the Inspiron 6400, many of the sub-sections can be applied to other Dell Inspiron models, including:

  • Dell Inspiron 640m
  • Dell Inspiron e1405
  • Dell Inspiron e1505
  • Dell Inspiron e1705

From the original contributor

I will attempt to cover as much as possible, however please feel free to contribute to this guide as you feel necessary. I will be happy to answer any questions, but I am by no means a Linux expert so there's a good chance I won't know the answer either! ~Thayer (thayerw(at)gmail(dot)com)

Hardware Specifications

The 6400 series laptop is currently available in a number of configurations and this guide will attempt to cover them all. Refer to the list below to determine whether your configuration has been documented.

  • Green items are confirmed to work
  • Red items have yet to be confirmed and require a Wiki entry

Base Components

  • Intel Core Duo and Core 2 Duo processors
    • T2500 (2GHz/667MHz FSB/2MB Cache)
    • T5600 (1.83GHz/667MHz FSB/2MB Cache)
    • T2050 (1.66GHz/667MHz FSB/2MB Cache)
    • T1350 (1.66GHz/667MHz FSB/2MB Cache)
    • T5200 (1.60GHz/667MHz FSB/2MB Cache)
  • 512MB/1GB/2GB 533MHz/667MHz DDR2 SDRAM Memory
  • 15.4" Widescreen Display
    • WXGA (1280 x 800)
    • WSXGA 1280x800 with TrueLife™
    • WSXGA+ 1680x1050 with TrueLife™
  • 80GB/100GB/120GB/160GB 5400/7200 RPM SATA Hard Drive
  • 8x CD/DVD+/-RW/DL+R
  • Broadcom 440x 10/100 Ethernet
  • Conexant HDA D110 MDC V.92 modem (winmodem)
  • Sigmatel STAC 92xx Audio
  • Ricoh R5C822 SD/SDIO/MMC/MS/MSPro Card Reader
  • 4 USB 2.0 Ports
  • Firewire port (IEEE 1394)
  • 1 ExpressCard Slot
  • Synaptics touchpad with scroll zones

Video Options

  • 128MB ATI Mobility Radeon X1300 with HyperMemory
  • 256MB ATI Mobility Radeon X1400 with Hypermemory
  • 256MB nVidia GeForce Go 7300 with TurboCache
  • 128MB Intel Graphics Media Accelerator 950

Wireless Options

  • Intel Pro/Wireless 3945ABG (802.11a/b/g)
  • Dell Wireless 1390
  • Dell Wireless 1500 Draft 802.11n Wireless (Intel 4965AGN)
  • Dell Wireless 350 Bluetooth Module
  • Dell Wireless 355 Bluetooth Module

Arch Installation

There are plenty of resources available to help new users install and configure a basic Arch Linux installation, including the Official Installation Guide and the Beginners Guide.

That being said, the following tips are specific to the Dell Inspiron 6400 and may be of some help during installation.

If an Ethernet (wired land-line) broadband internet connection is available it is highly recommended that Arch be installed with the smaller FTP ISO. If you plan to have a desktop environment (KDE, GNOME, etc) then the majority of the packages you require will come from the internet repositories and not the Arch CD itself. This method will get you up and running in the shortest amount of time. Simply download the FTP ISO, burn it to a CD and restart your computer.

The following steps assume you are connected to the Internet with a wired Ethernet connection, as opposed to a wireless connection.

Boot the Arch Setup CD

If the laptop does not boot from the CD, reboot and press F12 at the DELL BIOS splash screen to access the boot menu. From there you can choose to boot from the CD/DVD drive.

Setup

For the most part, the default settings should be fine, however the following notes may be of assistance.

0 - Configure

Just follow the prompts, choosing the defaults when asked. Make sure you allow the setup to detect your basic hardware automatically when asked.

1 - Prepare Hard Disks

The following is an example partition table. The example hard drive is 100GB and is configured to run only Arch Linux. Your settings will vary depending on the size of your hard drive and the number of operating systems you plan to run.

sda (100GB)
 sda1	ext2	100MB	/boot	(the boot loader files and kernel images will be installed here)
 sda2	swap	2.1GB	swap	(this example notebook has 2GB of RAM and we want to leave room for suspend2disk (hibernation) functions)
 sda3	ext3	6GB	/	(root--everything else will go here except for the files in /home and /boot)
 sda4	ext3	90GB	/home	(it's actually less than 90GB because ext3 filesystems reserve space to avoid capacity problems, but you get the point)

2 - Select Packages

  • Choose a mirror
  • Choose only the base packages
  • Select all packages by default

3 - Install Packages

  • Answer yes to cache packages (default)
  • Grab a coffee, it's going to take a while to fetch 100MB of packages

4 - Configure System

Choose your preferred editor; either vim or nano.

A few files can be left alone, but there are some changes worth mentioning:

rc.conf

  • Change your locale if necessary, for example Canadians will want to use en_CA:
LOCALE="en_CA.utf8"
  • Change the timezone if necessary, for example:
TIMEZONE="Canada/Pacific"
  • To get rid of that ever-so-annoying system beep, blacklist the PC speaker module:
MOD_BLACKLIST=(pcspkr)
  • Change the hostname if you desire a unique name, for example:
HOSTNAME="dublin"
  • If your Internet Service Provider assigns your IP address automatically (and most do), make sure eth0 is set to dhcp:
eth0="dhcp"

hosts

Add a second line under localhost with your unique hostname (the same hostname you chose in rc.conf) in place of localhost, for example:

127.0.0.1   localhost.localdomain     localhost
127.0.0.1   dublin.localdomain        dublin

fstab

No changes should be necessary.

mkinitcpio.conf

No changes should be necessary.

modprobe.conf

No changes should be necessary.

resolv.conf

No changes should be necessary.

locale.gen

Uncomment the languages files you wish to use, including the one you configured under LOCALE in the rc.conf:

#en_BW.UTF-8	UTF-8
#en_BW		ISO-8859-1
en_CA.UTF-8	UTF-8
en_CA		ISO-8859-1
#en_DK.UTF-8	UTF-8
#en_DK		ISO-8859-1

Canadians should probably uncomment en_US, en_CA and en_GB.

root password

Set a root password.

pacman mirrors

You can either use the same mirror you used to install the base packages, or you can choose a different one at this time. The mirror you select at this stage will be your default repository after installation is complete.

5 - Install Kernel

The default choices should be fine.

6 - Install Boot Loader

If you are installing Arch as the sole operating system on the notebook, just go with the default settings. If you are dual-booting with another OS, choose the options carefully to avoid problems with your existing settings.

  • When installing GRUB, you can also append vga=791 to the kernel option to set your terminal (framebuffer) resolution to 1024x768, for example:
kernel /vmlinuz26 root=/dev/sda3 ro vga=791

7 - Exit

Reboot, eject the CD and log into your new Arch Linux installation.

Synchronize Repositories and Update

When logging into Arch for the first time, it is a good idea to make sure the local package database is synchronized with the Arch software repositories and that all of your software is up to date. From the console, type:

# pacman -Syu

Add Users

At this point you can add a local user account by typing:

# useradd -m johndoe
# passwd johndoe

The -m flag creates the user's /home directory and copies the default configuration files to it (from /etc/skel)

Note, you will not be able to use the sudo command with this account until you install and configure sudo.

Xorg

If you plan to install a desktop environment (e.g. GNOME, KDE, etc.) you must install and configure Xorg.

Installation

Install the necessary packages:

# pacman -S xorg xterm hwd

Configuration

The hwd program (Hardware Detect) will examine your hardware and create a default configuration file for Xorg (/etc/X11/xorg.conf):

# hwd -xa

You should now have a working X setup, however the default configuration uses the generic VESA graphics driver. If you want to run your desktop at its native resolution (e.g. 1680x1050) and enable 3D acceleration, you'll need to install the appropriate driver for your video card. See the Video section below for detailed instructions.

Desktop Environments

Arch Linux supports a variety of desktop environments and window managers, all of which must be installed manually. Refer to the following list for more information:

Openbox: Openbox Wiki

GNOME: GNOME Wiki

Xfce: Xfce Wiki

KDE: KDE Wiki

KDEmod: Visit the KDEmod website at http://kdemod.ath.cx/ or see the KDEmod Wiki for more information.

E17: E17 Wiki

Fluxbox: Fluxbox Wiki

Xmonad: Xmonad Wiki

wmii: wmii Wiki

dwm: dwm Wiki

awesome: awesome Wiki

Hardware

Audio

Sigmatel/Intel Chipset

The Sigmatel audio chipset should be detected automatically during installation, requiring no input from the user. For example, the following kernel modules are configured in /etc/rc.conf by default:

snd-mixer-oss snd-pcm-oss snd-page-alloc snd-pcm snd-timer snd snd-hda-intel soundcore

ALSA Audio Drivers

Refer to the ALSA wiki for general assistance with volume settings, group permissions, etc.

OSS Audio Drivers

See the OSS wiki for more information.

Video

ATI X1300/X1400 Radeon Mobility

Proprietary Driver (catalyst/fglrx)

Note: ATI has rebranded the fglrx driver to be known as 'catalyst'; at this time only the package name has changed.

The catalyst ATI proprietary driver is available from the standard Arch repositories and is the simplest way to get full 3D acceleration and native resolutions on your notebook:

# pacman -S catalyst

Run the aticonfig tool to automatically add the appropriate settings to /etc/X11/xorg.conf:

# aticonfig --initial

Lastly, we need to modify /etc/rc.conf and add the fglrx kernel driver to the MODULES section, for example:

MODULES=(fglrx b44 mii snd-mixer-oss ...)

Reboot and confirm that the ATI driver is working by typing fglrxinfo in a terminal. The results should look something like this:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon X1400
OpenGL version string: 2.1.7059 Release

Further information can be found at the ATI wiki.

Open Source ATI Driver

Please refer to the ATI wiki for more information.

Intel Graphics Media Accelerator 950

Open Source Intel Driver

Install the driver:

# pacman -S xf86-video-intel

Use gft to generate the Xorg Modeline values and then edit /etc/X11/xorg.conf and add these values to the Monitor section, for example:

Section "Monitor"
 Identifier "Monitor0"
 VendorName "unknown"
 Modeline "800x600" 40.12 800 848 968 1056 600 601 605 628 #60Hz
EndSection

Lastly, add the following to the "Device" section, replacing the existing Driver value if present:

VideoRam       229376
Option "CacheLines" "1980"
Driver      "intel"

Intel 945GM Batch Speed Boost

In some cases the 945GMs do not run as fast as possible. To test this first install the mesa pacakge then run:

glxgears

And note the average FPS Next export the variable for INTEL_BATCH

export INTEL_BATCH=1

Now rerun glxgears. Do you get more FPS? If so edit your /etc/environment file adding the line

INTEL_BATCH=1

Logout then Login.

nVidia GeForce Go 7300

The NVIDIA Driver Wiki works fine. A side note: When running Beryl/Compiz-Fusion, while opening multiple instances of FireFox, the entire window went black. Forcing AIGLX solved this.

Networking

Broadcom 440x 10/100 Ethernet

The Broadcom Ethernet card should have out-of-the-box support. No configuration necessary.

Dell Wireless 1390

New Native b43 Driver

Works from Kernel 2.6.25 From Linux Wireless

wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2
tar xjf b43-fwcutter-011.tar.bz2
cd b43-fwcutter-011
make
cd ..
export FIRMWARE_INSTALL_DIR="/lib/firmware"
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
tar xjf broadcom-wl-4.150.10.5.tar.bz2
cd broadcom-wl-4.150.10.5/driver
sudo ../../b43-fwcutter-011/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta_mimo.o


Old Lame ndiswrapper Way

Dell does not offer native Linux drivers for the 1390 wireless card. Fortunately, ndiswrapper can be used to install the Windows driver:

# pacman -S ndiswrapper

Download the 1390 driver from the Dell website:

$ wget http://ftp.us.dell.com/network/R140747.EXE

Create a temp folder and extract the driver:

$ mkdir ~/Dell1390
$ mv R14070747.EXE ~/Dell1390 
$ cd ~/Dell1390 
$ unzip -a R14070747.EXE
$ cd ~/Dell1390/DRIVER

Configure ndiswrapper to use the Windows driver (do this as root):

# ndiswrapper -i bcmwl5.inf
# ndiswrapper -l
# ndiswrapper -m
# modprobe ndiswrapper

Test the new driver by typing iwlist scanning in a terminal.

To load the driver automatically at each boot, add ndiswrapper to the MODULES array in /etc/rc.conf, for example:

MODULES=(fglrx ndiswrapper b44 mii ...)

Finally, remove the temp folder used during installation:

$ rm -rf ~/Dell1390

Dell Wireless 1500 Draft 802.11n Wireless (Intel 4965AGN)

Grab the driver packages:

# pacman -S iwlwifi iwlwifi-4965-ucode

Edit /etc/rc.conf as root and add iwl4965 to the MODULES list:

MODULES=(fglrx iwl4965 b44 mii ...)

Add wlan0="dhcp" to the NETWORKING section:

eth0="dhcp"
wlan0="dhcp"

If wlan0 is listed in the INTERFACES section, make sure it is disabled:

INTERFACES=(lo !eth0 !wlan0)

Dell Wireless 350 Bluetooth Module

Install the bluetooth libraries and basic utilties:

# pacman -S bluez-libs bluez-utils

Add bluetooth to the DAEMONS list in /etc/rc.conf, for example:

DAEMONS=(syslog-ng powersaved bluetooth ipw3945d ...)

Now, depending on your desktop environment, install the appropriate tools:

For GNOME:

# pacman -S gnome-bluetooth bluez-gnome

For KDE:

# pacman -S kdebluetooth

Dell Wireless 355 Bluetooth Module

The steps described above for Dell Wireless 350 Bluetooth Module work with Dell Wireless 355 Bluetooth Module too.

Intel PRO/Wireless 3945ABG

With the release of Intel's open source iwlwifi driver, 3945 owners now have two choices for wireless drivers. As the iwlwifi project matures, the ipw3945 driver will become obsolete, however until that time it will remain below as a second alternative.

Refer to the Wireless Setup wiki for more information.

Method 1: iwlwifi driver

Grab the driver packages:

# pacman -S iwlwifi-3945-ucode

Edit /etc/rc.conf as root and add iwl3945 to the MODULES list:

MODULES=(fglrx iwl3945 b44 mii ...)

Add wlan0="dhcp" to the NETWORKING section:

eth0="dhcp"
wlan0="dhcp"

If wlan0 is listed in the INTERFACES section, make sure it is disabled:

INTERFACES=(lo !eth0 !wlan0)

Method 2: ipw3945 driver

This method is now deprecated. You should be able to use Method 1 without difficulties.

Grab the Intel 3945 driver packages:

# pacman -S ipw3945

Edit /etc/rc.conf as root and add ipw3945 to the MODULES list:

MODULES=(fglrx ipw3945 b44 mii ...)

Add eth1="dhcp" to the NETWORKING section (Note: It is sometimes detected as eth2 instead of eth1, use ifconfig to verify yours and, if necessary add eth2="dhcp" instead):

eth0="dhcp"
eth1="dhcp"

If eth1 (or eth2) is listed in the INTERFACES section, make sure it is disabled:

INTERFACES=(lo !eth0 !eth1)

Add ipw3945d to the DAEMONS list before the dhcdbd and networkmanager daemons:

DAEMONS=(syslog-ng ipw3945d dhcdbd networkmanager alsa ...)

Conexant HDA D110 MDC V.92 modem (winmodem)

The Conexant modem requires the proprietary hsfmodem driver. Dell offers a debian package hsfmodem_7.60.00.06oem_i386.deb at their support site that works at full speed unlike the trial version from Linuxant which works at 14.4kbps.

The following PKGBUILD can be used to create an archlinux hsfmodem package from the debian package:

pkgname=hsfmodem
pkgver=7.60.00.06oem
pkgrel=1
pkgdesc="Conexant modem driver by Dell"
url="http://support.dell.com/"
license=("unknown")
arch=('i686')
source=(${pkgname}_${pkgver}_i386.deb)
md5sums=('80d38fccab347638fa7a2237b458b428')

build() {
  cd $startdir/src/
  ar x ${pkgname}_${pkgver}_i386.deb
  tar xzf data.tar.gz
  cp -a usr etc $startdir/pkg/
}
  1. Download and place hsfmodem_7.60.00.06oem_i386.deb and the PKGBUILD in a new folder, and run makepkg to create the package. See ABS for details on building packages.
  2. Run hsfconfig as root to build the module and initialise the modem. A reboot is required before the modem can be initialised. Run hsfconfig again after reboot.
  3. The modules are automatically loaded and a /dev/modem symlink is setup for use with the modem. Now use wvdial or other dialer programs to connect to the internet.

Ricoh R5C822 SD/SDIO/MMC/MS/MSPro Card Reader

The Ricoh card reader should work out of the box, as long as MOD_AUTOLOAD is set to yes in /etc/rc.conf. Assuming you use a HAL-aware desktop (GNOME, KDE, etc.), when a memory card is inserted, the kernel should automatically load the mmc_core/mmc_block modules and mount the new filesystem according to your desktop's automount settings.

This has been confirmed with the following card types:

  • SD Card

Synaptics Touchpad

The Synaptics touchpad should provide basic functions out-of-the-box, however if you would like to use the scroll zones and enable other advanced features, please refer to the Synaptics Touchpad wiki.

Power Management

ACPI Hibernation/Suspend with pm-utils

The powersave scripts have been officially replaced by pm-utils. Refer to the Pm-utils wiki for detailed instructions.

Note: ATI video card owners might need to add vga=0 to the kernel options in /boot/grub/menu.lst in order to resume from suspend2ram. For exmaple:

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 resume=/dev/sda2 ro vga=0
initrd /kernel26.img

This behavior seems to change from version to version of catalyst, so your mileage may vary. Try it without vga=0 first, and if it doesn't work then add it.

CPU Frequency Scaling with cpufrequtils

Refer to the Cpufrequtils wiki for step-by-step instructions.

Multimedia Buttons & Fn Hotkeys

Unfortunately, configuring multimedia buttons and function keys on your laptop can be complicated process. Factors that must be taken into consideration include your choice of Desktop Environment (or lack thereof) and the actions you wish to bind to the special buttons or keys. For a detailed explanation of what is required, please refer to the Hotkeys wiki.

The following tips may offer some assistance in getting started.

Multimedia Buttons

For the most part, the Volume and Playback buttons should be recognized as an unassigned key by the Linux kernel. In which case, all that is necessary is to bind the button to an action.

It is also worth noting that the multimedia buttons and equivalent Fn key shortcut (e.g. Fn+PgUp = Vol Up) will produce the same keycode, so if you configure the button, the Fn hotkey combo will execute the same action.

GNOME

The GNOME desktop provides an easy method for binding multimedia keys to their appropriate action.

  1. Browse to System -> Preferences -> Keyboard Shortcuts and scroll down to the Sound section.
  2. Click on an item (e.g. Mute) and then press the corresponding multimedia button
  3. Repeat this process for all of the multimedia buttons

The volume buttons should now work system-wide, and the playback buttons will now work in media players such as Rhythmbox and Exaile.

Openbox and other Window Managers

The xbindkeys utility is highly recommended for lightweight desktops such as Openbox--refer to the Hotkeys wiki for information.

The following is an example ~/.xbindkeysrc config file, making use of the multimedia buttons:

# vol up
"amixer set Master 2dB+ unmute"
  m:0x10 + c:176
# vol dn
"amixer set Master 2dB- unmute"
  m:0x10 + c:174
# vol mute
"amixer set Master mute"
  m:0x10 + c:160
# play/pause
"audacious -t"
  m:0x10 + c:162
# back
"audacious -r"
  m:0x10 + c:144
# forward
"audacious -f"
  m:0x10 + c:153
# stop
"audacious -s"
  m:0x10 + c:164

Function (Fn) Hotkeys

Function keys seem to be less standardized than the Volume/Playback buttons, and therefore it can be difficult to get all of them working properly. For example, the Standby shortcut (Fn+ESC) may be recognized while at the same time the Hibernate shortcut (Fn+F1) is not. To make matters more confusing, it appears that some Fn keys such as those that adjust the LCD brightness are controlled by the BIOS, independent of the Operating System. Again, the Hotkeys wiki is highly recommended reading.

The following example shows how one can configure the Dell Media Direct button, Eject (Fn+F10) and Hibernate (Fn+F1) hotkeys to execute specific commands:

First, assign kernel keycodes to the Media Direct button and Fn hotkeys, using the /etc/rc.local script (which is executed before X loads):

#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
setkeycodes e009 122	# e009 eject fn
setkeycodes e012 130	# e012 mediadirect
setkeycodes e00a 123	# e00a hibernate fn

Then use the xbindkeys utility to bind the newly recognized keys to a custom action. Here's an ~/.xbindkeysrc config file:

# media direct button
"streamtuner"
  m:0x10 + c:134
# eject function hotkey
"eject"
  m:0x10 + c:210 
# hibernate function hotkey
"sudo /usr/sbin/pm-hibernate"
  m:0x10 + c:209

Finally, execute xbindkeys at startup by placing it in your .xinitrc (or appropriate startup file for your environment):

xscreensaver -no-splash &
eval `cat $HOME/.fehbg` &
xbindkeys &
#sleep 3
pypanel &
exec openbox

As stated previously, it can be a complicated process involving lots of trial & error troubleshooting, but hopefully this will help you get started.

Resources

TuxMobil: Linux Laptop & Notebook Installation Guides

TuxMobil: DELL Notebooks

Gentoo Wiki: HARDWARE Dell Inspiron 6400

Gentoo Wiki: HARDWARE Dell Inspiron 6400 Fixes for common problems


Comments