The goal of this article 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:

−

+

−

=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 640m

* Dell Inspiron e1405

* Dell Inspiron e1405

Line 10:

Line 6:

* Dell Inspiron e1705

* Dell Inspiron e1705

−

==From the original contributor==

+

==Hardware Specifications==

−

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! ~[[User:Thayer|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.

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.

−

*<span style="color:green;">Green items are confirmed to work</span>

+

*<span style="color:red;">Red items have yet to be covered in detail and require a Wiki entry</span>

−

*<span style="color:red;">Red items have yet to be confirmed and require a Wiki entry</span>

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

+

−

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

+

===Audio===

+

====Sigmatel/Intel Chipset====

+

The Sigmatel audio chipset should be detected automatically during installation, requiring no input from the user.

−

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 <em>not</em> 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.

+

=====ALSA Audio Drivers=====

−

+

−

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.

'''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 modules:

+

−

MODULES=(... !pcspkr !snd_pcsp ...)

+

−

*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:

Note, you will not be able to use the '''sudo''' command with this account until you [[Sudo|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 <tt>hwd</tt> 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 [[Dell_Inspiron_6400#Video|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|Openbox Wiki]]

+

−

+

−

'''GNOME:''' [[GNOME|GNOME Wiki]]

+

−

+

−

'''Xfce:''' [[Xfce|Xfce Wiki]]

+

−

+

−

'''KDE:''' [[KDE|KDE Wiki]]

+

−

+

−

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

+

−

+

−

'''E17:''' [[E17|E17 Wiki]]

+

−

+

−

'''Fluxbox:''' [[Fluxbox|Fluxbox Wiki]]

+

−

+

−

'''Xmonad:''' [[Xmonad|Xmonad Wiki]]

+

−

+

−

'''wmii:''' [[wmii|wmii Wiki]]

+

−

+

−

'''dwm:''' [[dwm|dwm Wiki]]

+

−

+

−

'''awesome:''' [[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:

With the release of Intel's open source [http://intellinuxwireless.org/ 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.

+

Grab the firmware package:

−

+

−

Refer to the [[Wireless Setup]] wiki for more information.

+

−

+

−

====Method 1: iwlwifi driver====

+

−

Grab the driver packages:

+

# pacman -S iwlwifi-3945-ucode

# pacman -S iwlwifi-3945-ucode

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

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

Line 379:

Line 137:

INTERFACES=(lo !eth0 '''''!wlan0''''')

INTERFACES=(lo !eth0 '''''!wlan0''''')

−

====Method 2: ipw3945 driver====

+

===Conexant HDA D110 MDC V.92 modem (winmodem)===

−

'''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.

The Conexant modem requires the proprietary '''hsfmodem''' driver.

Dell offers a debian package [http://support.dell.com/support/downloads/download.aspx?c=us&l=en&s=gen&releaseid=R155004&SystemID=INSPIRONI6400/E1505&servicetag=&os=UBLN&osl=en&deviceid=8593&devlib=0&typecnt=0&vercnt=1&catid=-1&impid=-1&formatcnt=1&libid=20&fileid=206745 hsfmodem_7.60.00.06oem_i386.deb] at their [http://support.dell.com/ support site] that works at '''full speed''' unlike the trial version from [http://www.linuxant.com/ Linuxant] which works at 14.4kbps.

Dell offers a debian package [http://support.dell.com/support/downloads/download.aspx?c=us&l=en&s=gen&releaseid=R155004&SystemID=INSPIRONI6400/E1505&servicetag=&os=UBLN&osl=en&deviceid=8593&devlib=0&typecnt=0&vercnt=1&catid=-1&impid=-1&formatcnt=1&libid=20&fileid=206745 hsfmodem_7.60.00.06oem_i386.deb] at their [http://support.dell.com/ support site] that works at '''full speed''' unlike the trial version from [http://www.linuxant.com/ Linuxant] which works at 14.4kbps.

Line 420:

Line 163:

#The modules are automatically loaded and a <code>/dev/modem</code> symlink is setup for use with the modem. Now use wvdial or other dialer programs to connect to the internet.

#The modules are automatically loaded and a <code>/dev/modem</code> 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==

+

===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.

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.

Line 426:

Line 169:

* SD Card

* SD Card

−

==Synaptics Touchpad==

+

===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 [[Touchpad_Synaptics | Synaptics Touchpad]] wiki.

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 [[Touchpad_Synaptics | Synaptics Touchpad]] wiki.

−

=Power Management=

+

==Power Management==

−

==ACPI Hibernation/Suspend with pm-utils==

+

===ACPI Hibernation/Suspend with pm-utils===

−

The powersave scripts have been officially replaced by [http://www.archlinux.org/packages/search/?q=pm-utils pm-utils]. Refer to the [[Pm-utils]] wiki for detailed instructions.

+

The powersave scripts have been officially replaced by [https://www.archlinux.org/packages/search/?q=pm-utils 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 <tt>/boot/grub/menu.lst</tt> 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

+

+

ATI video card owners might need to add {{ic|vga=0}} to the kernel options in [[kernel parameters]] in order to resume from suspend2ram.

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.

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==

+

===CPU Frequency Scaling with cpufrequtils===

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

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

−

= Multimedia Buttons & Fn Hotkeys =

+

== 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.

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.

The following tips may offer some assistance in getting started.

−

== Multimedia Buttons ==

+

=== 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.

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.

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 ===

+

==== GNOME ====

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

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

Line 467:

Line 203:

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

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 ===

+

==== Openbox and other Window Managers ====

−

The <tt>xbindkeys</tt> utility is highly recommended for lightweight desktops such as Openbox--refer to the [[Hotkeys]] wiki for information.

+

The {{Ic|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:

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

Line 478:

Line 214:

"amixer set Master 2dB- unmute"

"amixer set Master 2dB- unmute"

m:0x10 + c:174

m:0x10 + c:174

−

# vol mute

+

# vol mute/unmute

−

"amixer set Master mute"

+

"amixer set Master toggle"

m:0x10 + c:160

m:0x10 + c:160

# play/pause

# play/pause

Line 495:

Line 231:

</pre>

</pre>

−

== Function (Fn) Hotkeys ==

+

=== 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.

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.

Line 509:

Line 245:

setkeycodes e00a 123 # e00a hibernate fn

setkeycodes e00a 123 # e00a hibernate fn

−

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

+

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

Revision as of 04:50, 18 April 2013

The goal of this article 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:

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.

Red items have yet to be covered in detail 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

Hardware

Audio

Sigmatel/Intel Chipset

The Sigmatel audio chipset should be detected automatically during installation, requiring no input from the user.

ALSA Audio Drivers

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

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.

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.

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.

CPU Frequency Scaling with cpufrequtils

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.

Browse to System -> Preferences -> Keyboard Shortcuts and scroll down to the Sound section.

Click on an item (e.g. Mute) and then press the corresponding multimedia button

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:

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