Last Updated: February 27, 2008

Fedora 8 on a Dell XPS M1330

Versions:
by Jon Hamkins, hamkins@alumni.caltech.edu



Contents


Hardware specs

The solutions on this page apply to an XPS M1330 with these specifications:

Item Description
CPU XPS M1330 - Intel® Core 2 Duo Processor T7500 (2.2GHz/800Mhz FSB, 4MB Cache)
Color Tuxedo Black
Memory2GB Shared Dual Channel DDR2 SDRAM at 667MHz
Display Slim and Light LED Display with 0.3 MP (640x480) Omnivision Webcam
Graphics 128MB NVIDIA® GeForce 8400M GS
Hard Drive 160GB SATA Hard Drive (5400RPM)
Network Card Integrated 10/100 Network Card
Optical drive CD/DVD burner (DVD+/-RW Drive), slot load
Sound High Definition Audio 2.0
Wireless Dell Wireless 1505 Wireless-N Mini-card
Battery 56Whr Lithium Ion Battery (6 cell)
Fingerprint Reader Biometric Fingerprint Reader
Bluetooth Built-in Bluetooth capability (2.0 EDR)
Other 9-in-1 media card reader, IR remote that fits in Express PCM slot
Cost $1,449.00 + $115.45 (IVA) + $0 (shipping) + $6 (import fee) = $1,570.45 (Jan. 21, 2008)

Fedora 8 installation

  1. Install base Fedora 8 from DVD:
    1. Turn on computer and press F2 during system boot. (1 minute)
    2. Set BIOS to boot from CD/DVD before hard drive. (2 minutes)
    3. Boot from Fedora 8 disc. (2 minutes)
    4. Install or upgrade a new system by following prompts. (30 minutes)
    5. Reboot and login.
  2. Set up yum configuration according to unofficial fedora FAQ:
    1. Configure wired network on eth0: System..Administration..Network.
    2. Edit eth0 device, and set networking info. Save. Activate.
    3. Application..System tools..Terminal.

      $ su -
      # yum -y install yum-priorities
      # echo -e "[main]\nenabled = 1\ncheck_obsoletes = 1" > /etc/yum/pluginconf.d/priorities.conf
      # rpm -Uvh http://www.fedorafaq.org/f8/yum http://rpm.livna.org/livna-release-8.rpm

  3. Update to latest packages:

    # yum update

    (45 minutes)

What works out of the box

  • 1280x800 display resolution in X (but see note on fonts, below)
  • Standard keyboard features
  • Trackpad, including scrolling regions
  • Media keys: eject, previous track, stop, play/pause, next track, mute, volume decrease, volume increase.
  • Brightness up/down keys (fn-up, fn-down)
  • Ports: ethernet, 2 USB, stereo headphones
  • Built-in speakers
  • Internal microphone (more below on setting input level, and testing)
  • 9-in-1 card reader (tested on 256 MB MultiMediaCard)
  • CD/DVD drive
  • IR remote control. The remote control fits in the express PC card slot. It works for volume control, forward-backward of presentations, and pause-play-next in Rhythmbox.
  • Hibernate/suspend
  • CRT/LCD key for VGA out (Fn+F8)

What works with some additional set up (see below)

  • Wireless
  • NVIDIA® driver
  • Webcam
  • Fingerprint reader
  • "Home" key, "Hibernate" key (Fn+F1)

What doesn't work

Please contact me at hamkins@alumni.caltech.edu if you get any of these things working:
  • Internal microphone gain control
  • Battery key (Fn+f3) (only works first time pressed)
  • Wifi catcher
  • Untested:
    • Wireless with WPA authentication
    • Bluetooth
    • DVD playing
    • CPU scaling
    • Media cards other than MMC

Additional hardware set up

Wireless

These instructions are for a Broadcom 1505 802.11a/b/g/n wireless card. This is refered to in the specs of a Dell order as a "1505" card. It is detected at boot time as:

$ /sbin/lspci

[...]
0c:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)

This card is not supported by linux, but the Windows driver can be used with ndiswrapper:

# yum install dkms-ndiswrapper

Download the R151517 Windows drivers for this card from the Dell web site, unzip it, and tell fedora to use it:

$ mkdir 1505_driver; cd 1505_driver
$ wget http://ftp.us.dell.com/network/R151517.EXE
$ unzip R151517.EXE
$ cd DRIVERS
$ su -
# ndiswrapper -i bcmwl5.inf
# ndiswrapper -m
# depmod -a
# modprobe ndiswrapper
# echo "/sbin/modprobe ndiswrapper" >> /etc/rc.d/rc.local
# echo -e "blacklist bcm43xx\nblacklist ssb" >> /etc/modeprobe.d/blacklist.

The inclusion of ssb in the blacklist may only be needed in Fedora.

Reboot. Ndiswrapper reports

# ndiswrapper -l

bcmwl5 : driver installed
device (14E4:4328) present (alternate driver: ssb)

and

# iwlist scanning

should return a list of wireless cells under wlan0.

Now, configure NetworkManager:

System..Administration..Services

Set the checkboxes for NetworkManager and NetworkManagerDispatcher services, and start these services. Disable the 'network' service and the 'ntpd' service.

The NetworkManager icon should appear on the top right area of the panel. Click on the NetworkManager icon and select a wireless network, and configure the SSID, Wireless security, and passphrase. WEP works; WPA was not tested.

Note, there is a physical switch on the right side of the laptop. Turning it off disconnects the wireless (and the blue light next to the power button turns off), and turning it on automatically reconnects the wireless network.

The wifi catcher does not seem to work.

To make ntpd start when networking is activated, create /etc/NetworkManager/dispatcher.d/ntpd with contents:

#!/bin/sh
if [ "$2" = "up" ]
then
/sbin/service ntpd start
fi
if [ "$2" = "down" ]
then
/sbin/service ntpd stop
fi

and then make it executable:

# chmod 755 /etc/NetworkManager/dispatcher.d/

Remember to turn it off the ntpd service during a boot:

System..Administration..Services

Uncheck the 'ntpd' box.

NVIDIA® drivers for graphics display

# yum install kmod-nvidia
# init 3

Login as root, then:

# nvidia-config-display enable
# init 5

Log in, and the NVIDIA® splash screen appears. Switching workspaces now should be faster faster.

Note, large fonts and icons can mislead one into thinking the resolution is not 1280x800. It is just that default fonts are set too large. To fix this:

System..Preferences..Look and Feel..Appearance..Fonts..Details

Reset to 96 dpi.

Webcam

lsusb reveals:

# lsub

[...]
Bus 002 Device 003: ID 05a9:7670 OmniVision Technologies, Inc

This is a 0.3 megapixel (640x480 = 0.3 M) camera. It is also refered to as a VGA camera because the base resolution of VGA is 640x480.

Download and install the UVC driver:

$ svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk $ cd trunk
# make
# make install

Then load the kernel module:

# modprobe uvcvideo

You can test this by bringing up Skype (see below), and under "options," test the video. This is the same webcam that is in OLPC, and a free driver is here, if you know how to make use of it.

Sound

If you find the volume from the internal speakers is low, open the GNOME volume manager by double-clicking on the volume icon in the top right of the screen. Then

File..Change Device..Alsa Mixer

Edit..Preferences

and enable the following Front and Digital Input Source

Now you will have "Front" in the Playback tab. Set it a little higher and the sound from the internal speakers will get louder.

Internal microphone

The internal stereo microphone array is located above the LCD panel, on either side of the webcam. It works out of the box in fedora 8, but you have to be careful about selecting the right device.

Open the GNOME volume manager by double-clicking on the volume icon in the top right of the screen. Then

File..Change Device..Alsa Mixer

Select Options tab and select "Digital Mic 1"

Test with an audio editor:

# yum install audacity

Applications..Sound & Video..Audacity

Edit..Preferences

Set playback device to ALSA: HDA Intel: STAC92xx Analog (hw:0,0)

Set recording device to ALSA: front

Now you should be able to record using the internal microphone, in stereo, and playback with good fidelity.

Unfortunately, the microphone records at a very low gain, and no slider in the alsa mixer, gnome mixer, or application has any effect on the input gain. If it isn't loud enough for your application,

File..Change Device..Alsa Mixer

go to the options tab, select "Analog inputs," and plug in a (mono) microphone.

Fingerprint reader

Install fingerprint reader program:

# yum install thinkfinger

The man-page is pam_thinkfinger. The sourceforge page for thinkfinger has no information, not even an accessible readme. Instead, see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger

Load kernel module for the M1330 fingerprint reader:

# modprobe uinput

Acquire your fingerprint:

# tf-tool --acquire

You will need to scan your finger successfully 3 times (as many swipes as it takes to get 3 good ones). Then, verify your fingerprint:

# tf-tool --verify

To enable fingerprint swipe as an authentication method, add:

auth sufficient pam_thinkfinger.so

to /etc/pam.d/system_auth, before any pam_unix directives.

# tf-tool --add-user your_username
# tf-tool --add-user root

Now, instead of "password" at login or switch-user prompts, you should have "Password or swipe finger." You can still type your password if you want.

CRT/LCD (VGA out)

This works out of the box with kernel 2.6.23.15-137.fc8, which fixed a problem in the hotkey driver. Pressing Fn+F8 cycles between LED only, both LED and VGA out, and VGA out only. If you are connecting to a projector, you may wish to go to System..Preferences..Hardware..Screen Resolution and set the resolution to 1024x768 before connecting the projector and pressing Fn+F8. Otherwise, your widescreen LED image may look too skinny on a standard 16:9 projector output. With earlier kernels, the hotkey (fn+f8) does not seem to be recognized, even though /var/log/X.0.log indicates

[...]
(II) NVIDIA(0): ACPI display change hotkey events enabled: the X server is new
(II) NVIDIA(0): enough to receive ACPI display change hotkey events.
[...]

If you have trouble, you can do this to use VGA out:
  1. Connect projector or external display
  2. # nvidia-settings

    or, Applications..System Tools..nVidia Display Settings
  3. X Server Display Configuration..Detect Displays
  4. Select external display rectangle
  5. Display..Configure...Separate X screen
  6. Save to X Configuration File (use merge, otherwise X will crash)
  7. Ctl-Alt-Backspace (kill X-- remember to bookmark this URL first :))

This will show two separate X displays, and full-screen mode will fill only the LCD or external display screen, and not be spread over both. The mouse will be able to travel from one screen to the other.

Note, when done with the external display, nvidia-settings should be run again, to disable the external screen, to save power.

DVD Movies

To decrypt a DVD, you need to install a DeCSS library, libdvdcss. It also helps to replace the default totem which is linked against gstreamer, with totem-xine which is linked against xine-lib. Do this all in one step with:

echo -e "remove totem\n install totem-xine totem-xine-plparser libdvdcss libdvdnav xine-lib-extras-nonfree\n run\n quit" | yum -y shell

If you don't care for totem, you can use xine directly, or mplayer. Check if you can play a DVD (e.g., mplayer dvd://). If you can't, this is because the slot-loading DVD player shipped without setting the region code, a code that attempts to restrict where in the world discs may be playecd. To set the region code, insert a DVD movie into the slot, then:

# yum install regionset # regionset

Set the region code to 1-8 (1=North America). The hardware restricts the number of times this command can be run (5 times, I think), so don't make a mistake entering the number.

Key remappings

  1. How to get the Fn+function keys working

    Add this to /etc/rc.d/rc.local:

    # Set Fn+F1 to suspend
    setkeycodes e00a 205
    # Set Fn+F3 to pop up battery info
    setkeycodes e007 236
    # Set "Home" media button to open nautilus in home folder
    setkeycodes e012 172

    Status of this solution: suspend key works, battery key only works the first time it is pressed, CRT/LCD key does not work, and "Home" button works.
  2. How to remap the menu key

    On a typical keyboard, control is usually right next to the arrow keys, but on the M1330 keyboard the menu key is next to the arrow keys. Here is how to remap it to control.

    Add this to ~/.Xmodmap (create it if it doesn't exist):

    add Control = Menu
    keycode 117 = Control_R

  3. General procedure for key remapping
    1. Use xev, showkey -k, or showkey -s to identify the key code corresponding to a keypress. Add a line to ~/.Xmodmap of the form "keycode key = name" where key is the keycode resulting from xev or showkey, and name is the function you want.
    2. If none of those methods show the key code,
      1. Check if a line in /var/log/messages appears when you press a key.
      2. Look in /usr/include/linux/input.h for the name of the function you want (e.g., KEY_SUSPEND), and locate the corresponding number
      3. Issue the command

        # setkeycodes key1 key2

        where key1 is the number from step B1 and key2 is the number from step B2.

Additional software set up

Email client

# yum install thunderbird

Flash

# yum install flash-plugin

Java

I followed the directions on the unofficial fedora 8 FAQ. I couldn't find the SDK 603, but I found 604 and I used that. I went to http://www.java.com/en/download/help/testvm.xml and verified that java is working correctly within firefox.

Privoxy

This is a web proxy to filter out ads.

# yum install privoxy

System..Administration..Services -- select privoxy to run at boot time

Configure web browser (on firefox, this is in Edit..Preferences, Advanced..Network..Settings) to use HTTP proxy 'localhost' (no quotes) and port 8118.

PDF/PS Document viewer

# yum install mozplugger evince

Movie / multimedia player

# yum install mplayerplug-in

To play material in non-free formats, go to http://www.mplayerhq.hu/design7/dload.html#binary_codecs and download the binary codecs, bunzip2 them, and copy them to /usr/lib/codecs.

NTFS

If you're dual booting, you may want to read/write to your NTFS partition.

# yum install ntfs-3g

Movie playing capabilities in Totem

# echo -e "remove totem\n install totem-xine totem-xine-plparser libdvdcss libdvdnav xine-lib-extras-nonfree\n run\n quit" | yum -y shell

Rhythmbox codecs

This is for playing non-free stuff like MP3, etc. (If you're ripping your own stuff, consider using OGG Vorbis-- it's better, and free.)

# yum install gstreamer-plugins-ugly

Skype

Download Skype 2.0 Beta for linux (the standard 1.4 version for linux does not include video) from http://skypecom/go/getskype-linux-beta-fc7.

# yum install qt4-x11
# rpm -ivh skype-2.0.0.*.rpm

Until there is a solution for adjusting the gain of the internal microphone, you can use a plugged-in microphone.

Printer set up

Go to System..Administration..Printing. It automatically sees the available networked printers. Set the default printer. Print a test page to verify operation.

Services

To hasten your boot, disable unneeded services.

System..Administration..Services.

Uncheck boxes of services you don't need. E.g., consider removing bluetooth, isdn, and sendmail. Don't disable a service if you don't know what it does.

latex2html

# yum install latex2html

dvips

Redirect dvips output to a file by default, not to the printer:

Edit /usr/share/texmf/dvips/config/config.ps and comment out the line that reads "o |lpr".

latex2html

# yum install latex2html

"Recent Documents"

To disable "Recent Documents" from the Places menu:

$ rm ~/.recently-used.xbel
$ mkdir ~/.recently-used.xbel

gnome keyring

Whenever NetworkManager or another app needs a stored password, it accesses the gnome keyring. After logging in it always asks for the keyring password to access the password for the wireless network. It is not set up to use the fingerprint reader.

I have not found a way to use both fingerprint authentication and avoid having to enter a password for gnome keyring authentication.



If you discover an issue I don't cover, find any errors in the answers already here or have a suggestion of some kind, please send emal to hamkins@alumni.caltech.edu, and I'll update this page.