Last Updated: April 30, 2009

Fedora 10 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 10 installation

  1. Install 64-bit Fedora 10 from DVD (Fedora-10-x86_64-DVD.iso)
    1. Turn on computer and press F12 during system boot. (1 minute)
    2. Set BIOS to boot from CD/DVD before hard drive. (1 minutes)
    3. Boot from Fedora 10 disc. (2 minutes)
    4. Install or upgrade a new system by following prompts. (30 minutes)
    5. Reboot and login.
  2. Set up yum repositories

    $ su -
    # rpm -Uvh http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/livna-release-10.rpm http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.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 and tap-to-click
  • 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
  • Webcam (UVC driver is now natively included in Fedora 10; test video by going to Skype, options..Video Devices..Test)
  • 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 key (Fn+F1)
  • Battery info (Fn+F3)
  • Bluetooth
  • CRT/LCD key for VGA out (Fn+F8)
  • "Home" media button to open nautilus in home folder (set using System..Preferences..Personal..Keyboard Shortcuts)
  • CPU scaling

What works with some additional set up (see below)

  • Wireless
  • NVIDIA® driver
  • Fingerprint reader

What doesn't work or what I haven't tested

Please contact me at hamkins@alumni.caltech.edu if you get any of these things working:
  • Wifi catcher
  • Untested:
    • Wireless with WPA authentication
    • DVD playing
    • Media cards other than MMC

Enhancements in Fedora 10

Here are a few things made easier on this laptop by Fedora 10:
  • Webcam support. This is the same webcam as in the OLPC. The UVC driver is now natively included in Fedora 10. Test video by going to Skype, Options..Video Devices..Test.
  • Hotkeys just work -- battery info, CRT/LCD, Home key
  • Tap-to-click works on the trackpad

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.

If this is the first time you are installing the driver

# yum install kmod-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 DRIVER
$ su -
# ndiswrapper -i bcmwl5.inf
# ndiswrapper -m
# depmod -a
# echo "/sbin/modprobe ndiswrapper" >> /etc/rc.d/rc.local
# echo -e "blacklist bcm43xx\nblacklist ssb" >> /etc/modprobe.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. If not, try it again after rebooting.

Click on the NetworkManager icon on the top right area of the panel. You should see a list of available wireless networks. Select one and enter the 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 WiFi 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/ntpd

Remember to turn off the ntpd service during a boot:

System..Administration..Services

Uncheck the 'ntpd' box. This can be repeated for any other services you want to run when the network comes up or goes down.

If you are reinstalling the driver

The driver is kernel dependent, so every time you update the kernel you must uninstall and reinstall dkms-ndiswrapper -- otherwise the modprobe command will fail.

# yum remove ndiswrapper
# yum remove kmod-ndiswrapper
# yum install kmod-ndiswrapper
# modprobe ndiswrapper

That's it. You do not need to issue any of the other commands above.

NVIDIA® drivers for graphics display

# yum install kmod-nvidia

Reboot, log in and the NVIDIA® splash screen appears. Switching workspaces now should be faster, movies should be playable full-size and without jerkiness, etc. 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. You may notice that with the NVIDIA® driver, the fan cycles on and off very quickly (every 5 seconds) or is otherwise behaving oddly. This can be fixed by making sure you have the latest BIOS firmware version installed.

BIOS upgrade

This information is from Dell. Install libsmbios, if it's not already:

# yum install libsmbios

Then, check your System ID and BIOS version:

# getSystemId
Libsmbios: 2.0.1
System ID: 0x0209
Service Tag: 8HSDJF1
Express Service Code: 18489844621
Product Name: XPS M1330
BIOS Version: A07
Vendor: Dell Inc.
Is Dell: 1

(You can also see the BIOS version on the initial Dell boot-up screen.) Go to http://linux.dell.com/repo/firmware/bios-hdrs/ and identify the most recent directory with the name system_bios_ven_0x1028_dev_SYSTEM_ID_version_BIOS_VERSION. If it is newer than your BIOS version, go into the directory and download the bios.hdr file.

Next:

# modprobe dell_rbu

and update the BIOS:

# dellBiosUpdate -u -f ./bios.hdr

When you reboot, the new BIOS will be loaded.

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 adjust the "Front" in the Playback tab. Set it a little higher and the sound from the internal speakers will get louder. If you don't see "Front", then go to

Preferences

and enable the Front and Digital Input Source

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 10, 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 make sure

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 recording and playback device to ALSA: HDA Intel: STAC92xx Analog (hw:0,0). Or, see which setting works for you (it may be (hw:0,1), for example). Now you should be able to record using the internal microphone, in stereo, and playback with good fidelity.

To adjust the microphone input level, use the sliders in the GNOME mixer on the Recording tab. If you don't see the Recording, tab, click Preferences and check "Capture". You may find that the microphone records at a very low gain with the slider maxed out. This is a bug of ALSA. To work around it:

  1. Make sure you are using alsa-lib to 1.0.19-2 or later, e.g.: "# yum update"
  2. Append the following to "~/.asoundrc" (create it if it doesn't exist).
    pcm.DigitalMic {
        @args [ CARD ]
        @args.CARD {
            type string
        }
        type asym
        capture.pcm {
            type softvol
            slave.pcm {
                @func concat
                strings [ "hw:" $CARD ]
            }
            control {
                name "Digital Capture Volume"
                card $CARD
            }
            min_dB -30.0
            max_dB  30.0
            resolution 121
        }
    }
    
  3. Open a recording application such as Skype or Audacity, and configure the input device to be "DigitalMic." If you don't see it or you see it but it doesn't seem to work, a reboot may help.
  4. Use the mic once to record something.
  5. Open the GNOME mixer again and in the Preferences, "Digital" should appear. Check the box, then go to the Recording tab and adjust the slider up.
Thanks to Samuel Audet for this information.

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.27.5. 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. 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 this doesn't work, be sure to enable a repository that has these packages, e.g., ATRPM or livna. 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. Unfortunately, if you have the "MATSHITA DVD+/-RW UJ-867S" (look in /var/log/dmesg to see), the drive refuses to even provide access to the encrypted sectors on the disk, which means you still can't watch the movie. Solutions:
  • Replace the drive with one that reads discs properly.
  • Rip your DVD on another drive and copy. In Fedora 10, put in a DVD, rick click, copy disc, save as image. Copy the image over to your M1330, then play with, e.g., xine xine dvd://.
  • Use a proprietary player like lindvd. Lindvd ships with the Ubuntu-shipped versions of the M1330 from Dell. On those, Ubuntu is on one partition; in another partition, go to "debs/main/" directory and look for the LINDVD .deb file. You can use alien to convert the deb to an rpm, then rpmbuild, and local install. Alternatively, you can find the lindvd RPM for sale on the web. The rpm can be installed with

    # yum --nogpgcheck localinstall lindvd-1.2.6-3.fc9.x86_64.rpm

    Fire up the player with 'lindvd'. Use 'Z' to move to full-screen.

Key remappings

  1. 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 135 = Control_R

    Note, the keycode of 135 is different that it was (117) under Fedora 9.
  2. 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.

Graphical Boot

To get the graphical boot with Plymouth, append " vga=0x361" to the first kernel line in /etc/grub.conf. E.g.,

kernel /vmlinuz-2.6.27.21-170.2.56.fc10.x86_64 ro root=/dev/VolGroup00/LogVol00 rhgb quiet vga=0x361

Be sure not to change anything else on the line, just add the vga=0x361 part. If you find this doesn't work, you can change '0x361' to 'ask'. When you boot it will give you a table of resolutions. Choose the one corresponding to 1280x800x32 and enter that number in grub.conf, preceded by "0x".

Additional software set up

Email client

# yum install thunderbird

Flash

Go to http://get.adobe.com/flashplayer/ and select "YUM for Linux". Install the RPM. Then,

# yum install flash-plugin nspluginwrapper.x86_64 nspluginwrapper.i386 alsa-plugins-pulseaudio.i386 libcurl.i386

Check whether it is working by going to a flash-heavy site, like youtube.com. Also, you can check "about:plugins" to make sure you see a category for Shockwave Flash.

Java

This worked out of the box with Fedora 10. Go to http://www.java.com/en/download/help/testvm.xml to verify that java is working correctly within firefox.

Login picture

If you want a snazzy picture of yourself, or whatever, on the login screen, put a world readable 150x150 PNG file in ~/.face. Note, your home directory, ~/, must be world exectable.

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

(This isn't available in RPMfusion as of 11/27/08, but if you really want it right away, you can go to http://atrpms.net/dist/f10/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 the latest Skype for linux from http://www.skype.com/download/skype/linux/choose/ Note that Skype is not available in a 64-bit version, a potential problem if you are using x86_64 Fedora. But you can install the necessary compatibility libraries with

# yum --nogpgcheck localinstall skype-2.0.0.72-fc5.i586.rpm

The 'localinstall' option to yum installs the local skype RPM and resolves all dependencies in the usual yum way. This is a great application to test that your webcam is working. After signing in, go to Options..Video Devices, select "Laptop Integrated Webcam (/dev/video0)," and click on "Test." You should see video from the webcam. I found the internal mic volume to be too low, and not possible to raise sufficiently in the Gnome volume control. I'm not sure if this is a Skype issue or a Fedora one. To get around this, 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

"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 email to hamkins@alumni.caltech.edu, and I'll update this page.