Linux on the Alienware m5500

I’ve bought myself an Alienware m5500, which is a laptop based on the Uniwill 259EN3. I wanted a laptop with a high resolution screen (the m5500 does 1920×1200 on a 15″ LCD) and Intel graphics. (I don’t want to support either ATI or nVidia, and IBM and Dell make you choose an ATI/nVidia card if you go above their standard resolution screens). My machine has:

  • Intel Pentium M 730 1.6GHz 2MB L2 Cache 533MHz FSB
  • 512M RAM, 40G disk
  • Alienware m5500 15.4″ WideUXGA 1920×1200 LCD
  • Intel GMA900 (915GM/i810) Extreme Graphics
  • Intel PRO/Wireless 2200 b/g Wireless Card

I have Fedora Core 5 running on it now, but I’m sad to say that it wasn’t without pain:

I booted from the FC5 install CD. The kernel booted, switched over to Anaconda, and I got a black screen and hung system. Tried again, this time using these instructions to start a VNC installer. That worked, and I soon found out that Fedora now has no NTFS support at all, which meant that the single NTFS partition taking up the entire disk would have to be deleted. (Which sounded fine at the time but is annoying me now — see the wifi section below.) Ubuntu’s installer can do NTFS resizing, but Fedora thinks that the kernel NTFS support violates patents and is not legally redistributable.

After the install, I got the same X crash on my first boot. Booting into runlevel 3 got me to a shell. I determined that the X failure was this bug, which requires applying this patch to Xorg to get the card working. Now that Xorg is modular, it’s (thankfully) sufficient to just download the latest xorg-x11-server.src.rpm, make the change, and rpmbuild -ba to have the specfile take care of building you a new RPM.

That got X working at 800×600; to get to 1920×1200 you need to use 915resolution and the following modeline:

ModeLine "1920x1200" 230 1920 1936 2096 2528 1200 1201 1204 1250

Now, on to wireless. I downloaded the ieee80211 stack, ipw2200 driver and ipw2000 firmware, and:

unity:cjb~ % sudo modprobe ipw2200
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work.
ipw2200: Detected geography ZZM (11 802.11bg channels, 0 802.11a channels)

There is a wifi button on the case, next to the power switch — which implies that it’s a hardware button, rather than a software button like the function keys on the keyboard — but pressing it turns on the “sleep” LED rather than the “wifi” LED, and ipw2200 continues to make the same complaint. I see that drivers exist to control the kill switch in software, but none I’ve seen work on this machine. I suspect that booting into Windows (which I can’t do now since I wasn’t able to keep/resize the partition) would get the wifi working in Linux either temporarily or permanently. I took a backup of the disk (dd if=/dev/sda of=nfs-mounted-backup) and booted the XP recovery CD that came with the machine, but it either hung or needed many minutes at “Setup is inspecting your computer’s hardware configuration”, and my patience for Windows is pretty limited. I’ll try again if I don’t get any other suggestions.

I posted some cries for help about this and dug out my very old, trusty Orinoco wireless PC Card and inserted it. And the machine hung immediately, and did so repeatably. I dug around until I found this linux-kernel thread which contains a safer /etc/pcmcia/config.opts, and that’s working fine. Update: Hmph. It works anytime after init has loaded (udev, perhaps?), but the machine hangs at the cs: memory probe if I try to boot with the card already inserted. Any ideas?

I set about installing AIGLX, and the performance is good, especially for an Intel chipset. The photo at the bottom shows AIGLX and true transparency in gnome-terminal, which is lovely to have (at last), especially on a laptop when you’re likely to want to be copying from a web page into a terminal, etc.

So, that’s about it for day one. To summarise:

ACPI

Well, sleep (suspend-to-ram; S3) seemed to be working out of the box, but it isn’t now. It looks like the IDE driver isn’t coming back; if I can keep an ssh session connected, I see repeated in dmesg:

sd 0:0:0:0: SCSI error: return code = 0x40000
end_request: I/O error, dev sda, sector 18800717

I’ll look into having the sd module removed and restarted — anyone know how I should do that on FC5/Rawhide? I also had to change resume_video() in /etc/pm/functions-intel to get video back:

#/usr/sbin/vbetool post
#/usr/sbin/vbetool vbestate restore < /var/run/vbestate
/usr/sbin/vbetool dpms on

Suspend to disk works, and doesn't even take that long, but kicks me back to the gdm prompt (!) from a logged in session. Update: Working now, after putting 915resolution in the resume path as well. Thanks, Jens!

The ACPI function keys don't do anything in software, not sure which driver they need.

CPU scaling

Working, switches between 750MHz/1.1GHz/1.6GHz automatically.

Graphics

Working after patching Xorg, acceleration works, AIGLX works.

Synaptics touchpad

Working, I disabled tap-to-click and vertical scrolling:

Option      "VertScrollDelta" "0"
Option      "HorizScrollDelta" "0"
Option      "MaxTapMove" "0"
Option      "MaxTapTime" "0"

USB, Sound (snd-intel-hda), SD card reader, DVD burning, Firewire.

Working.

VGA out

Works, after adding the following:

Option "MonitorLayout" "CRT,LFP"
Option "Clone" "true"
Option "SWCursor" "true"

I'll keep this post updated as I learn more about the machine. Here's the photo:

Comments

  1. I was pointed to your branch yesterday. :) Thanks! I hope we’ll see it in xorg HEAD/rawhide soon.

    Apologies if this is a dumb question — how does the new driver know that it needs to reprogram the BIOS because we’re resuming? 915resolution goes into the resume path, but it sounds like that wouldn’t happen here..

    Reply
  2. Ok, good. That is about what I am getting when I don’t throttle the CPU. In FC5 without the aiglx stuff I was getting a bit over a 1000 (which still seems a little low, but glxgears is not a great speed test). Upgrading to FC6 (rawhide) which includes aiglx slowed it down some. But games are still playable like NWN. I do have to disable the compositing functions prior to running any OpenGL games due to bad flicker, but I believe this is a known problem.

    Reply
  3. I used to support Uniwill laptops. I did not see this model having the problem you’re having with the wireless. But I did see something similar on the AMD64 model.
    Unfortunately I no longer have easy access to the trouble ticket, but I believe the solution was to toggle the wireless switch before the kernel loaded (it may have been that you could do it while the grub menu was visible, or it may have been that you need to pause the boot sometime before grub loads.)
    In any event you probably don’t need windows installed.
    By the way if you’re recommending this machine to a friend or something, you might consider buying it with GNU/linux preinstalled:
    http://laclinux.com/en/LUCHD2
    (I no longer work for laclinux but still endorse them whole-heartedly)
    Also, what’s up with that keyboard?

    Reply
  4. Thanks for the comment! The wireless switch doesn’t do anything at all even if I pound it repeatedly all the way from power on onwards, sadly. :) It sounds like it’s a pure hardware switch if it only works before a kernel is loaded, though, which is useful to know.

    Thanks also for the link. I tried to get Alienware to sell me the machine without a copy of Windows, as another Alienware customer reported having done, but they weren’t interested.

    Oh — the keyboard I use is a Touchstream, two split trackpads that are able to detect five fingers at once each, so it has gesture support as well as “zero-force” typing.

    Reply
  5. The reason for getting the gdm prompt from suspend to disk is that you have to make sure to rerun the video bios hack when returning from hibernation.

    The i815resolution package from extras worked for me (also using the i915GM chip) and also makes sure to put itself into the /etc/pm/hooks directory at the right position. I also didn’t have to add any mode line, but I also have only 1400×1050.

    Reply
  6. I used knoppix to resize the NTFS partition before installing FC5 on my laptop. Worked well. The graphical installer didn’t work on my laptop either, but text mode installer did work well enough. I used Livna rpm-repository to install the ipw2200 drivers and they work straight away with NetworkManager. Actually using wlan right now to browse form our university cafe :)

    Reply
  7. Why do you support Intel graphics instead of ATI/Nvidia? Can’t you see how intel’s monopoly is getting over everything?

    Reply
  8. the harddisc error on suspend seems familiar, i remember my workstation needs to put his harddisc in a lower udma state to work fine.

    Reply
  9. >Why do you support Intel graphics instead >of ATI/Nvidia? Can’t you see how intel’s >monopoly is getting over everything?

    well, as far as i know intel’s graphic card drivers are free software, also for 3d. so i’d be intel over ati/nvidia ANY TIME personnally.

    Reply
  10. I’m curious about a couple of things.

    1. Why did you install the entire ipw2200 stack? It ships in the fedora kernel. All you need is the firmware which livna has an rpm for.

    2. What is you fps from glxgears. I have a very similar setup as you do and I’m just curious for a comparison.

    Reply
  11. Why do you support Intel graphics instead of ATI/Nvidia? Can’t you see how intel’s monopoly is getting over everything?

    Ethical reasons, so don’t think I’m being blind. :)

    I believe that ATI and nVidia are violating the GPL by linking proprietary drivers to the kernel, even if Linus won’t do anything about it. I think that the current situation of not even having a proprietary *2D* driver for the ATI X1x00 cards (let alone an open one, and these devices are now being shipped in desktops and laptops near you) is a real crisis, and the kind of gradual erosion of freedom that we’ve had to defend against many times in free software’s history.

    And, I think the answer is to reject what’s happening. We don’t accept proprietary software anywhere else, and it’s arguably most important of all not to accept it in the kernel. I think we should say “Look, this stops now.” and ban proprietary modules — we’d be screwed for at least a year, users would hate us, but we’d come out the other end with more freedom and strength.

    So. That’s why I support Intel; there are very few things I can do to show that I’m part of the market for a graphics card that isn’t secret, but going out of my way to buy a laptop with an Intel chip is one of them.

    Reply
  12. Kevin:

    > Why did you install the entire ipw2200 stack?

    Because a webpage told me I needed to. I realised afterwards that it hadn’t been necessary. :)

    > What is you fps from glxgears.

    Average 700 FPS, and it doesn’t change when I turn on the compositing in metacity.

    Reply
  13. I’m working hard to make the need for i915resolution and custom modelines go away. It’s in the modesetting branch of xf86-video-intel’s git tree.

    It shouldn’t hurt for much longer. :)

    Reply
  14. So the TouchStream just sits on top of the laptop’s keyboard or is that just the photo? Otherwise how do you prevent the laptop’s keyboard from getting pressed?

    Reply
  15. Ryan: The Touchstream’s sitting on a stand that raises and tilts the pads slightly, and the stand is only touching the laptop either side of the trackpad and at the edges of the case (where there aren’t any keys).

    There’s a photo of the stand individually here:

    http://radio.weblogs.com/0100720/images/2003/08/12/fwts_off_base.jpg

    There are versions of the Touchstream that replace the keyboard, called MacNTouch. I want one, but not enough to get a Mac:

    http://www.flickr.com/photos/mgrimes/128127678/

    Reply
  16. For the wireless, look for something like:

    /sys/bus/pci/drivers/ipw2200/0000:02:02.0/rf_kill

    echo “0″ to that and it should disable the kill switch. (Your pci id will probibly be diffrent).

    For the disk, it could be the HPA (protected area) (there was a thread about that on the kernel list), or it could be the SATA resume issue (also on the kernel list in the last week).

    Reply
  17. Thanks, Kevin. This doesn’t work for me; rf_kill’s currently set to 2, which means that that the radio’s killed in hardware.

    SATA resume sounds right, so I’ll check that out. :)

    Reply
  18. You have to get some drivers for linux to recognise the button pressed to unkill the wifi card.

    FOr acer laptops, this is called acerhk (acer hot keys) driver, and is at

    http://www.informatik.hu-berlin.de/~tauber/acerhk/

    Perhaps the same driver will work, as it is the same wireless card.

    What I needed to do was:
    ifdown eth1
    modprobe acerhk

    ifup eth1
    modprobe -e acerhk

    and I never needed to insert the module again, as it is in a permanent on state Reply

  19. I aplogise, I didn’t preview the previous comment

    The lines were

    build acerhk, make install

    ifdown eth1

    modprobe acerhk

    press wireless button

    ifup eth1

    Reply
  20. Thanks. I’d tried acerhk (and a few other similar modules), and get:

    > FATAL: Error inserting acerhk (/lib/modules/2.6.15-20-386/kernel/drivers/input/misc/acerhk.ko): Cannot allocate memory

    It looks like there isn’t a button module for my setup.

    Reply
  21. Not to be too direct, but any chance you’ll be selling that?
    My AW m5500 copped out…bits started comin off the mainboard, but I can’t find where they were at to begin with. lemme know if you think you can help out with finding a replacement.

    Reply
  22. Hi!
    I’m planning on buying a m5500 over the next few weeks to be using Ubuntu…
    as I’ve been told by Alienware, I have tto buy Winblows together…
    chances are Ubuntu 7.04 will work great on that baby right?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>