LINUX on a Dell XPS M1530 Laptop

July 16, 2009





Introduction: Above is a screenshot of SAS 9.2 running under Fedora Core 10. I use the Fedora distribution for historical reasons; long ago, Dell actually installed Red Hat 7.2 on Latitude laptops (worked well, too, and they will install Ubuntu for you on their little notebooks, and that also works well), and now I am used to the Fedora world, so I am relatively uninterested in alternative flavors. YMMV. I would prefer a Mac if SI distributed SAS for OS X, and I use SAS because I speak it fluently, while I can only say, “Excuse me, where is the American Embassy? As you can see, my pants are on fire” in R. The M1530 has a very bright 15" screen, and looks fabulous. The CPU runs at 2.6GHz, there is 4GB RAM and a 250GB 5400RPM drive, which my redoubtable SysAdmin, Eric Taylor, tells me is too slow, but somehow I think I will live with it. The GUI in FC10 is extremely responsive; I'm not sure why, but the system boots and shuts down fast, and windows open and close very quickly, even faster than on the Dell Optiplex in my office, which also runs FC10 and allegedly has a faster CPU. SAS is also screaming fast. The nuts and bolts of FC10 look very similar to Mac OS X under the hood. Making SAS run on OS X would surely be an interesting research project. Eric did the installation, and then I tweaked it.  All the usual disclaimers apply; nothing is my fault, and certainly not the fault of my employers!

Install This was a virgin install on a machine on which Dell thoughtfully installed something called "Vista Ultimate," which I guess means "the last time you'll ever use anything like that." Let anaconda determine the partition at install; we had trouble when we imposed a custom partition.  Otherwise, the install from DVD was uneventful.  We did the 32-bit PAE version of the kernel, rather than the 64-bit version, to minimize maintenance; according to the various listservs, 64-bit updates are not yet as automatic as one would wish.

Yum repos  I have the following repos activated:

    adobe-linux-i386.repo
    atrpms.repo
    dell-community-repository.repo
    dell-firmware-repository.repo
    fedora-rawhide.repo
    fedora.repo
    fedora-updates.repo
    fedora-updates-testing.repo
    livna.repo
    livna.repo.rpmnew
    rpmfusion-free-updates.repo
    rpmfusion-free-updates-testing.repo
    rpmfusion-nonfree-rawhide.repo
    rpmfusion-nonfree.repo
    rpmfusion-free-rawhide.repo
    rpmfusion-nonfree-updates.repo
    rpmfusion-free.repo
    rpmfusion-nonfree-updates-testing.repo

Too many? Maybe, who knows. I have wireless and DVD playback activated (see below), which I think is why all these repos accumulated. I feel very up-to-date.

Wireless I fearlessly (i.e., without appropriate forethought) purchased a laptop with internal wireless because I trusted this had all been figured out by now. Well, mostly, it has, the wireless is working, but by no means does it just work yet.

The wireless chipset is from Broadcom; using lspci | grep 802, we see:

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

irrespective of what the Dell spec sheet says. Broadcom does share some drivers, although they are still proprietary, so the situation is not perfect, but could be worse.  There are rpms on the RPM Fusion repository; I suppose one could do this via yum, but I wasn't quite that smart--I tried it, and it replaced the kernel with the non-PAE version, was not what I wanted. First, I tried the easy yum install:

yum install broadcom-wl
yum install kmod-wl
yum install kmod-wl-PAE

This didn't work; YMMV. I had to take a more detailed approach, like so. To get the appropriate drivers, determine the exact kernel by uname -r :

    2.6.27.21-170.2.56.fc10.i686.PAE

I googled about and found a kmod-wl rpm with that string at http://download1.rpmfusion.org/nonfree/fedora/updates/10/i386/ named kmod-wl-2.6.27.21-170.2.56.fc10.i686.PAE-5.10.79.10-2.fc10.i686.rpm which meant I needed a broadcom-wl driver broadcom-wl-5.10.79.10-1.fc10.noarch.rpm.  There is a discrepancy there I don't understand; why is the module -2.fc10, and the driver -1.fc10?  But, apparently, they are close enough.  There is also a "payloadless" kmod-wl-PAE-5.10.79.10-2.fc10.i686.rpm which has something to do with maintaining dependencies.  So that's the deal, get the three rpms that should hook together like this (I highlighted PAE to emphasize that I needed exactly these, but YMMV):

    broadcom-wl-5.10.79.10-1.fc10.noarch.rpm
    kmod-wl-2.6.27.21-170.2.56.fc10.i686.PAE-5.10.79.10-2.fc10.i686.rpm
    kmod-wl-PAE-5.10.79.10-2.fc10.i686.rpm


And, remember that the kmod-wl rpm has to match up with your kernel.  Put them in a directory, run them all at once:

    yum localinstall *rpm

"Localinstall" causes yum to behave like rpm, but to integrate the update with the yum database, so that, one hopes, subsequent updates of the various parts observe the relevant dependencies.  If that part doesn't work, I don't know what to tell you.  At that point, I thought I was home free, but there was no joy; I could see access points using iwlist eth1 scan, but I could not get any DHCPOFFERS.  After two days  of swearing (that always helps), I determined by trial and error that the /etc/sysconfig/network-scripts/ifcfg-eth1 that has worked before for madwifi was setting parameters the driver wanted to negotiate all by itself.  This ifcfg file appears to work (at least, MY wireless works):


TYPE=Wireless
DEVICE=eth1
HWADDR=00:24:2b:93:2b:6b
BOOTPROTO=dhcp
ONBOOT=no
MODE=Managed
USERCTL=yes
PEERDNS=no
IPV6INIT=no
NM_CONTROLLED=no
RATE=auto
ESSID=gadzooks
SEARCH=opendns.com
DNS1=208.67.222.222
DNS2=208.67.220.220
CHANNEL=


You can effect these changes using system-config-network command, but check to make sure the file is right and edit by hand if necessary.  Wireless should start on the command ifup eth1 ; you may have to start dhclient.

Now, having said all this, I have updated the kernel and the wifi now without issue several times using the easy yum update. You might want to block automatic updates to the kernel and wl packages and run them manually, just to make absolutely sure all the dependencies are maintained.



Video Driver  I installed the Nvidia driver after reading an autoritative statement (i.e., some clown with an internet connection) that it demonstrated superior performance to the Fedora-supplied driver. This was a mistake, and I recommend you do not repeat my error, make up your own. First, unless you have some fancy graphics needs, you will not be able to tell the difference between the Nvidia driver and the open source nouveau driver. What really convinced me, though, was the upgrade from Fedora 10 to 11; the wireless package wanted one version of the kernel and the Nvidia driver wanted a different version. Since I could live without the Nvidia driver, that had to go, but in the middle of the upgrade, I found I could not back out, and had neither graphics driver nor wireless. So, I had to do a fresh install of Fedora 11, which blew out SAS, etc. Just don't go there, it's not worth it.

Audio Driver Nancy and I use Skype, and I, like many folks, have had problems with the internal microphone. For some people, it does not work at all, for others, runs at an exceedingly low volume. Many people blame pulseaudio, although I ultimately did not find that to be the case. Here is what I did to make the internal digital microphone work correctly.

Install all pulseaudio applications and extensions: yum install xine-lib-pulseaudio pulseaudio-libs-devel nocpulse-common alsa-plugins-pulseaudio perl-NOCpulse-Utils pulseaudio-utils pulseaudio-libs pulseaudio-module-x11 pulseaudio-module-zeroconf xmms-pulse perl-NOCpulse-Object pulseaudio pulseaudio-esound-compat perl-NOCpulse-SetID perl-NOCpulse-CLAC pulseaudio-module-gconf perl-NOCpulse-Gritch pulseaudio-libs-glib2 pulseaudio-libs-zeroconf pulseaudio-module-bluetooth wine-pulseaudio perl-NOCpulse-Debug

/etc/modprobe.d/alsa-base.conf should have the following option:

options snd-hda-intel model=dell-3stack

Add the following code to /etc/asound.conf:

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

}

}


Reboot, and, from the drop-down menu, select System-->Preferences-->Advanced Volume Control. The Device should be HDA Intel. Under Preferences, turn everything on. Under Recording, make sure that Capture and Digital sliders are set to max.


You may need to reboot again. I fiddled with different controls for days, but I think these were the changes that actually did something. However, you may find that the various Pulse Audio and ALSA Mixer management tools do something necessary. If you use Skype, set the audio options as follows:


Sound in should be Digital Mic

Sound Out and Ringing should be HDA Intel (hw:Intel,0)


You should hear test sounds and be able to make a test call. The appendage to /etc/asound.conf, above, should make the Digital Mic Option appear, so, if it doesn't, something went awry with that step.

DNS  I like opendns.com as a DNS.  I found that, irrepsective of what DNS I specified in Network Manager, the system  would let the IP choose the DNS until I specifed the following in /etc/dhclient-eth1.conf:

interface "eth1"

{

        supersede domain-name-servers 127.0.0.1,208.67.222.222,208.67.220.220;

}


DVDs
    FC 10 will actually play encrypted DVDs! Not that I really need that service--I have a dedicated HOME THEATER in my house--OK, it's a $69 DVD player, a thirty-year-old stereo, and a 19" Trinitron--but it just tweezed me that DVD playback was so damn difficult, just because those guys in Redmond have so much money to spend on lawyers. You have to be root to do all this stuff:

Activate the RPM Fusion repository:
# rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm\
# http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
Install xine:
# yum install xine
Install codecs:
# yum install xine-lib-extras-nonfree
Install a media player:
# yum install vlc
Install DVD playback:
# yum install libdvdread
Install Windows codecs:
# yum install wget # cd /tmp
# wget http://www1.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2
# tar -jxvf all-20071007.tar.bz2
# mkdir -p /usr/local/lib/codecs
# cp all-20071007/* /usr/local/lib/codecs
# rm -rf /tmp/all-20071007*
# ln -sf /usr/local/lib/codecs /usr/lib/codecs
# ln -sf /usr/local/lib/codecs /usr/local/lib/win32
# ln -sf /usr/local/lib/codecs
Install an MP3 Player (gstreamer):
# yum install gstreamer-plugins-ugly libmad libid3tag id3v2

Launch xine and see what happens.


Miscellany
    Every time I launched firefox, it would have the offline box checked, even if I was online. I couldn't find the options to turn this off; turns out it was the accursed NetworkManager. Turn it off in System==>Administration==>Services. SAS produced weird errors until I installed libXp via yum (yum install libXp). Firefox, I think wanted libstdc++.so.5, which is obsolete, and the fix for that is actually yum install compat-libstdc++-33. yum install compat-gcc-34-g77 will be needed if you are going to compile FOTRAN programs. xcdroast is becoming increasingly flaky; I had much better luck just learning the cdrecord line command.

System Monitor
    The Krell in the upper-left-hand corner of the screenshot is a piece of eye-candy that is also very useful for immediately assessing the state of affairs.  I have it configured to track both CPUs, all three file systems (I use two external USB drives, one for my life, and a backup, since one's life should have at least one backup), the eth1 traffic, free RAM, and free disc space on the external and primary USB drive.   The multiple workspaces, accessed through the little sextant in the tool bar, are necessary for those of us with ADD who must keep half a dozen applications open simultaneously, and I don't think I could function without them. All the damn icons that clutter up the Windoze desktop are stored neatly in the drawer marked 'f'.  LINUX is not only viable as an application programming platorm, but I feel that the interface is superior for scientific computing, and security issues are greatly reduced.  Why any statistician insists on using Windoze is to me just one of those mysteries of life.  I can see why people would use a Mac with OS X as an alternative (especially since it's UNIX under the hood), and I would too, except I have too much intellectual capital invested in SAS to abandon it, and SAS still does not run on the Mac.  You can get more detailed information, written by people who actually know about this stuff, for this and other laptops and distributions at the very useful LINUX Laptop and Notebook Installation Survey.


Return to main page