# Gentoo on the Archos 9

## AdmiralNemo

Hello, all! It's been a very long time since I've been around these forums, but I thought I'd share my (somewhat limited) progress on installing Gentoo on my new Archos 9 tablet.

Caveats

Installing Gentoo is a very CPU-intensive process and my Archos 9 has some pretty serious heat dissipation issues. I had to keep a desk fan blowing on my tablet at all times to prevent the LCD from overheating and failing. Archos refused to admit that this is a problem and would not repair or replace my device when I RMA'd it because they could find nothing wrong. For this reason, I would not recommend buying one of these devices.

I haven't completely finished this process, so I will add more to this post as I complete various steps. For now, here's what I have working:

 It boots!

 Wi-Fi

 Native 1024×600 resolution at the console

Here's what I have tried that didn't work (yet):

 X11 using the "psb" driver

 Ethernet adapter (on the port replicator)

And finally, here's what I haven't yet tried:

 Audio

 Bluetooth

 Webcam

 Touch screen

 "Trackpoint"

Preparing the Install Media

The Archos 9 only has a single USB port, and obviously there is no on-screen keyboard available while installing Gentoo, so you'll need to get some more ports to support both a keyboard and the boot medium. I bought the port replicator from Archos, which has two extra ports, but you can also use a USB hub.

There are a couple of ways to boot the Gentoo install media, including using an external USB CD-ROM and creating a bootable USB flash drive. I don't have an external USB CD-ROM drive, so I chose to make a bootable flash drive using UNetbootin:

 Download the latest weekly x86 minimal install CD image from a Gentoo mirror and verify the file signatures

 Get the UNetbootin utility (`emerge -av unetbootin` or download the Windows version).

 Launch UNetbootin, tick "Disk Image," choose ISO and enter the path to the install CD image you downloaded.

 Choose your USB device at the bottom and click OK.

UNetbootin will install GRUB on your flash drive and copy the necessary files from the ISO image onto it. You can also follow the official Gentoo instructions for creating a LiveUSB, but UNetbootin is easier by far.

In order to access the network later, you will need the firmware for the Broadcom wireless chipset. Supposedly, you can get this from the b43 Driver page at Linux Wireless, but I couldn't find it. Luckily, there is an ebuild in Portage, "b43-firmware," that will fetch the firmware for you.

 Fetch the "b43" firmware (`emerge -av b43-firmware` on another Gentoo machine, or download the broadcom-wl-4.150.10.5.tar.bz2 tarball directly)

 Copy the "b43" directory (/lib/firmware/b43 if you used the ebuild) to your flash drive

Unmount/safely remove your flash drive and plug it into your Archos 9. The tablet will automatically boot off of a USB storage device if present, so power it on. You should see the UNetbootin Grub menu. Choose "gentoo-nofb" and hit enter.

Installing Gentoo

Follow the Gentoo Handbook for installing Gentoo. For each section, there may be a few deviations from the recommended steps, which I have listed here.

Configuring your Network

Surprisingly, I was able to get the wireless to work but not the wired Ethernet adapter on the port replicator. For the wireless, you'll need special firmware. The Gentoo install media include the `b43-fwcutter` utility, but not the firmware itself, which is why you had to copy it yourself earlier. To install it, simply copy it over from your flash drive:

```
cp -R /mnt/cdrom/b43 /lib/firmware/
```

Follow the instructions in the Gentoo Handbook, part 4, chapter 4 Wireless Networking to configure your wireless network. "wpa_supplicant" is available on the install media, so all you should have to do is create `/etc/wpa_supplicant/wpa_supplicant.conf` and enter your network information. You'll then need to create an init script:

```
cd /etc/init.d/

ln -s net.lo net.wlan0
```

 and start it:

```
/etc/init.d/net.wlan0 start
```

If you configured wpa_supplicant correctly, you should be now connected. It may take several seconds for everything to get running. Run 

```
wpa_cli status
```

 to see what's going on.

Preparing the Disks

The install medium doesn't automatically load the necessary kernel module for the SATA controller in the Archos 9. You'll have to load it manually or no hard disks will be detected:

```
modprobe pata_sch
```

Installing the Gentoo Installation Files

Nothing special about this section; follow the handbook as usual.

Installing the Gentoo Base System

If you have another Gentoo computer, I would highly recommend setting up Distcc. The Atom Z515 in the Archos 9 is terribly slow, so compiling software on its own will take a very long time. Follow the Gentoo Distcc Documentation for instructions on how to set up Distcc on both your other computer and your tablet. You will need to make sure you follow the Distcc Cross-Compiling guide as well, if your other computer is running an amd64 installation.

Configuring the Kernel

When you are ready to configure your Kernel, make sure you have at least the following (in addition to the recommendations in the handbook):

```
General setup  --->

    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

[*] Enable loadable module support  --->

-*- Enable the block layer -->

    IO Schedulers  --->

        Default I/O scheduler (No-op)

Processor type and features

    Processor family (Intel Atom)

Bus options (PCI, etc.)  --->

    [*] PCI support

    [*] PCI Express support

    <*>   PCI Express Hotplug driver

    < > PCCard (PCMCIA/CardBus) support

    <*> Support for PCI Hotplug  --->

[*] Networking support  --->

    -*- Wireless --->

        <*> cfg80211 - wireless configuration API

            <*> Generic IEEE 802.11 Networking Stack

Device Drivers  --->

    < > ATA/ATAPI/MFM/RLL Support

    <*> Serial ATA and Parallel ATA drivers  --->

        <*>   AHCI SATA support

        [*]   ATA SFF support

        [*]     ATA BMDMA support

        <*>       Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support

        <*>       Intel PATA old PIIX support

        <*>       Intel SCH PATA support

        <*>     Intel PATA MPIIX support

        <*>     Generic ATA support

    [*] Network device support  --->

        [*]   Wireless LAN  --->

            <*>   Broadcom 43xx wireless support (mac80211 stack)

        [ ]   PCMCIA network device support  --->

              USB Network Adapters  --->

            <*> Multi-purpose USB Networking Framework

            <*>   SMSC LAN95XX based USB 2.0 10/100 ethernet devices

    -*- I2C support  --->

        [ ]   Autoselect pertinent helper modules

                I2C Algorithms  --->

                    -*- I2C bit-banging interfaces

                    <*> I2C PCF 8584 interfaces

                    <*> I2C PCA 9564 interfaces

    Graphics support  --->

        < > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->

        <*> Support for frame buffer devices  --->

            [ ]   Enable Tile Blitting Support

            <*>   Userspace VESA VGA graphics support

            <*>   VESA VGA graphics support

        Console display driver support  --->

            <*> Framebuffer Console support

            [*]   Map the console to the primary display device

            [*]   Support for the Framebuffer Console Decorations

    <*> Sound card support  --->

        <*>   Advanced Linux Sound Architecture  --->

            [*]   PCI sound devices  --->

                <*>   Intel HD Audio  --->

                    [*]   Build hwdep interface for HD-audio driver

                    [*]   Build Realtek HD-audio codec support

                    [*]   Build Analog Device HD-audio codec support

                    [*]   Build IDT/Sigmatel HD-audio codec support

                    [*]   Build VIA HD-audio codec support

                    [*]   Build ATI HDMI HD-audio codec support

                    [*]   Build NVIDIA HDMI HD-audio codec support

                    [*]   Build INTEL HDMI HD-audio codec support

                    [*]   Build Cirrus Logic codec support

                    [*]   Build Conexant HD-audio codec support

                    [*]   Build Creative CA0110-IBG codec support

                    [*]   Build C-Media HD-audio codec support

                    [*]   Build Silicon Labs 3054 HD-modem codec support

                    [*]   Enable generic HD-audio codec parser
```

Make sure you unselect things I have listed but do not have marked; some options only become available when others are not selected.

Again, if you have the ability to use Distcc, I would recommend using it to compile the kernel as well. Instead of the command listed at "Code Listing 3.8: Compiling the kernel," do the following to build your kernel with Distcc:

```
export PATH="/usr/lib/distcc/bin:${PATH}"

pump make -j5 && make modules_install
```

Configuring your System

The wireless LAN adapter will be named "wlan0," so substitute that for anywhere the handbook says "eth0." For example, in /etc/conf.d/net, you'll have this:

```
modules_wlan0=( "wpa_supplicant" )

config_wlan0=( "dhcp" )
```

Installing Necessary System Tools

Make sure you install the necessary tools, etc. to get wireless working. I recommend wpa_supplicant for configuration, and you will also need the Broadcom firmware:

```
emerge -av wpa_supplicant b43-fwcutter b43-firmware
```

Configuring the Bootloader

To activate the framebuffer, you need a `vga` parameter on your kernel command line. Your `kernel` line should look something like this:

```
kernel /kernel-2.6.35-r4 vga=0x315
```

 800×600 is the best you can get with the VESA driver; 1024×600 will be available later with the Poulsbo driver.

Finalizing your Gentoo Installation

That's pretty much it for installing. Once you finish reading the handbook, your tablet should be able to boot on its own. There are a couple of things I like to do to my Gentoo installs, like installing `splashutils` and the `splash-themes-livecd` theme and setting them up, and setting up an initramfs to choose the root partition by UUID instead of device node. You can find instructions for getting all that working online; nothing special needs to be done for the Archos 9.

X.org

The Intel GMA500 chipset is pretty problematic for Linux. There are at least two different drivers available, psb and IEGD, and neither of them have high success rates. Nevertheless, I attempted to get the psb driver working with marginal success.

There is no longer a `VIDEO_CARDS` flag for the psb driver, so once you get xorg-server installed, you'll need to install the `xf86-video-psb` driver manually. This will pull in a number of dependencies, including a drm library and a kernel module, as well as a few others. The kernel module will not compile against kernel >= 2.6.34, but a patch is available. The X.org driver will compile but will not load. There are a few patches available for it as well, but I still can't get it to work. `X -configure` detects the driver and adapter and creates a configuration file, but `startx` just blanks the screen and leaves the device unresponsive. To restart it, you'll have to use the emergency SysRq key sequences.

You can get the patched kernel module and X.org driver from my Portage overlay if you want to try your luck.

Install "layman"

```
emerge -av layman
```

Edit your /etc/layman/layman.cfg and adjust the "overlays" option: 

```
overlays  : http://www.gentoo.org/proj/en/overlays/repositories.xml

            http://pyrocufflink.net/layman-list.xml
```

Sync the overlay list and install the "dustin" overlay

```
layman -L

layman -a dustin
```

Finally, activate layman

```
echo source /var/lib/layman/make.conf >> /etc/make.conf
```

Let me know if you have any trouble with the ebuilds.

Once you have the `psb-kmod` package installed, you can insert it into the kernel, which will automatically adjust the console resolution to native 1024×600.

```
modprobe psb
```

 The module will be automatically loaded at boot in the future, so you'll always have a decent console resolution.

I believe the problem with the X.org driver is incompatibility with X.org 1.8. I am going to try downgrading to 1.7 later and see if that helps. I also intend to try the generic VESA driver.

More to Come

I will try to keep this post up-to-date with my results as I continue to work with my Archos 9. I don't know what problems I'll encounter, but I intend to get the bluetooth, audio, and webcam working. I read in a few places that the touchscreen may work, but perhaps not optimally. I'm not sure about the trackpoint. I am really hoping to have a fully functional Gentoo install soon; I really don't want to have to go back to Windows 7 Starter. Questions, comments, and suggestions are welcome.

----------

## tomk

Moved from Kernel & Hardware to Documentation, Tips & Tricks as it fits better here.

----------

## AdmiralNemo

I've been working for several days still trying to get a working X11 environment without much luck. I've mostly been concentrating on the psb driver since it seems to have a few advantages over the other options, like 3D acceleration and native resolution support. I have updated all the related ebuilds in my overlay to match the SRPMs available in RPM Fusion that are apparently working for other people on Fedora, but I still can't get Xorg to start; just a blank, unresponsive console terminal.

Here are some pages I have been reading, just for reference, though most of them are pretty outdated:Poulsbo (GMA 500) driver in RPM Fusion repository for Fedora 13

Video acceleration and Poulsbo news

GMA 500 / Poulsbo driver for Fedora 11: soon to be in RPM Fusion!

Native Poulsbo (GMA 500) graphics driver for Fedora 10+

Compiling Intel Atom Poulsbo GMA 500 graphics driver on DebianIf anyone has any other suggestions, please share. I hope to get my tablet to be more than an expensive desk ornament soon!

----------

## n3r0

Hi AdmiralNemo,

Cheers for the updated ebuilds for the Poulsbo driver set, it is much appreciated.

As detailed below I gave the ebuilds a crack and managed to get the system up and running perfectly after fiddling with the CFLAGS.

Background:

I have had my Xorg-Server frozen at 1.6 for the past few months and have been meaning to have a crack at the new rpm's posted on Happy Assassin.

So this turned out to be a really awesome find in terms of getting some of my weekend back.

I am running Gentoo on a little BenQ U121, which of course has the intel gma500 chipset.

Problem:

I added your Repo and unmasked xf86-video-psb-0.32.1 and all the frozen packages related to xorg-server-1.7.*.

Pleasantly they all built without any problems and so I decided to go for a restart.

Sadly I was initially greeted with a blank screen after the psb drivers were loaded.

At first I thought it was the same problem as with the older ebuilds however I decided to dig around and see what was happening (after all reverting to 1.6 was going to be tricky at best now).

Although there were no errors being logged in Xorg.0.log, I managed to find a reference in the slim.log about an undefined symbol.

A quick hunt through the source code revealed that the function did exist but that the compiler was not exposing the symbol during the build.

Solution:

I decided to add "-fvisibility=default" to my CFLAGS on the command line and rebuild all psb related packages in the hope that the driver would behave.

A quick reboot later and I now have a working X running natively at 1366x768!

I have to say, with the latest version of Xfce4 and Xorg-Server, the system seems to be much more responsive, and certainly I can see a definite improvement in the graphic quality.

A quick search yielded some discussion about an upstream patch to address this, however I'm not sure if it's made it into the latest rpm's. 

For now though the visibility declaration seems to fix the problem.

So once again Thankyou very much for the excellent ebuilds and I hope with a bit more testing this can be merged back in to the main tree.

----------

## AdmiralNemo

Thanks n3r0 for your suggestion regarding the Poulsbo driver. Unfortunately, I no longer have my Archos 9 device; I sent it back because of the heat issue I described above (sitting idle at a console for 45 minutes would cause the device to overheat and become unusable). I hope your advice can help others, though.

Looking forward to the Asus EEE Pad; hopefully it will have better results  :Smile: 

----------

## AnarKEY

Hey,

thank you very much! Since I updated my xserver to 1.7, I had to use vesa with very bad resoluation and performance. Now it works fine with n3r0's hints and the excellent ebuild on kernel 2.6.35.6.

----------

## AdmiralNemo

Great! I'm glad other people are benefiting from my experiences. I will try to continue to maintain the Poulsbo-related ebuilds in my overlay knowing that others are using them, and if I get time, I'll submit them for review and inclusion in the mainline tree. Please let me know if you have any trouble.

----------

## Yamakuzure

I have just tried the ebuilds from your overlay, and the kernel module fails to build abysmally with gentoo-sources-2.6.37. I guess it is a lot more different to previous kernels than I thought.

I am currently downgrading my kernel and try again. If it works I can post the log from the failed build. (It's on a different machine than from which I am typing now)

Edit: It doesn't compile with 2.6.36 as well.

Edit 2:: The patches here: https://bugs.gentoo.org/show_bug.cgi?id=344889 are said to fix the bug with kernel-2.6.36

----------

## Yamakuzure

But the patch doesn't help, neither with 2.6.36 nor .37.

I have opened a bug with the error messages here: https://bugs.gentoo.org/show_bug.cgi?id=353514 (I tried with the ebuilds from the bug mentioned above first)

Edit: I found an entry in https://bugs.gentoo.org/show_bug.cgi?id=338330 telling of the overlay "luman" which is said to be tested with 2.6.36 and 2.6.37. I'll give it a try tonight.

----------

## Yamakuzure

It isn't enough for amd64, but I created a new ebuild with an additional patch that makes the poulsbo drivers (ebuilds from luman overlay) compile fine under amd64 with gentoo-sources-2.6.37. (Bug  353514)

Unfortunately I have to wait until tomorrow to test the module.

----------

## just a guest

Very thanks for this topic! I just buyed Archos7 and, think, should try to install gentoo.

----------

