Debian on Archos gen(6?)7

Debian is a universal operating system used on many other embedded devices, and also on home computers. Using Debian on the Archos 5 gen7 gives access to the huge army of software packaged in the Debian repositories, already compiled for the arm processor.

For an existing Debian/Ubuntu? user, using Debian on Archos makes unit a very familiar, trustworthy and flexible place to hack in.

/!\ I wrote a big script to install a full debian on gen6 (will probably work on gen7/gen8 with minor tweaks), more info: -- imc

A guide on how to get Debian on Gen8 devices is availible at Debian gen8


For debian installing, we need:

1) Archos gen7 device (gen6 not tested) with OpenAOS boot menu and at least 1G free space on disk.

2) Linux distribution (SDE, for example) already installed on Archos, or some arm-eabi based device with linux.

3) Computer with Linux - "host" - if you doesn't have direct internet connection on archos, or want to use normal shell (SSH).

4) And of course, the Internet!

Enable SSH and share the internet on SDE

If you have direct internet connection on your archos, you can skip this part.

1) In SDE root shell type:

rmmod musb_hdrc
modprobe musb_hdrc mode_default=2
modprobe g_ether

This will enable usb networking.

2) Connect the USB cable on the host machine and to configure the new network USB (as root):

ifconfig usb0 netmask

3) Enable Internet sharing

on host machine (as root):

iptables -A POSTROUTING -t nat -j MASQUERADE -s
sysctl -w net.ipv4.ip_forward=1

on Archos:

echo nameserver XXX.XXX.XXX.XXX > /etc/resolv.conf

where XXX.XXX.XXX.XXX - your DNS ip (use if you have an dns relay on host)

4) Test connecction on Archos:

# ping
PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=56 time=78.7 ms
64 bytes from icmp_seq=2 ttl=56 time=78.3 ms
64 bytes from icmp_seq=3 ttl=56 time=78.9 ms
64 bytes from icmp_seq=4 ttl=56 time=79.5 ms

Installing Debian

Login to Archos using ssh (ssh on host) or just open root terminal in SDE (bad idea).

Prepare image and fs

Create image file (be careful with dd!!!):

dd if=/dev/zero of= bs=1M count=1024

Format it to ext3:

mke2fs -j 


mkdir /mnt/debian
mount -o loop  /mnt/debian

Install debootstrap

ar -x cdebootstrap-static_0.5.6_armel.deb data.tar.gz
tar -xz -C / -f data.tar.gz
rm data.tar.gz cdebootstrap-static_0.5.6_armel.deb

Note: You can change to your prefered debian mirror.

Install base system using debootstrap

cdebootstrap-static --flavour=minimal --allow-unauthenticated --include=ifupdown,udev,procps,netbase,vim-tiny,module-init-tools,wget,openssh-server,screen,apmd squeeze /mnt/debian/

Note: You can change to your prefered debian mirror.

You can change squeeze (testing) to sid (unstable) or lenny (stable), but there might be a problems.

Debootstrap will download 100-200 MB of packages and install it to /mnt/debian.

Now you have debian-armel rootfs, but it not ready to work propely on Archos.


Install modules

cp -R /lib/modules/* /mnt/debian/lib/modules

Configure network and hostname

echo "archos" > /mnt/debian/etc/hostname
cat > /mnt/debian/etc/network/interfaces <<__END__
auto lo
iface lo inet loopback
auto usb0
iface usb0 inet static
    up echo nameserver XXX.XXX.XXX.XXX >/etc/resolv.conf

Where XXX.XXX.XXX.XXX - you DNS (see above)

This runscript will start USB networking:

cat > /mnt/debian/etc/init.d/g_ether <<__END__
#!/bin/sh -e
. /lib/lsb/init-functions

case "\$1" in
    /sbin/modprobe g_ether
    sleep 2
    ifup usb0
    log_end_msg 0
    exit 0

    ifdown usb0
    /sbin/rmmod g_ether
    log_end_msg 0
    exit 0

    ifdown usb0
    /sbin/rmmod g_ether
    /sbin/modprobe g_ether
    ifup usb0

    echo "Usage: $0 {start|stop|restart}" >&2
    exit 3
exit 0
chmod +x /mnt/debian/etc/init.d/g_ether

Atmega issue

Atmega pinger:

cat > /mnt/debian/sbin/ping_atmega <<__END__
while true; do
   echo 1 > /sys/devices/platform/atmegag7-io/charge_rate
   sleep 60
chmod +x /mnt/debian/sbin/ping_atmega

Atmega pinger runscript:

cat > /mnt/debian/etc/init.d/atmega <<__END__
#!/bin/sh -e
. /lib/lsb/init-functions

case "\$1" in
        /sbin/ping_atmega &
        killall ping_atmega

        echo "Usage: /etc/init.d/ping_atmega {start|stop}"
        exit 1
exit 0
chmod +x /mnt/debian/etc/init.d/atmega

APT config

cat > /mnt/debian/etc/apt/apt.conf.d/99no-install-recommends << __END__
APT::Install-Recommends "0";


mkdir /mnt/debian/media/data
cat > /mnt/debian/etc/fstab << __END__
rootfs     /                ext3    defaults,errors=remount-ro,noatime 0 1
/dev/sda1  /media/data      ext3    defaults,noatime                   0 0

Your data will mount to /media/data in Debian.


Chroot to debian:

chroot /mnt/debian /bin/bash

Change root password:


Remove debootstrap:

apt-get --yes --purge remove cdebootstrap-helper-rc.d

Add our scripts to autostart:

update-rc.d g_ether defaults
update-rc.d atmega defaults

Install locales:

apt-get update
apt-get install locales

Edit /etc/locale.gen file and uncomment needed locales, than execute

umount /mnt/debian

Congratulations!!! You have a debian on your Archos! Don't forget to add debian to menu.lst. After reboot you'll able to connect Debian throught SSH.

Now you can install a thousands of programs from Debian repositories using apt-get.


All commands below must be run at target debian after reboot and login throught ssh as root

X server

Install Xorg and touchscreen module:

apt-get install xorg xserver-xorg-input-tslib libts-bin nodm

Configure Xorg:

cat > /etc/X11/xorg.conf <<__END__
Section "Device"
       Identifier      "Configured Video Device"
       Driver          "fbdev"

Section "InputDevice"
       Identifier "Touch"
       Driver "tslib"
       Option "TslibDevice"    "/dev/input/event2"

Calibrate you touchscreen:

TSLIB_TSDEVICE=/dev/input/event2 ts_calibrate

XFCE + Matchbox

My preferred variant. Install XFCE and matchbox:

apt-get install xfce4 matchbox

Configure you X session:

cat > ~/.xsession <<__END__
exec matchbox-window-manager -use_titlebar no -use_cursor no &

Start GUI:

/etc/init.d/nodm start


Index of Debian wiki pages:

Note: This will list all pages with Debian as prefix.

Recent wiki additions/changes: