skreak.com

News

July 26, 2004: Hurray for v2! I have updated my m6805 to the m6809 BIOS and am now able to run gentoo-dev-sources-2.6.7-r11 without a hitch. Linux works better than ever - to wit, the machine is now capable of turning itself off and I no longer need that APIC/NOACPI nonsense. Still no native wireless, but I've had some success by simply getting a CardBus prism54 wireless card (a NetGear WG511) and it seems to work well.

July 14, 2004: Yikes! That was a long hiatus. I have been stuck in windows-land for a while now. At any rate, I'm back and am struggling to get gentoo-dev-sources-2.6.7-r10 to work. One ray of hope: there's a page up with BIOS updates for the m6805. Talk on the boards is that the m6809 BIOS, newly added, fixes many BIOS problems for the m6805/7.

April 2, 2004: I'm going to go on vacation for a few weeks, so no updates until then. At that point I'll add a little wiki to this page.

March 29, 2004: I just found Chris Cheney's page on running Linux on the Arima W72-K8 laptop (the m6805/7 models are rebadged versions of this, apparently). There's good info there on the ACPI/APIC problem, and Chris has filed a kernel bug about it. I'm still not able to get any of the patches to work though.

March 26, 2004: There are some updates at muru.com, including a patch for the APIC issue, check it out (I'll try it myself soon). I'm planning to add a wiki here soon so other folks can add to this info.

March 18, 2004: page went live. (I'll post more news here as it occurs.)

Introduction

Hi there.

I started this page to provide some notes for others who are interested in runnning Gentoo Linux on an eMachines M6805 or M6807 laptop.

This laptop provides some fairly unique challenges to a linux user. Chief amongst them is that it uses an AMD64 (3000+) processor. The processor is supported by the Linux kernel, and there are several talented people on the Gentoo AMD64 team, but the processor is still not as not as easy to run as, say, a 32-bit Pentium or Athalon-based system—at least not unless you want to run in 32-bit emulation mode. But you don't want to do that, do you? I don't.

Currently information on this laptop is scattered amongst several places on the internet. I'll try to collate most of these links and put them in the sidebar above. In the meantime, the best source for help seems to be this thread on the Gentoo forums.

Linux runs well on the laptop, but several key pieces of hardware are not functional yet.

I should point out that most of these incompatabilities arise from hardware vendors releasing binary-only drivers. It used to be safe to assume that a machine running PC hardware would use a 32-bit x86-compatible processor. However, with the advent of the AMD64 (and the upcoming Intel competitor) this is no longer true.

Anyhow. This is a preliminary list, which will hopefully fill out with technical information as time passes inexorably by.

Installing Gentoo

The latest Gentoo LiveCD's come with an "emachines" kernel specifically for this laptop. It should be possible to boot the CD using "emachines" or "emachines-nofb".

You should probably ext3 for your file system. Reiserfs and JFS are known not to work well on amd64. [source]

Kernel Configuration

You should be using gentoo-dev-sources as your kernel. gentoo-sources also works but it officially deprecated for the amd64 architecture. Please also read the Gentoo/AMD64 tech notes which are chock full of valuable information and tips, including a few entries specific to the m6805 laptops.

Note that as of gentoo-dev-sources-2.6.3-r2, the genkernel utility supports m6805 laptops, and this is probably the easiest way to get started with a kernel. This post in the Gentoo forums describes how to do this.

You should compile USB support and UHCI HCD support (this is the specific VIA chipset for the laptop's USB controller) into the kernel. If it is compiled as a module, you will get multiple spurious atkbd.c warnings on boot which make it hard to do anything. Most everything else can be compiled as a module. [source, source]

If you're compiling your kernel manually, you'll want to include support for the following config options:

IA32_EMULATION (Executable file formats)
This lets you run 32-bit binaries, which you'll probably want to do at some point.
BLK_DEV_VIA82CXXX (Device drivers / ATA... support)
This enables the VIA IDE chipset.
VIA_RHINE (Device drivers / Networking support / 100Mb Ethernet)
This enables support for the ethernet card. Note that as of this writing you must boot the machine with noapic acpi=off in order to get the ethernet card to work.
SND_VIA82XX (Device Drivers / Sound / ALSA)
This enables support for the VIA sound card.
USB_UHCI_HCD (Device Drivers / USB support)
As noted above, you must compile this (and USB support itself) into the kernel rather than compiling it as a module.
DEV_FS and DEVFS_BOOT (File Systems / Pseudo file systems)
Gentoo requires these modules, at least for now.

There are some pre-existing kernel configurations around which you could use for reference, like this one at muru.com (currently this .config is for kernel 2.6.2 but it should work fine).

Booting the Laptop

For now you'll want to emerge grub-static rather than grub. Some people have been reporting success with compiling native 64-bit versions recently, though nobody was using an m6805 specifically (as far as I've seen). [source]

As of this writing, you'll need to use three boot parameters to get the kernel to boot properly. The first two below enable the ethernet card to work (currently it doesn't play well with ACPI) and the last one makes the touchpad work correctly in X.

pci=noacpi noapic psmouse.proto=imps

These settings should go in your /boot/grub/grub.conf file.

Note: you have to use both noapic and pci=noacpi. These acronyms are confusingly similar, so type them carefully.

X Windows

The laptop features a pretty beefy video card: an ATI Radeon Mobility 9600. ATI, unfortunately, releases no source code, and as a result the m6805 user will get no 3D acceleration out of the laptop until they release 64-bit compiled versions of the drivers. Note that 2D acceleration is available, however, and X runs quickly.

The quickest solution for getting X up and running is currently to emerge >=xfree-4.3.99.902 (you will likely have to manually unmask it) and grab the XF86Config from muru.com.

The Ethernet Card

As noted above, ACPI must be disabled at boot time in order for the Linux via-rhine driver to work. However, one Debian user has reported some success in getting ACPI and the ethernet card to coexist using kernel 2.4.24 and the scyld drivers in 32-bit mode.

Wireless

(This section to be fleshed out with more and better info.)

The notebook uses a Broadcom 94306 chip. No open-source drivers are known to exist, and most people report little success with ndiswrapper or the linuxant driver.

Note: some people have reported being able to run ndiswrapper successfully. I suspect that these people are lying (or, more likely, running in 32-bit mode).

Also note that some users have reported success with getting the wireless cards working in FreeBSD/amd64, using the "Project Evil" code (this is the FreeBSD equivalent of ndiswrapper). Possibly Project Evil can be examined to see how it handles calling the Windows drivers, and the code can then be ported to the ndiswrapper project.

Misc notes

The modem
So far I seem to be the only person who cares about this device, but for what it's worth, the modem requires a special driver and a userspace program to control it. These programs are available, but the driver includes a binary 32-bit .o file which will not link against the other files.
The card reader
This is reported to work fine (it's a USB device).
The various buttons (volume, Fn keys, etc)
Most of these seem to use ACPI to interface with the OS. For now they largely provide a way of conveniently freezing the operating system, for times when you don't want to do a clean shutdown, nor turn off the machine's power. I have yet to discover the correct method of subsequently unfreezing the machine. Maybe I need to press the "any" key.