Linux on the eMachines M5305

As you MAY need to do so, the following information assumes knowledge of how to patch, configure, compile and boot a new Linux kernel. See the Linux Kernel HOWTO for help. You may find precompiled kernels/modules here in the future but for now it's just patches and advice.

Acknowledgements - see Acknowledgements at bottom of page

Subsystem
Status
Updated
Info
Disk - IDE/(U)DMA
Working
03-May-18 working as far as I know but still checking
Audio
Working
03-May-18 working as far as I know but still checking
Keyboard - special keys
not working  03-May-18 most special keys do not work
Power Management
not working  04-Jan-04 got some acpi working in RedHat and more in Fedora, BUT
Suspend/Resume
not working
03-May-18 apm -s does it but won't come back
Xserver
Working
04-Jan-04 need XF86Config for ATI IGP 320M and 1280x800, better with Fedora
Ethernet
Working
03-May-18 need bcm4400 module
Modem
Untested  03-May-18 not tested
USB
Working
03-May-18 USB mouse successfully tested
PCMCIA
Working 03-May-18 802.11b card working (with work)

[ Working/tested] [ Partly working] [ Untested] [ Not working] [ No information]

Introduction

This guide (currently work-in-progress) might help you to get the most out of your eMachines M5305. Mine arrived with XP installed.  I shrunk the Windows partition and installed RedHat 9.0 (and later Fedora Core 1).  The graphic install went well, BUT the Xserver would not start on RedHat and won't do widescreen on Fedora.  See Xserver section for fix,

The M5305 has these components:
These are the main on-board components:

Preparing for installation

I had a good starting place with Graeme Wilford's Dell Inspiron 8500 page.  You should use PartitionMagic or such to clear some space on the disk.  I split it in approximately half given I could read the files on the Windows XP partition from Linux.  Note that I converted the partition from NTFS to VFAT to do this from the stock install.

Installing RedHat 9.0 (RH9) or Fedora Core 1

The first thing you notice is the ieee1394 driver being loaded. Then it boots anaconda and you're in X. The graphical install works fine. Don't panic if you see horrible lines across the screen for a few seconds, it takes a little while for the vesa graphics driver to kick in and initialise properly.

I went with stock partitions and reviewed them.  Here is what I ended up with:

IDE interface

Appears to work fine.

Audio -ALi Corporation M5451 - trident driver

Appears to work fine.

Keyboard - special keys

Don't appear to work except FnF7 (display dimmer) and FnF8 (display brighter).  For more information, see the Dell Inspiron 8500 page.

Power/voltage/frequency/temperature Management

ACPI

This first set of notes is from when I was working with RedHat 9.  I am now working with Fedora Core 1.

The M5305 does not work with APM.  I am trying to get it to work with APCI.  I patched the 2.4.20-13.9 kernel with the 2.4.20 patch at ACPI4Linux.  All the patching seemed to work except asm/pci.c which appeared to already have the patch.  Everything compiled and installed and the ACPI shows during boot, BUT nothing appeared to work including the gnome battery charge monitor crashing.

I downloaded and installed apcid but still nothing.  I have defined no rules because I don't know what rules to define.  I wanted to define sleep and lid close rules but what?  I started investigating swsusp but haven't done anything yet.

03-May-23 - With further poking, I discovered that none of the acpi modules were loading.  I guess I should have just built them into the kernel!  For now, I have added an rc.modules to just load them at boot.  Now the gnome battery charge monitor appears to work.  I'm still checking other stuff.

03-May-25 - Things go ok for a while (an hour or two).  Then the system reports an AE_NOT_FOUND error.  I have then found the system crashed.  I don't know if it is right after the error report or not yet.  I noticed that there is relatively new information regarding AE_NOT_FOUND error correction with patches.  I may need to attempt to fold recent patches into the 2.4.20-13.9 kernel.  It will probably be fun as things won't exactly match.

03-May-28 - Well, I went back to work.  I downloaded the latest patch, acpi-20030523-2.4.21-rc3.diff, from sourceforge.net/projects/acpi.  I ran it through "patch -p1 --dry-run acpi-20030523-2.4.21-rc3.diff".  I fixed the three hunks that needed fixing (arch/i386/kernel/io_apic.c, drivers/acpi/acpi_ksyms.c, include/asm-i386/pci.h).  Just eliminate the last one.  I also needed to make the fixes Graeme outlined for include/asm-i386/save_state.h.  I also needed to "take out" drivers/char/ipmi/ipmi_kcs_intf.c.  I just did that by changing the CONFIG_ACPI to CONFIG_ACPINOT.

03-Jun-02 - Since my last visit here, I have tried three other kernel patches as follows:

  1. 2.4.21-rc4-laptop1 as available on http://savannah.nongnu.org/projects/laptopkernel/.
  2. 2.4.21-rc6-ac1 as available on http://www.kernel.org.
  3. 2.4.21-rc3-dis2 as pointed to on the Dell Inspiron 8500 page.
In the 2.4.21-rc4-laptop1 case I got a bootable kernel with ACPI and many other things.  I did need to correct several things as I compiled.  However, I tested swsusp unsuccessfully (see more below) so that I went on.

I also tried 2.4.21-rc6-ac1.  It appears to compile much more cleanly and has ACPI and other things but not swsusp.  I moved on.

I saw the activity on the Dell Inspiron 8500 page and tried the 2.4.21-rc3-dis2 kernel.  I did make the corrections to remove the DSDT stuff for the 8500.  It has ACPI, but, again, I could not get swsusp to work.

I am now working with Fedora Core 1.  ACPI comes built into the kernel.  I do specify acpi=on as a boot parameter in the grub.conf file.  ACPI appears to come up including complaining about the toshiba specific stuff.  I don't know yet whether or not the ACPI is doing any good.

Suspend+Resume

This first set of notes is from when I was working with RedHat 9.  I am now using Fedora Core 1 where I haven't tried any of this stuff.

I noticed that "apm -s" seemed to "work" when apm=on BUT it won't come back.  Now trying ACPI as above.  Please report any success with ACPI or swsusp.

03-Jun-02 - I have conducted tests as recommended in the swsusp documentation.  I switch to Virtual Console 1 (ctrl-alt-F1), login as root, telinit 3, and hibernate.  If I have the line

SWSUSP_FORCE_SUSPEND_MODE="acpi"
in /etc/suspend.conf, the power tends to get cut BEFORE the suspend is over.  Once I saw it writing chunks out to disk, but it got part way through and then no power.  Other times it didn't actually get to writing chunks out.

If the default line of

SWSUSP_FORCE_SUSPEND_MODE="2 0"

is in /etc/suspend.conf, the "pre" stuff seems to be done i.e. written to the console.  However, I don't see any disk writing bar.  Then, the system appears to immediately come out of it, do the "post" stuff, and back to the prompt.  It is like the "power off" command is not accepted.  Makes sense actually since it is an apm command.  Also, I don't understand what is going on with the disk writes i.e. no progress bar.

I'll keep trying to figure it out.

For more information, see the Dell Inspiron 8500 page.

X @1280x800 ATI IGP 320M

For RedHat 9, this works fine with the Radeon driver BUT won't start after the stock install.  You must modify the XF86Config file to include something like the following:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Generic Laptop Display Panel 1280x800"
        HorizSync    31.5 - 67.0
        VertRefresh  50.0 - 71.0
        Option      "dpms"
        ModeLine "1280x800" 65.00 1024 1032 1176 1344 480 488 494 563 -hsync -vsync
EndSection
                                                                               
Section "Device"
        Identifier  "Videocard0"
        Driver      "radeon"
        VendorName  "Videocard vendor"
        BoardName   "ATI Radeon Mobility U1"
        VideoRam    32768
        ChipId      0x4242
        Option      "dpms"
        Option      "UseFBDev"
        Option      "noaccel"
        Option      "AGPMode" "4"
        BusID       "PCI:1:5:0"
EndSection
                                                                               
Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Depth     24
                Modes    "1280x800"
        EndSubSection
EndSection

Note the "noaccel".  Painful but required.  Also notice the Modes line.

For Fedora Core 1, X does come up after the stock install.  However, 1280x800 is not an available mode.  I picked 1024x768 during install and then made the changes above in the XF86Config file EXCEPT, fortunately, none of the VideoRam, ChipId, Option, or BusID parameters are required (or even desired).  Things are especially better with "noaccel" missing.  Note, I understand that with XFree 4.4, automatic detection and the 1280x800 mode both work.  However, I haven't tried that yet.

Ethernet - Broadcom 4401

Obtained the bcm4400 driver from Broadcom and built and installed it.

Modem

Untested.

USB

Works fine with USB mouse.  The rest is untested.

PCMCIA

Default kernel yenta-socket works fine, however there is a bug in the /etc/init.d/pcmcia startup script that comes with on RedHat 9. If you roll your own kernel, you'll need to remove the /lib/modules/kernel name/pcmcia directory or patch the /etc/init.d/pcmcia script to not use ".o" when it is trying to load modules.

I got a CompUSA wireless card to work in the slot by building and installing the atmelwlandriver for pcmf504r and utilities only.  Modify the Makefile to make the PCMCIA_DES the kernel/drivers/pcmcia directory (see above removal).

Acknowledgements

Graeme Wilford <G.Wilford@surrey.ac.uk> for allowing me to "clone-and-twiddle" his Dell Inspiron 8500 page.

Gael Schinkel in comp.os.linux.hardware for "Device" settings in XF86Config.

ATMEL Linux PCI PCMCIA USB Drivers Project in sourceforge.net.