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

Search This thread

wilbr

Member
Jan 5, 2011
44
5
Thanks for the answers! I eneded up getting an A43 off ebay for a good price. I tried to download your rootfs file, but got a 404 error from dropbox.

Also, on the openaos site I saw a post where you said that you had a good image of Debian for the A43 on the debian-archos site, but that site is down. Is there anyway that you can post the info or the links here?

Thanks again, and I really am looking forward to checking out your work!
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
http://code.google.com/p/hp-touchpad-ubuntu/wiki/Installation

Look at the "Mirrors for last file" category, any of those should work (it's the TouchPad Ubuntu rootfs that I based this install off of). Also, it is possible to update that rootfs to 12.04 after getting it up (just updated it on my TouchPad, if you have networking up on A43 it should work as well, just run update manager, enable all the software sources, then sudo update-manager --devel-release).
 

k1nk33

Senior Member
Oct 4, 2010
72
6
@Calc
Hey dude, any chance that you could enable the touch screen for the 101 ? I understand it isn't as simple as just a few clicks but I've just read a review for the new Ubuntu release and its very positive ( seemingly the built in keyboard is the **** too ) and I'd love to have this going on the tablet.
Thanks for all the work so far and here's hoping you can help us out :)
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
The problem is that I have no clue how to enable the touchscreen for the 101 as I do not have a 101. I know it's USB and I think that is our bigger problem, that USB overall is not working properly. On my A43 it detects USB devices at boot and immediately shuts them off. If you could post a dmesg log of A101 booting with and without devices plugged into the USB host port it might help. To post a dmesg, just pull the "dmesg" file from /var/log/ after you have booted Ubuntu. Even if Ubuntu is unusable, you can mount the Ubuntu filesystem after rebooting and pull the log, then put it up on Pastebin. This might help me figure out the USB system on A101 and compare against my A43.

BTW the keyboard on 12.04 is awesome looking, works great on my TouchPad. Can't wait to get it up on A43 as well. The GNOME classic fallback is greatly improved as well.
 

grim-a101

Senior Member
Mar 19, 2012
55
7
Just to be sure. Are we talking about the micro USB port, or the full size USB port?
In the first case (and I think this is what we are talking about), I can't provide anything as I don't have an adaptator cable :(
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Just to be sure. Are we talking about the micro USB port, or the full size USB port?
In the first case (and I think this is what we are talking about), I can't provide anything as I don't have an adaptator cable :(

The full size USB port. The micro is common across all gen8's I think, and I have already confirmed it isn't working on A43. I would like a dmesg for the A101 without anything USB connected as well as one with something plugged into the full size (host) port so I can see if the interfaces are being detected.

I'm going to look into the power management device, Archos isn't implementing the battery monitor properly and thus it is always showing the battery very low. I think we can fix this by modifying how the battery information is presented to the OS. The battery monitor on my TouchPad does work properly, and I'm going to attempt to reformat the Archos battery output to match that of the TouchPad (also need to check my laptop to see if it matches).
 
Last edited:

grim-a101

Senior Member
Mar 19, 2012
55
7
Thanks for the clarification.
So I've already got a dmesg without anything plugged into the USB port, and here it is:
http://pastebin.com/XSg3Cuiv

I'll pastebin tomorow another one with an USB Drive plugged-in
 
Last edited:

grim-a101

Senior Member
Mar 19, 2012
55
7
Here it is, the dmesg with an USB drive plugged in:
http://pastebin.com/CTkV11mp

Hope it helps

I don't have seen many differences between those 2, I even wonder if it "see" the USB flash drive (I know for sure that my USB Host is OK, I can use a Keyboard/Mouse combo in Froyo)

EDIT : I've made another one, with another USB flash drive... I don't see any differences :/
http://pastebin.com/CVzwLAkY

EDIT Again: For what I've seen, it seems to me that there is no drivers for this particular device. Looking at drivers/hid/hid-ids.c, all we can find is:
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
So, the 0x0a1a is, if I understand well, not known. May be a good start point (I'll look into the archos kernel to see if we can find a 0x0a1a in there)

EDIT (Last one I hope): In the archos-gpl-gen8, there is what we are missing:
Code:
#define USB_VENDOR_ID_UNITEC            0x227d
#define USB_DEVICE_ID_UNITEC_PROTO_TS   0x0103

#define USB_DEVICE_ID_UNITEC_10_TS_V0   0x0a19
#define USB_DEVICE_ID_UNITEC_10_TS_V1   0x0a1a

#define USB_DEVICE_ID_UNITEC_7_TS_V0    0x0709
#define USB_DEVICE_ID_UNITEC_7_TS_V1    0x070a

I think this is a good starting point to resolve this issue, whereas I'm not sure what to do with that :s
 
Last edited:
  • Like
Reactions: CalcProgrammer1

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Awesome info! I'm still not sure how the USB system works entirely, will be something to look into definitely.

For comparison, here's the dmesg from my A43 with a USB hub + keyboard and mouse attached at boot. This is also running 12.04

http://pastebin.com/Qzpuh9nh

Edit: Again, but this time with just a USB optical mouse plugged in (one of the old Dell ones)

http://pastebin.com/9iEavK1C

Looks like it doesn't think it can supply enough power to the device and just shuts off. I know the hardware is capable, I've used the hub, mouse, and keyboard on the OpenAOS kernel just fine plenty of times. It looks like the A43 is only registering a 50mA bus power limit while most devices request 100mA even if they aren't actually using it. I think the hardware is capable of at least 100mA.

Edit Again!

Looks like something that is set in archos-usb-musb.c, the value is 50 in the file but the comment says 100. Possibly a scalar has changed in the rest of the kernel code? I'm changed it to 100 and will see what happens, hopefully mouse will work.
 
Last edited:

grim-a101

Senior Member
Mar 19, 2012
55
7
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.
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Awesome! I'm trying to fix the USB issue on the A43 now too, but for some reason I can't even get it to boot properly (using arm-linux-gnueabi-gcc compiler included in Ubuntu, perhaps the update to 12.04 screwed it up?). I don't have much time today to keep working, but as soon as I can get my compiler fixed up and booting, I'll merge your changes.

You may try the screen rotation boot arguments as I described in the second post, though instead of rotating 90 degrees rotate 180. The A43's panel is oriented correctly with the touchscreen, but it's vertical and I want landscape, though doing that screws up the touchscreen as well for me.
 
  • Like
Reactions: grim-a101

grim-a101

Senior Member
Mar 19, 2012
55
7
Thanks!
omapfb.vrfb=y omapfb.rotate=2 on the CMDLINE did the trick!

The screen is now in the "good" direction, at least the same as the touchscreen.

I'll check later for the USB Host, I've kickly looked at the board-archos-a101it.c file, it seems to be defined a 500mA if read it correctly.

At least, now Ubuntu is usable, so I'll try to plug/unplug some stuff inside the USB Host and look at the syslog to see if there is some info in there
 

grim-a101

Senior Member
Mar 19, 2012
55
7
Well, I don't know if this is due to the fact that my rootfs is on a (bad?) SDCard, but the whole system is extremly slow, and can't really do anything once I'm logged id.
Plus, I can't get an onscreen keyboard (the a11y icon is not up there once logged in) and it's so laggy that I can't use the Unity main menu.

I'll maybe make a try on the Internal Memory, if I found how to make an extf3 partition without breaking everything (and not bricking it, my wife would kill me :D)

EDIT : I think I've figure this out (partitioning). Simply plug the device in Recovery / MMC, and resize the FAT32 in order to make place for the new ext3 one. Well, I first need to make some room, as it is only a 8Go A101IT!
 
Last edited:

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
When I used an SD card it was really slow too, not sure why. You can put "mmcX" as the LED trigger in the arch/arm/mach-omap2/archos-leds.c file under the power LED trigger. This will make the power LED into a disk activity LED and you will be able to tell if it's working or just plain locked up.

As long as you make your partition on the user drive you should be fine. I have 3 partitions on mine, the first should be the storage data drive though. Note that this kernel identifies blocks differently than the stock, MMC0 is the SD card in this kernel and if it is removed then MMC0 becomes the internal memory (really annoying) so when you set up your kernel cmdline for the new drive you must take into account whether or not you're going to have the SD card inserted.
 
  • Like
Reactions: grim-a101

grim-a101

Senior Member
Mar 19, 2012
55
7
As long as you make your partition on the user drive you should be fine.
That's what I've figured out. I'm actually resizing the FAT32 partition, and make a new ext3 after that.
I'll go for the start without SD Card, so I guess that my new root will be /dev/mmcblk0p2 (p1 is the FAT32 one I suppose).

---------- Post added at 12:07 AM ---------- Previous post was at 12:00 AM ----------

You can put "mmcX" as the LED trigger in the arch/arm/mach-omap2/archos-leds.c file under the power LED trigger. This will make the power LED into a disk activity LED and you will be able to tell if it's working or just plain locked up.
Not sure if this is the right things to do, but I'll go to editing
Code:
.default_trigger        = "default-on",
into
Code:
.default_trigger        = "mmc0",
Am I right?
 

grim-a101

Senior Member
Mar 19, 2012
55
7
Found myself that I was right :p
My new issue is that I must have miscopied my rootfs from my SDCard to my Internal Memory. The rootfs is well mounted, but it then complains about missing init.
I'm getting a fresh root from your 2 files from the first post, and see if it boots up
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Make sure you set your root= cmdline properly, look at the init messages and you'll see when it mounts the card, if you leave your SD card in it should be /dev/mmcblk2p2 (mmcblk0 is SD, mmcblk1 is system, mmcblk2 is user). If you remove the SD then it is /dev/mmcblk1p2 (where mmcblk0 is system and mmcblk1 is user). The third mmc that it detects is actually the WLAN card which uses the SDIO interface.

Also, what compiler are you using? For some reason my builds aren't working and I don't know whether my compiler changed or my config is broken.
 
Last edited:

grim-a101

Senior Member
Mar 19, 2012
55
7
Don't know why, but with the SDCard in, if I use /dev/mmcblk2p2 as root, it complains about not being able to find it.
It now boots without SDCard in and with /dev/mmcblk1p2 as root. I'll try to understand later why it doesn't work with /dev/mmcblk2p2 and SDCard in.

Thanks again for all your explainations ;)

Let's see now if it runs smoother or not now that the rootfs is in internal memory

---------- Post added at 01:43 AM ---------- Previous post was at 01:39 AM ----------

Also, what compiler are you using? For some reason my builds aren't working and I don't know whether my compiler changed or my config is broken.
I've build chrulri's toolchain from http://xdaforums.com/showthread.php?t=891056 on a fresh Ubuntu 12.04 (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5))
I use this command line to build my kernel:

INSTALL_MOD_PATH=~/archos/Ubuntu/Kernel/modules_install/ make ARCH=arm CROSS_COMPILE=~/archos/KernelBuild/archos/archos-gpl-gen8/buildroot/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-

I can't build your git repo, so I use Nicktime's one

By the way, I don't know what's going wrong, but my A101 is stuck at the top left blicking cursor for a while now... something must be wrong with my rootfs :(
 
Last edited:
  • Like
Reactions: CalcProgrammer1

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Thanks for the info on the toolchain. It definitely is a compiler issue as I just built the exact same .config, files, everything on 11.04 and 12.04, works fine with 11.04's compiler. I need to fix my root= again since I reset my configuration. In my repo there's a file called linux.config, that is the .config file to configure the kernel.

Do

Code:
cp linux.config .config

before compiling, then I'm building with

Code:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j9

EDIT:

Fixed the A43 USB host errors, the USB constant of 50 should have been 100 which made it work properly. Weird thing is that the mouse works for a while and shuts off, seems to be the Ubuntu system shutting it off because the kernel set it up correctly. Might be my USB charging script, need to get switch working so I can dynamically select charging modes for A43's USB charging.
 
Last edited:

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.