Archos101it

Revision 6 as of 2011-04-22 12:38:20

Clear message

photo.jpg

Install Kubuntu on Archos 10.1 internet tablet

  • Install SDE firmware (see archos.com)
  • Generate a kubuntu mobile img using rootstock

sudo rootstock --fqdn archos --login u --password u --keepimage --imagesize 1500M --seed kubuntu-mobile --
dist maverick
  • Mount the rootfs.img of the SDE from your data partition (that is the thing you can mount when doing the USB sharing dance with Android)
  • Mount your Kubuntu .img
  • copy /lib/modules/* from the former to the latter
  • Unmount both (best also run sudo sync)
  • Move the SDE rootfs.img out of the way
  • Copy your Kubuntu .img as new rootfs.img on the data partition
  • sudo sync; unmount and power off the device
  • Power on and hold volume down pressed until the recovery boot thing comes up
  • Select developer edition using the volume button and confirm using the power button
  • If all goes fine you should get to either KDM or TTY login
  • To power off again you'll need to reset by keeping the power button pressed for 10 seconds

Configure

The better part of ARM/n900 also applies for the Archos 10.1.

Install Software

Sames as n900 really. Mount the rootfs.img and chroot into it then do whatever modifications you deem necessary.

sudo apt-get install ssh

Once you have SSH you can do everything else over SSH and USB networking, see below.

USB Networking

  • In the device's /etc/network/interfaces

auto usb0
iface usb0 inet static
        pre-up rmmod musb_hdrc
        pre-up modprobe musb_hdrc mode_default=2
        pre-up modprobe g_ether
        address 192.168.0.202
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.200
  • In the host's /etc/network/interfaces

auto usb0
iface usb0 inet static
        address 192.168.0.200
        netmask 255.255.255.0
        up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE
        up echo 1 > /proc/sys/net/ipv4/ip_forward
        down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE
        down echo 0 > /proc/sys/net/ipv4/ip_forward
  • If you wish, you can of course also pull udev magic as with the n900 as to not having to use usb0
  • After starting the device you should be able to connect to it at 192.168.0.202

Graphics

sudo apt-get install xserver-xorg-video-omapfb xserver-xorg-input-tslib
  • xorg.conf:

Section "Module"
        Load          "extmod"
        Load          "dbe"
        Load          "glx"
        Load          "freetype"
        Load          "type1"
        Load          "record"
        Load          "dri"
EndSection

Section "Monitor"
        Identifier      "Builtin Default Monitor"
EndSection

Section "Device"
        Identifier      "Builtin Default fbdev Device 0"
        Driver          "omapfb"
EndSection

Section "Screen"
        Identifier      "Builtin Default fbdev Screen 0"
        Device          "Builtin Default fbdev Device 0"
        Monitor         "Builtin Default Monitor"
EndSection

Section "InputDevice"
        Identifier      "Touchscreen"
        Option          "DeviceName" "Touchscreen"
        Option          "Device" "/dev/input/by-id/usb-UNITEC_USB_Touch__Win7_-event-if00" 
        Option          "Emulate3Buttons" "false"
        Option          "SendCoreEvents" "On"
        Driver          "evdev"
EndSection

Section "InputDevice"
        Identifier      "dummy"
        Driver          "void"
        Option           "Device" "/dev/input/mice"
EndSection


Section "ServerLayout"
        Identifier      "Builtin Default Layout"
        Screen          "Builtin Default fbdev Screen 0"
        InputDevice     "Touchscreen" "CorePointer"
        InputDevice     "dummy"
EndSection
  • tslib without evdev should technically also work, however it claims the device is no touchscreen, so maybe not Wink ;)

  • turning off 3 button emulation is essential to get some sort of sensible click behavior

GLES

Not yet working, will at least need kernel headers and sources present: ARM/OMAP/Graphics

Kernel

initramfs

The SDE comes with a very tiny initramfs which basically only takes care of mounting the rootfs.img as final root of the system.

TTY Messages

The default kernel uses ttyS2 as console which will prevent it from printing anything useful to the display. To change this you will need to change the initramfs to not throw some bootsplash image at fb0 AND build your own kernel with cmdline containing "console=tty1,ttyS2...".

Source

Archos published a monster patch for their 2.6.29 kernel as part of their openembedded overlay tar. It also contains a config for the kernel. Using both it is pretty easy to replicate the kernel (and for example get debug output).

Mind that for building you will need the arm cross compile GCC packages and set the env var appropriately:

export CROSS_COMPILE=arm-linux-gnueabi-

Archos recently also published a git repo with their plunder, which should make things easier: http://gitorious.org/archos