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

Search This thread

divx118

Senior Member
Dec 20, 2009
343
198
Just for the record, in order to make musb_hdrc as module, you have to set:
CONFIG_USB_MUSB_HDRC=m (obviously ...) and CONFIG_USB_GADGET=m and it compiles.
If you want to add a gadget module, you get
error: implicit declaration of function ‘msleep’
Just "#include <linux/delay.h>" into the .c file that generate the error and it compiles fine

But even in module, the HOST port doesn't work :(

I don't know were to search anymore...

If you have some specific questions, just join irc://irc.freenode.net/openpma or use the webclient http://www.openaos.org/chat there are some archos and other skilled people around. They mostly don't read forum posts.

grim-a101 said:
BTW divx118, the option to change the language of an external keyboard is not there on your rom :)
Never looked at it, I will check thanks :)

divx118
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Thanks for the info about making it a module, I suppose the issue was the USB_GADGET, was not setting that to M when I had the errors.

Agreed with divx118 on joining #openpma, very helpful place for Archos questions.
 

grim-a101

Senior Member
Mar 19, 2012
55
7
I found a 3.1.0 kernel for (only :() the A101:
http://gitorious.org/archos-a101-linux-omap

I get it compiled, and it boots up Ubuntu.
About mmcblk, mmcblk0 is the system drive, mmcblk1 is the "user drive" and mmcblk2 is the SD Card (so even with no SDCard, the dev id doesn't change)

It as a havon driver for the TS, but it didn't work (maybe xorg.conf issue, don't know), so I applied the hid-ids.h and hid-multitouch patch and it works.

Going to play with the musb to see if I get better result from this 3.1.0.

EDIT:
Get musb_hdrc compiled as module, but on modprobing it : FATAL, no such device.
I wonder if 1 day, I will have this Host port working

EDIT: have to modprobe omap2340 before musb_hdrc, but even with that, still no luck
 
Last edited:

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Awesome find, I might try playing with that on A43, should only be a matter of forward-porting the A43 board file and LCD files to get basic support. The downside is the LCD uses DSI instead of DPI, but the new omapdss driver should support DSI natively if I could figure out how it works.

The newer the kernel, the better in my opinion, as long as everything works.

EDIT: That's a very clean board file! Hopefully it will be relatively easy to port, most of the GPIO's are the same between different gen8's but some aren't I think.

EDIT 2: I've started forward-porting the A43 board file to the new format. The big issue here is the LCD panel, hopefully I can get the board file itself working before I take on porting the driver itself

On the A101, does the Power LED flash with this kernel? The board file initializes the LED to "heartbeat" mode which should cause it to blink, indicating that the system is functional. This would be highly useful with the LCD unavailable.
 
Last edited:

grim-a101

Senior Member
Mar 19, 2012
55
7
As I reply to you on irc, no, the led doesn't blink, it just stay "on".

I've tried lots of things to get this USB host port working, but still no luck.
I've tried forcing the plat->mode to 1 (and the musb->board_mode to 1), forcing the extvbus to 1 also, adding lot's of debug to see where the initialisation goes (and doesn't) and I still have no idea why it still doesn't work.
I have no vbus, no power is transmited to the USB port whatever I change.
I tried to plug a powered usb hub, just to be sure that it is not only a vbus issue, but even with the external power, no syslog reaction when I plug anything to it.

I have to say, i'm a bit lost and don't know where to search anymore :(
 
  • Like
Reactions: CalcProgrammer1

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
Could you recompile the 3.0 kernel with CONFIG_LED_TRIGGERS enabled? I think it was disabled in the default config. Also CONFIG_LED_TRIGGER_HEARTBEAT (or something like that, might be CONFIG_TRIGGER_HEARTBEAT) enabled. Then see if the power LED blinks. I'd really like to have this running on the A43 and the power LED blinking is probably an important step as I want to make sure it's booting before I try messing with the LCD.
 

grim-a101

Senior Member
Mar 19, 2012
55
7
Already tried, with no changes. I'll try to make it blink, and let you know.
For the LCD, if I have well looked, there is only the 101 LCD (BOE something) that is available within this firmware. I don't know what is the 43 LCD but if I remember well, it is not the same.

EDIT: Ok, I've enabled all the LEDS_TRIGGER
Code:
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y

and now, it's heartbeating.
 
Last edited:
  • Like
Reactions: CalcProgrammer1

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
The A43 LCD is an LG FWVGA 4.3" display, the driver is lg_fwvga_43 or something like that. I figured I'd have to port the driver myself, which is going to be tricky as it's a MIPI DSI video mode display. Support for this display type was hacked in to 2.6.29 by Archos, though with 3.0 it should be supported officially, though the API is quite different and the driver will need modification.
 

Mavasilisk

Senior Member
Mar 12, 2012
580
110
Hope to see it running for 70IT. Rly cant wait for it on my tablet.

EDIT: I can help you with 70IT tests
 
Last edited:

marxx

Senior Member
Oct 29, 2005
53
2
www.m-scene.de
Hi there

I have been playing around with my "new" Archos 43 whole day now and I finaly managed to get the SD kernel booting the TouchBuntu from SD card. This is a very, very slow process and not what I hoped to find :-(

I tried to put the rootfs on the internal storage under /mnt/storage. This did not work to boot. Neither with the "landscape" kernel, nor with the 90 degree kernel. With or without inserted SD card. Always kernel panic, the he can't find his rootfs.

Is there a little howtro around, where and how to put the rootfs on the internal storage?

I'm using firmware 2.4.83 and can boot rooted.

Thanx for any help.

Greetinx

marxx
 

CalcProgrammer1

Senior Member
Oct 8, 2007
650
756
Kansas City
You need to make a separate partition for Ubuntu. Putting the .tar.gz on /mnt/storage doesn't do anything. Boot the stock OS on your A43, plug it into Linux PC, and shrink your A43 storage partition by 4-8GB, then make the freed space into an ext3 partition for Ubuntu. Un-tar the rootfs tar.gz file into this partition. Then it might work (if it doesn't work, it's because the partition number is incorrect, the only solution at the moment is to recompile the kernel and change the partition number in the .config file). I want to say it's /dev/mmcblk2p2? If you have an sdcard inserted then that becomes /dev/mmcblk0 and internal system mmcblk1 and internal storage mmcblk2. If you do not have the SD card inserted, internal system is mmcblk0 and internal storage mmcblk1.
 

marxx

Senior Member
Oct 29, 2005
53
2
www.m-scene.de
Thanx a lot!

This was the hint I needed. I was a bit blind after a day staring at the small screen :)

What I did is, that I hooked up the Android system over USB to a linux machine. Then I ran fdisk on the linux machine on /dev/sdb (in my case the A43 USB disk, might be different for readers, this deletes all data on the internal storage!). Here I deleted all partitions and set up 3 primary partations. First FAT32 (8GB), second linux swap (250 MB) and third ext3 (rest). With mkfs.ext3 on sdb3 and mkfs.vfat on sdb1 I created the filesystems. After that I mounted sdb3 on the linux machine and extracted the rootfs there.

Brilliant it boots your kernel with kboot from the internal storage. Finally I can play around with this great work of yours. First step setting up the swap :)

Thanx

marxx
 

marxx

Senior Member
Oct 29, 2005
53
2
www.m-scene.de
I had a bit time to play with Ubuntu on my Archos 43 now.

Here is what I did till now.

First I set up my swap partition. My /etc/fstab looks now like this:

Code:
proc /proc proc defaults 0 0
/dev/mmcblk1p4 /media/data ext3 defaults 0 0
/dev/mmcblk1p2 /media/system ext3 defaults 0 0
/dev/mmcblk2p2 swap swap defaults 0 0

Don't really know if it works though (the system is still slow) ...

Second I set up auto login, because I had no keyboard. I created a folder called /etc/lightdm. Booted Ubuntu and shutted Ubuntu down again. After that I had a file called /etc/lightdm/lightdm.conf. I edited it like this:

Code:
[SeatDefaults]
autologin-user=ubuntu
autologin-user-timeout=0
greeter-session=unity-greeter
user-session=ubuntu

Now I had auto login :) Next I wanted to have landscape screen orientation. Therefor I took the landscape kernel from post #1 and set up a file called /etc/X11/xorg.conf.d/99-calibration.conf

Code:
Section "InputClass"
    Identifier "calibration"
    MatchProduct "ADS784x Touchscreen"
    Option "Calibration" "519 3867 648 4333"
    Option "InvertY" "True"
    Option "SwapAxes" "True"
EndSection

With this I have a usable (not perfect) landscape touchscreen.

Last step was the touchscreen keyboard. For that I went to System Settings -> Universal Access -> Typing and turned the "Typing Assistent" on and checked the "Turn on accessability feature". Finally things got usable ...

The touchscreen needs still some fine tuning and I'm a bit disappointed about the overall performance, but it's still work in progress :)

Greetinx

marxx
 

grim-a101

Senior Member
Mar 19, 2012
55
7
For what I've tested on the A101, you'd better not use Unity, but instead install gnome-session-fallback. It's really smoother than Unity.
For the On-Screen Keyboard, there is one already install, Onboard.

Grim

PS : not done any progress on A101 USB host, and not having much time now to keep finding why :/
 

marxx

Senior Member
Oct 29, 2005
53
2
www.m-scene.de
Finally I got gnome-classic running now. I tried to run the device without any external keyboard, but that turned out to be no go. After I hooked up a bluetooth keyboard I could at last connect to wifi. Next step gnome-session-fallback. On that I found this little howto: http://ricochen.wordpress.com/2012/02/10/switch-to-classic-gnome-menu-in-ubuntu-11-10-how-to/. It is really a lot smoother. Still not very fast, but smoother.

Now I'm staring again at the little screen for the upgrade to 12.04. This will take all night as slow as that progress bar is growing ...

The touchscreen in landscape mode is still not very satisfying. Does anybody have a good working /etc/X11/xorg.conf.d/99-calibration.conf on that?

I hope 12.04 will be a bit faster and smoother in the overall handling. Tomorrow I will know more, hopefully :)

Greetinx

marxx

Edit: Of course the upgrade failed. I'm stuck now with with a half 12.04 without wifi, without bluetooth and without a working Onboard keyboard. So back to the start, or selling the Archos at Ebay ...

Selling seems the better option for my nervs.

The only positive thing I can see, is that the landscape touchscreen seems to work perfectly under 12.04. That does not help me much, when Onboard won't work, but it could be the reason not the sell the Archos :)

Is there an existing 12.04 image somewhere for download available?

marxx
 
Last edited:

ross231

Senior Member
Jan 24, 2012
577
94
Is this tablet good? I think I may buy one, and dual boot ubuntu/android 4.0.3.

Sent from my Sony Tablet S using xda app-developers app
 

Ranomez

Senior Member
Jun 1, 2010
1,237
305
HTC One X+
HTC Desire HD
hi, sorry to bump this old thread, but i really need some help, i think im a bit idiot, but i really cant make this to work on my archos 101it, i downloaded the boot from mmcblk0p1 kernel, formated my sdcard to ext3 and copyed all the contents of the 2 files on the sdcard, eyther by terminal, eyther by file manager, eyther by windows file manager and i just cant get it to work, what am i doing wrong, im trying to boot it whit kboot, also i usd root explorer to create a new empty file named initramfs.cpio.gz, can someone give me any advice, or any files that would make it boot, i would try the internal memory method, but i allready have 4 partitions on it......
 

grim-a101

Senior Member
Mar 19, 2012
55
7
Look at the messages on the screen, it's surely a wrong root partition number.
Unfortunatly, as has said CalcProgrammer1
if it doesn't work, it's because the partition number is incorrect, the only solution at the moment is to recompile the kernel and change the partition number in the .config file
You'll need to recompile the kernel from CalcProgrammer1 git. (You may try the .cmdline file in kboot, but if I recall well, it doesn't work. Well, it does work, but archos kernel doesn't really use this parameter)
 

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.