[DEV] Ubuntu 11.10 for A43/A101 [RELEASE 1]

Search This thread

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Last summer I got Ubuntu 11.04 working on my A43 but didn't post anything about it. With the progress made on kexec and the new kboot bootloader, it is now possible to have multiple kernels for multiple OS'es. This means it just got a whole lot easier to boot Ubuntu without losing the ability to run OpenAOS or UrukDroid Android OS'es.

As far as I'm aware, Ubuntu doesn't work on the 2.6.29-omap1 kernel that Archos uses and is the base for most other development on gen8. However, for A43 and A101 users, OpenAOS member Nicktime made some headway in porting the 2.6.37+ kernel to gen8, but appears to have abandoned the project. I've cloned his repository and have been working to add features that he did not finish implementing. However, his kernel did have the ability to boot an Ubuntu rootfs and it works very well for desktop Linux distributions (this also works on Debian and I would assume other ARM distros as well).

As I have been unable to build an Ubuntu 11.10 rootfs using the rootstock method that Ubuntu describes here, I've started working with the HP TouchPadBuntu rootfs from this thread. This rootfs boots well on my TouchPad and I've removed the TP-specific items from it and added the gen8 items as necessary. The display is working and the touchscreen works as well (calibrated correctly as I copied my calibration from my 11.04 install). It boots into Unity 2D which is the default. I'm having issues getting the wl1271 wireless module up, I have had it running once but NetworkManager said device was not ready despite being able to iwlist scan and see a list of AP's and then connect to them manually.

RELEASE 1

You will need the rootfs and the modifications.

To install, mount your destination partition (should be at least 4GB and ext3 formatted) to a location, then run the following:

Code:
cd /media/UbuntuPartition (change this to wherever your Ubuntu partition is mounted)
tar xzf /path/to/TouchPadBuntuRootfs.tgz ./
tar xzf /path/to/Gen8Modifications.tar.gz ./

If you do not have a microSD card in the slot, you need to edit the file etc/fstab and change anything mmcblk1 to mmcblk0, this is because the SD card will identify as mmcblk0 if it exists, but if it does not exist then the internal storage gets identified as mmcblk0 instead. This is a kernel issue I have yet to find a solution to.

Kernels for Release 1
These boot from partition 3 of internal memory (/dev/mmcblk2p3)
Normal and Rotated 90 Degrees

This boots from partition 1 of external sdcard (/dev/mmcblk0p1)
Normal

These files do not need an initramfs, but to flash to device or to use with kboot you need one anyways. Simply create an empty (0 byte) file named 'initramfs.cpio.gz' and use it for this purpose.

INFO ON KERNEL MMC/SD INITIALIZATION

mmc0 (mmcblk0pX) - Micro SD card
mmc1 (mmcblk1pX, mmcblk2pX) - System and Data blocks of internal memory
mmc2 - wl1271 SDIO interface

I installed the rootfs to an 8GB microSD and boot it using root=/dev/mmcblk0p1 on the kernel command line.


USEFUL LINKS
http://dev.openaos.org/wiki/Gen8Linux2.6.37
https://github.com/CalcProgrammer1/archos-gen8-kernel-2.6.37
http://xdaforums.com/showthread.php?t=1304475
http://www.omappedia.org/wiki/OMAP_WiLink_Connectivity_Home
http://www.omappedia.org/wiki/MAC802.11_based_Wilink
 
Last edited:

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
TIPS AND TRICKS

Disk Usage Power LED:

It is possible to make the Power LED function as a disk usage LED. This will let you know when the system is reading or writing to the memory and can be incredibly helpful in determining whether your system has locked up or is just being slow.

Simply write "mmc0" or "mmc1" (depending on what interface you wish to monitor) to:

/sys/class/leds/power/trigger (maybe power_led can't remember)

This can be changed in the kernel source in the file "archos-leds.c" as well if you want it to apply during boot time.

Charging the battery on A43:

(as root)
echo 1 > /sys/devices/platform/battery/usb_online
echo 3 > /sys/devices/platform/battery/charge_level

Enabling WiFi:

The wl1271 driver from linux-wireless requires firmware files to be placed in /lib/firmware. These files can be downloaded from here. The MAC address on the wl1271 is not stored on the actual wireless chip and instead resides in a configuration file on the system data directory in a file called system/persist.archos.WIFI_mac. This file is in the form:

Code:
Wifi MAC XX:XX:XX:XX:XX:XX

To extract just the MAC address, use

Code:
cut -f3 -d" " /media/data/system/persist.archos.WIFI_mac

Then, to set the MAC of the actual device you can do

Code:
ifconfig wlan0 hw ether `cut -f3 -d" " /media/data/system/persist.archos.WIFI_mac
ifconfig wlan0 up

I'm doing this in /etc/rc.local which is run on boot. This means the WiFi card is prepared when the system boots. However, NetworkManager still sees the card as "not ready" and you must Disable Networking and then Enable Networking before it will start showing AP's. After doing this, the WiFi works properly.

Screen Rotation:

The A43's display is 480x854 ("tall screen" orientation). For Ubuntu it is likely more useful to have a widescreen 854x480 orientation. Fortunately, this is not hard. It involves adding two parameters to your kernel's command line (either via kboot or by adding them to .config and recompiling your kernel). THIS DOES NOT ROTATE THE TOUCHSCREEN INPUT, so make sure you have an alternate input device when using rotation (BT keyboard/mouse, USB keyboard/mouse).

Code:
omapfb.vrfb=y omapfb.rotate=1

Enabling Audio:

This is pretty easy. Audio is installed and ready to go, the only issue is that the default settings in the mixer for this chip happen to disable the output entirely. To fix this, open ALSA Mixer (alsamixer) and turn on either speakers or headphones, then turn on Left Mixer and Right Mixer (hit 'M' to unmute/mute a channel). Finally, turn up the 'PCM' volume and start playing music. I recommend getting rid of Pulse Audio, but I'm still trying to figure out the best way to do so as it uses a lot of resources and provides little benefit.

PowerVR SGX 530 GPU:

The OMAP 3630 CPU has an on-board PowerVR SGX 530 graphics processor. TI provides an SDK that contains the userspace driver libraries as well as the open-source kernel drivers. There are three modules that must be built (pvrsrvkm.ko, omaplfb.ko, bufferclass_ti.ko) and loaded into the system. Then the userspace stuff must be installed. There is information here that should help. So far I've got the drivers to compile, but they aren't properly loading yet. More work to be done on getting the modules to work.
 
Last edited:
  • Like
Reactions: PoorCollegeGuy

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
RC.LOCAL START-UP SCRIPT

This script should enable everything at boot time and should make Ubuntu easier to use on gen8 tablets. It starts WiFi and Bluetooth as well as enables USB charging.

Code:
#!/bin/sh -e
#
# rc.local
#
#MAC_ADDRESS='00:22:33:44:55:66'
MAC_ADDRESS=`cut -f3 -d" " /media/data/system/persist.archos.WIFI_mac`
ifconfig wlan0 hw ether $MAC_ADDRESS
ifconfig wlan0 up

modprobe btwilink
sleep 10
hciattach /dev/ttyS0 texas 3000000
/etc/init.d/network-manager restart
echo 1 > /sys/devices/platform/battery/usb_online
echo 3 > /sys/devices/platform/battery/charge_level
exit 0


You must have /media/data mounted in your /etc/fstab file, the entry should look like this:

Code:
/dev/mmcblk1p4 /media/data ext3 defaults 0 0

If this entry isn't in /etc/fstab, the /media/data partition will not be available at the time rc.local is run, and it will fail trying to read the MAC address. Alternatively, you can uncomment the hard-coded MAC address and use that but it's not as clean.
 

k1nk33

Senior Member
Oct 4, 2010
72
6
First off, Thanks for the effort you've put in, I just cant wait to get this up and running on my 101. Hopefully I'll have some time this weekend to sort it out but I've questions, How well does it perform? Is unity actually working? & have you tried any other distros? The reason i ask is because i was gonna buy a linux tab running plasma active but if i could eventually run it reasonably well on my 101 i'd hold out and save a couple.
Cheers again and nice work.
 
Last edited:

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
It runs fairly well. Unity works (2D only at the moment, not 3D), but whether that's a good thing or not I'll leave up to you (personally I don't like the Unity interface at all, and I find it slow when in 2D mode). I have GNOME 3.0 Fallback installed which runs pretty smooth and fast as it is fairly lightweight. You can use any non-3D-accelerated interface at the moment (Xfce, fluxbox, LXDE, MATE/GNOME2, etc). I've heard of people running plasma active on other non-accelerated systems (including the HP TouchPad, which is where I got my starting image). I haven't bothered as I prefer a traditional desktop-style interface.

That said, if you're willing to test I'd love feedback on how this performs on A101. I don't have an A101 and I am not sure of the status of A101 support. I'm taking Nicktime's word for it that the kernel supports A101. The actual Ubuntu image should be pretty independent of the device but the kernel needs to specifically support each individual board.

To start I'd just download the TouchPadBuntu rootfs I posted (which despite its name doesn't have anything TouchPad related in it and should at very least boot to login screen on the Archos 2.6.37 kernel without modifications). I'll hopefully get a package of modifications up soon including drivers for WiFi, Bluetooth, and a script to get everything running properly at boot.

As for 3D acceleration, I think it should be possible. There are apparently user-space drivers for OMAP3 that will work under Ubuntu. The bigger issue is getting a version of Compiz/Unity3D/Gnome Shell/whatever accelerated desktop you prefer that is compile for OpenGL ES.
 
  • Like
Reactions: k1nk33

k1nk33

Senior Member
Oct 4, 2010
72
6
Hey dude, could you give me some instructions as to how you installed the roofs.tgz to the memory card? I've got the new boot loader installed and I'm mad to get this going this weekend. Cheers in advance.
P.s. if there is a link to a tut for it that'd be excellent because I don't mind searching for myself just couldn't find any info on it. Thanks.
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
EDIT:

First post updated, see it for full installation details and feel free to post any questions or problems you have during or after installation. I really want to know how well this plays on A101 devices, as I don't have one to test with. Also, anyone with kernel experience that wants to take on adding additional devices, go for it! It would be great to get A70 support at least, as that is a popular device that has seen Debian/Angstrom activity in the past.
 
Last edited:
  • Like
Reactions: k1nk33

k1nk33

Senior Member
Oct 4, 2010
72
6
I tar'd the files to the sdcard, created a folder inside OS called ubuntu and placed the zimage & intramfs inside but it wont boot? I probably missed something so feel free to tear me one .
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Wasn't even thinking...Duh...the kernels provided assume the root device is /dev/mmcblk2p3 (my Ubuntu partition on internal SD card). You probably want /dev/mmcblk0p1 (first partition on external SD card). I'll build a new kernel and post it soon, or you can take a shot at compiling your own kernel (my GitHub sources need work, for now I'd go with Nicktime's sources at Gitorious as I realized I broke some things).

Kboot should have a cmdline option where you can specify a kernel command line (and thus a root device) but I couldn't get it to work. To clarify, you ARE seeing the kernel boot messages right? If you aren't then kboot probably isn't set up correctly. Try booting another kernel (such as OpenAOS boot menu) from kboot and see if that works.

EDIT: here
 
Last edited:

FrEcP

Senior Member
Jul 29, 2006
369
72
As for 3D acceleration, I think it should be possible. There are apparently user-space drivers for OMAP3 that will work under Ubuntu. The bigger issue is getting a version of Compiz/Unity3D/Gnome Shell/whatever accelerated desktop you prefer that is compile for OpenGL ES.

I know they
http://www.linaro.org/
are working on the Open GL ES port of Unity 3D.

Maybe u can find some sources there ;)

And KDE should also have a builf of KDE Plasma wiht OpenGL ES.

Maybe you could add it? would be awesome.
 

shrewdlove

Member
Jan 25, 2011
39
1
Archos 70

Does/Will this work on the Archos 70? I'm trying to get it working but all I'm getting is static on my screen when Kboot tries to boot Ubuntu. This could be my fault and I could have just messed up the installation but I don't think so.

Thoughts?
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Does/Will this work on the Archos 70? I'm trying to get it working but all I'm getting is static on my screen when Kboot tries to boot Ubuntu. This could be my fault and I could have just messed up the installation but I don't think so.

Thoughts?

If you read the first post, you will see that this currently only works with A43 and A101. This is due to the kernel I'm using, which was ported by an OpenAOS user who hasn't been active in 6 months. Chances of him resuming his project are slim, so I've forked his kernel progress but don't have an A70 to work with. I could attempt to add A70 support to the kernel but I would be blind to the progress and would need testers. There aren't a ton of changes necessary, mainly just need to add the right LCD driver to make the screen work and then update the board file with the changes that have been made to the A43/A101 boards.

Unfortunately, I don't have much time as of late, I've got a senior design project and school work to deal with, plus I've been working on getting CM9 ICS to compile for gen8, and I've also been working on the HP TouchPad Ubuntu port. Adding A70 support to the kernel is low priority for me, but if any A70 owners want to take a stab at the kernel go right ahead, I'll gladly accept changes to the kernel. As far as Gen8 Ubuntu is concerned, my current focus is getting the SGX GPU up and running with TI's Graphics SDK. If successful, this GPU should be able to run hardware-accelerated Unity 3D and Compiz for a fast, fancy desktop experience.
 

k1nk33

Senior Member
Oct 4, 2010
72
6
Does/Will this work on the Archos 70? I'm trying to get it working but all I'm getting is static on my screen when Kboot tries to boot Ubuntu. This could be my fault and I could have just messed up the installation but I don't think so.

Thoughts?

I've the exact same problem with my 101, at first I thought it was an issue with kboot but its able to boot uruk and bull. Every time I choose to run ubuntu it stalls with a static on the screen and I have to force a re-boot. I'm using a 2GB sd with only one partition if thats any help and the zimage in question is the one for boot from sd.
Any input?
 

k1nk33

Senior Member
Oct 4, 2010
72
6
Oh! Just looked at my kernel configuration again and I forgot to enable A101 support in the configuration file. I'll build a new kernel later today with A101 support enabled! Sorry about that. Should fix A101 but A70 still needs some real work before it will be supported.

Dude, don't apologize. I, and this community, appreciate what your doing. I'd love to have the knowledge to compile my own kernel and have a fully functional distro on this device, but I don't yet have that ability. You do, so any time you give up your time and effort to provide us with something new and cool is fricking brilliant. Keep working and let us know how you get on, but don't cause yourself too much hassle.
Thanks.
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
I've updated my previous post with an image with A101 support included. I have no way to test it. If any A101 users could take a short video or picture of the device booting Ubuntu I would like to see how it works on that device. I've also looked a bit into A70 support and it looks like the necessary modifications would be relatively straightforward, seeing as all the gen8's have essentially the same core hardware (OMAP3, Wolfson Audio, WL1271 WiFi/BT, MicroSD, POWER/VOL+/-, Power LED, etc). The primary difference (and probably most significant code change required) is the LCD panel, but seeing how the A43 got the short end of the stick on this one, the A70 should be easier to port (A43 has a DSI-interfaced serial LCD while the other gen8's have a DPI parallel LCD, DSI support is flaky at best in this kernel release).
 

k1nk33

Senior Member
Oct 4, 2010
72
6
Managed to get it to boot to ubuntu login screen but my usb keyboard doesnt get picked up, I dont know if the touch screen should register at this point but for me it doesnt. I've no bt keyboard but I can't see the device when I scan for bt from my phone either. If you want, I can take a vid of it booting to this point and send it to you. Just in case I get it to work, what are the login details (password) ?
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
The login is ubuntu/ubuntu (user/pass). I haven't tested the USB yet, and I'm not sure how the A101's host port is set up (the A43 supports USB OTG host but has no dedicated host port). It is a kernel issue for sure. As for the touchscreen, the A101 I think uses a USB touchscreen, so again with the USB issue. You can try forcing automatic login by modifying one of the files on the rootfs (would have to look up which one, can't remember, but should be possible). The fact that it boots is great and the fact that the panel works is also great. I'll look into USB host some more when I get a chance.
 
  • Like
Reactions: k1nk33

k1nk33

Senior Member
Oct 4, 2010
72
6
Cheers for getting back to me. Is there anyway we can pull something from either the bodhi image or android itself? or would it have to be changed at the kernel?
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Pretty sure this is kernel level, the USB driver is being compiled differently than on the stock kernel (musb_hdrc should be a module, but this kernel it is built in, preventing you from loading in different modes). I booted up my A43 with a USB mouse attached, the kernel detected the mouse but then disconnected it before it could be used.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Last summer I got Ubuntu 11.04 working on my A43 but didn't post anything about it. With the progress made on kexec and the new kboot bootloader, it is now possible to have multiple kernels for multiple OS'es. This means it just got a whole lot easier to boot Ubuntu without losing the ability to run OpenAOS or UrukDroid Android OS'es.

    As far as I'm aware, Ubuntu doesn't work on the 2.6.29-omap1 kernel that Archos uses and is the base for most other development on gen8. However, for A43 and A101 users, OpenAOS member Nicktime made some headway in porting the 2.6.37+ kernel to gen8, but appears to have abandoned the project. I've cloned his repository and have been working to add features that he did not finish implementing. However, his kernel did have the ability to boot an Ubuntu rootfs and it works very well for desktop Linux distributions (this also works on Debian and I would assume other ARM distros as well).

    As I have been unable to build an Ubuntu 11.10 rootfs using the rootstock method that Ubuntu describes here, I've started working with the HP TouchPadBuntu rootfs from this thread. This rootfs boots well on my TouchPad and I've removed the TP-specific items from it and added the gen8 items as necessary. The display is working and the touchscreen works as well (calibrated correctly as I copied my calibration from my 11.04 install). It boots into Unity 2D which is the default. I'm having issues getting the wl1271 wireless module up, I have had it running once but NetworkManager said device was not ready despite being able to iwlist scan and see a list of AP's and then connect to them manually.

    RELEASE 1

    You will need the rootfs and the modifications.

    To install, mount your destination partition (should be at least 4GB and ext3 formatted) to a location, then run the following:

    Code:
    cd /media/UbuntuPartition (change this to wherever your Ubuntu partition is mounted)
    tar xzf /path/to/TouchPadBuntuRootfs.tgz ./
    tar xzf /path/to/Gen8Modifications.tar.gz ./

    If you do not have a microSD card in the slot, you need to edit the file etc/fstab and change anything mmcblk1 to mmcblk0, this is because the SD card will identify as mmcblk0 if it exists, but if it does not exist then the internal storage gets identified as mmcblk0 instead. This is a kernel issue I have yet to find a solution to.

    Kernels for Release 1
    These boot from partition 3 of internal memory (/dev/mmcblk2p3)
    Normal and Rotated 90 Degrees

    This boots from partition 1 of external sdcard (/dev/mmcblk0p1)
    Normal

    These files do not need an initramfs, but to flash to device or to use with kboot you need one anyways. Simply create an empty (0 byte) file named 'initramfs.cpio.gz' and use it for this purpose.

    INFO ON KERNEL MMC/SD INITIALIZATION

    mmc0 (mmcblk0pX) - Micro SD card
    mmc1 (mmcblk1pX, mmcblk2pX) - System and Data blocks of internal memory
    mmc2 - wl1271 SDIO interface

    I installed the rootfs to an 8GB microSD and boot it using root=/dev/mmcblk0p1 on the kernel command line.


    USEFUL LINKS
    http://dev.openaos.org/wiki/Gen8Linux2.6.37
    https://github.com/CalcProgrammer1/archos-gen8-kernel-2.6.37
    http://xdaforums.com/showthread.php?t=1304475
    http://www.omappedia.org/wiki/OMAP_WiLink_Connectivity_Home
    http://www.omappedia.org/wiki/MAC802.11_based_Wilink
    2
    Considering i'm going to use my trusty A43 as a full media/webserver, i'll give this a try.
    although there is one issue, the rootfs link in the first post appears to result in a 404.

    I am currently working on a new rootfs, but with a more light weight desktop manager like enlightenment or lxde (lubuntu). I have also SGX for X working. Gnome or unity is much to heavy for this device with only 256mb. However still some work todo before a release.
    BTW I am not using the kernel from CalcProgrammer, but my own build from nicktimes kernel sources release. http://dev.openaos.org/wiki/Gen8Linux2.6.37#HowtoinstallMeegoUbuntuBodhiimage
    When I am done there will also be a guide on howto build the image yourself with rootstock on the openaos wiki.

    divx118
    2
    RC.LOCAL START-UP SCRIPT

    This script should enable everything at boot time and should make Ubuntu easier to use on gen8 tablets. It starts WiFi and Bluetooth as well as enables USB charging.

    Code:
    #!/bin/sh -e
    #
    # rc.local
    #
    #MAC_ADDRESS='00:22:33:44:55:66'
    MAC_ADDRESS=`cut -f3 -d" " /media/data/system/persist.archos.WIFI_mac`
    ifconfig wlan0 hw ether $MAC_ADDRESS
    ifconfig wlan0 up
    
    modprobe btwilink
    sleep 10
    hciattach /dev/ttyS0 texas 3000000
    /etc/init.d/network-manager restart
    echo 1 > /sys/devices/platform/battery/usb_online
    echo 3 > /sys/devices/platform/battery/charge_level
    exit 0


    You must have /media/data mounted in your /etc/fstab file, the entry should look like this:

    Code:
    /dev/mmcblk1p4 /media/data ext3 defaults 0 0

    If this entry isn't in /etc/fstab, the /media/data partition will not be available at the time rc.local is run, and it will fail trying to read the MAC address. Alternatively, you can uncomment the hard-coded MAC address and use that but it's not as clean.
    2
    I'm actually struggling with getting a Kernel source + .config that boot up on my a101.
    I've reinstall a new box with Ubuntu 12.04, I've compiled the toolchain, but I've made so much test on all the kernel sources and .config that I have ... I'm a little lost.
    Seems that I've found a .config that is working with Nicktime's git repo, I'll try to make the touchscreen working by adding the device ID in the generic touchscreen driver. I'll tell if that made a difference or not.

    ---------- Post added at 08:30 PM ---------- Previous post was at 08:04 PM ----------

    GOT IT!

    Well almost.
    The touchscreen is reacting, but as the display is upside-down, the touchscreen is inverted (ie I have to touch the bottom-right side of the screen to click on the upper-left).

    What I did (In nicktime's archos-linux-2-6-37-gen8) :
    drivers/hid/hid-ids.h
    replace:
    Code:
    #define USB_VENDOR_ID_UNITEC    0x227d
    #define USB_DEVICE_ID_UNITEC_USB_TOUCH_0709     0x0709
    #define USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19     0x0a19

    by:
    Code:
    #define USB_VENDOR_ID_UNITEC    0x227d
    #define USB_DEVICE_ID_UNITEC_USB_TOUCH_0709     0x0709
    #define USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19     0x0a19
    
    #define USB_DEVICE_ID_UNITEC_10_TS_V0   0x0a19
    #define USB_DEVICE_ID_UNITEC_10_TS_V1   0x0a1a

    In drivers/hid/hid-multitouch.c:
    Replace
    Code:
     /* Unitec panels */
            { .driver_data = MT_CLS_DEFAULT,
                    HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
                            USB_DEVICE_ID_UNITEC_USB_TOUCH_0709) },
            { .driver_data = MT_CLS_DEFAULT,
                    HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
                            USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19) },
            { }

    by

    Code:
     /* Unitec panels */
            { .driver_data = MT_CLS_DEFAULT,
                    HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
                            USB_DEVICE_ID_UNITEC_USB_TOUCH_0709) },
            { .driver_data = MT_CLS_DEFAULT,
                    HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
                            USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19) },
            { .driver_data = MT_CLS_DEFAULT,
                    HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
                            USB_DEVICE_ID_UNITEC_10_TS_V0) },
            { .driver_data = MT_CLS_DEFAULT,
                    HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
                            USB_DEVICE_ID_UNITEC_10_TS_V1) },
    
            { }

    Those modifications just tell the hid-multitouch driver to handle the 0x0A1A device.
    Now, I've got to find where in the .config (or source file) is the screen invertion.
    2
    I've also been looking into porting an even newer kernel as there is a LOT to gain from it if done right. The 3.x kernels have integrated btwilink/wl1271 drivers, better OMAP DSS drivers, and more. Archos hacked DSI video mode into the old OMAPDSS driver for the A43. This has been added officially but it is different than Archos' hack.