(One more Eken post and I'm going to have to rename this blog to Project M001!)

EDIT: Everything here is somewhat out of date now. Jacob Stoner has released a Debian build with X11 & touchscreen support. The links are all posted on the slatedroid forum.

Debian Boots! I wish I had a keyboard!

Debian on the WM8505 netbooks has been around for a while, thanks to the efforts of #easypc's abrasive. I needed to tweak a couple of things before his release worked on the Eken M001 tablet.

Before you begin

You probably want to start by plugging in either a USB keyboard or a serial cable. Otherwise, all Debian has to offer you is a blank login console.

Howto

Follow abrasive's directions in the README here to set up the partitions on your SD card.

Before you boot the SD card, make the following 4 changes:

  1. In the FAT partition you made, replace script/scriptcmd with this scriptcmd file.
  2. Download the Eken official Android 1.6 upgrade from here, unzip it and copy the script/uzImage.bin file (kernel image) over script/uzImage.bin on the FAT partition you made.
  3. In the ext2 partition, edit etc/inittab and replace this line:
    #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
    with this one:
    T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
  4. Also in the ext2 partition, run sudo mknod (mount-point-of-ext2-part)/dev/ttyS0 c 4 64(or equivalent)

(The last two steps are only strictly necessary if you want to use the serial console, but the first two are necessary all of the time.)

Then pop the card in and you should boot into Debian! The instructions on the bento-linux Wiki for X11 work as well, although I found I needed a window manager (like xfce4) installed before X11 would stay launched.

Default XFCE4 on my M001 tablet

EDIT: If you're having trouble booting from SD, I just had an experience where uboot was refusing to load 'scriptcmd' even though it was correct. I had to reformat the FAT partition and re-copy the files. Not sure what that was about, but might be worth trying if your Debian suddenly refuses to boot.

Notes

The new scriptcmd adds the kernel command line arg "console=ttyS0,115200n8" to the command line. Seems unnecessary, but I couldn't get it to boot successfully at all without this addition.

If you don't replace the netbook kernel with the one from Eken, you won't get any graphics display. Although debian will still run fine through the serial port. I'm guessing the netbook kernel has the LCD buffer at a different address.

</li>

Eken boots android with mem=109M on the command line whereas abrasive has used mem=112M. I don't know if the Android version is allocating extra space for framebuffer double buffering, or something else. I haven't noticed any differences yet so I'm running with mem=109M.

I haven't tried the optional scriptcmd.install to install Debian to the internal flash, yet. I'm guessing you may need to repartition the mtd to get full use, as the Android partitioning scheme uses two partitions.

Pro tip: to see the insides of a scriptcmd file run 'tail -c +73 scriptcmd'

Disk access when running from the SD card is sloooow (at least for slow SD cards like mine.) Don't know if running from internal flash is any better.

I'm guessing that the framebuffer works normally in the Debian install because it isn't using double-buffering, which is necessary for Android to work. I don't know if 'abrasive' had to do anything special to get the 'fbcon' console module to work, I'm going to try and find out though!

EDIT: Jacob Stoner has come up with a small program to init the touchscreen, and a more recent version of evtouch that works for input. info here, init program & recent evtouch. He says he's going to come out with an installable package (no serial/keyboard required) shortly.

I had a quick try at copying across the wm9715-api.ko & wm9715-ts_800_480.ko touchscreen modules from the Eken firmware, and using them with the package xserver-xorg-input-evtouch to provide a touchscreen mouse. No luck, though. The 'evtest' utility shows screen presses coming in, but no X/Y coordinates. A better approach might be to compile the the Wolfson OSS drivers against the 2.6.29 kernel headers.

Finally,

Want a quick laugh?

~# modinfo wm9715-api.ko filename: wm9715-api.ko author: VIA ShenZhen MCE SW Team license: GPL description: WM9715 api for the driver of touchscreen and battery
GPL, huh? This is kind of "GPL" where noone releases any source code. Ho ho ho! Thanks VIA, Wondermedia & Eken.

Thoughts on “Debian on the Eken M001