Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,729,054 Members 40,628 Now Online
XDA Developers Android and Mobile Development Forum

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

Tip us?
 
CalcProgrammer1
Old
(Last edited by CalcProgrammer1; 13th March 2012 at 04:23 AM.)
#1  
Senior Member - OP
Thanks Meter 544
Posts: 577
Join Date: Oct 2007
Location: Illinois
Default [DEV] Ubuntu 11.10 for A43/A101 [RELEASE 1]

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/a...-kernel-2.6.37
http://forum.xda-developers.com/show....php?t=1304475
http://www.omappedia.org/wiki/OMAP_W...nectivity_Home
http://www.omappedia.org/wiki/MAC802.11_based_Wilink
Samsung Galaxy Note 3 SM-900T 32GB
Samsung Galaxy Note SGH-i717 16GB
HP TouchPad 32GB
Archos 43 Internet Tablet - 16GB + 32GB mSD
Dell Axim X50v - 128MB + 16GB CF
The Following 4 Users Say Thank You to CalcProgrammer1 For This Useful Post: [ Click to Expand ]
 
CalcProgrammer1
Old
(Last edited by CalcProgrammer1; 10th March 2012 at 07:10 AM.)
#2  
Senior Member - OP
Thanks Meter 544
Posts: 577
Join Date: Oct 2007
Location: Illinois
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.
Samsung Galaxy Note 3 SM-900T 32GB
Samsung Galaxy Note SGH-i717 16GB
HP TouchPad 32GB
Archos 43 Internet Tablet - 16GB + 32GB mSD
Dell Axim X50v - 128MB + 16GB CF
The Following User Says Thank You to CalcProgrammer1 For This Useful Post: [ Click to Expand ]
 
CalcProgrammer1
Old
#3  
Senior Member - OP
Thanks Meter 544
Posts: 577
Join Date: Oct 2007
Location: Illinois
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.
Samsung Galaxy Note 3 SM-900T 32GB
Samsung Galaxy Note SGH-i717 16GB
HP TouchPad 32GB
Archos 43 Internet Tablet - 16GB + 32GB mSD
Dell Axim X50v - 128MB + 16GB CF
The Following 2 Users Say Thank You to CalcProgrammer1 For This Useful Post: [ Click to Expand ]
 
k1nk33
Old
(Last edited by k1nk33; 7th March 2012 at 01:39 AM.)
#4  
Member
Thanks Meter 6
Posts: 72
Join Date: Oct 2010
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.
 
CalcProgrammer1
Old
#5  
Senior Member - OP
Thanks Meter 544
Posts: 577
Join Date: Oct 2007
Location: Illinois
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.
Samsung Galaxy Note 3 SM-900T 32GB
Samsung Galaxy Note SGH-i717 16GB
HP TouchPad 32GB
Archos 43 Internet Tablet - 16GB + 32GB mSD
Dell Axim X50v - 128MB + 16GB CF
The Following User Says Thank You to CalcProgrammer1 For This Useful Post: [ Click to Expand ]
 
k1nk33
Old
#6  
Member
Thanks Meter 6
Posts: 72
Join Date: Oct 2010
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
Old
(Last edited by CalcProgrammer1; 11th March 2012 at 05:31 AM.)
#7  
Senior Member - OP
Thanks Meter 544
Posts: 577
Join Date: Oct 2007
Location: Illinois
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.
Samsung Galaxy Note 3 SM-900T 32GB
Samsung Galaxy Note SGH-i717 16GB
HP TouchPad 32GB
Archos 43 Internet Tablet - 16GB + 32GB mSD
Dell Axim X50v - 128MB + 16GB CF
The Following User Says Thank You to CalcProgrammer1 For This Useful Post: [ Click to Expand ]
 
k1nk33
Old
#8  
Member
Thanks Meter 6
Posts: 72
Join Date: Oct 2010
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
Old
(Last edited by CalcProgrammer1; 13th March 2012 at 04:22 AM.)
#9  
Senior Member - OP
Thanks Meter 544
Posts: 577
Join Date: Oct 2007
Location: Illinois
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
Samsung Galaxy Note 3 SM-900T 32GB
Samsung Galaxy Note SGH-i717 16GB
HP TouchPad 32GB
Archos 43 Internet Tablet - 16GB + 32GB mSD
Dell Axim X50v - 128MB + 16GB CF
 
FrEcP
Old
#10  
Senior Member
Thanks Meter 71
Posts: 370
Join Date: Jul 2006

 
DONATE TO ME
Quote:
Originally Posted by CalcProgrammer1 View Post
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.

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes