The 2011-03.a is now also available for Beagleboard owners! Here's a summary of what's inside.
How to install the "Super-Jumbo" image?
- Go to the Always Innovating Beagleboard page
- Download the ai-superjumbo-2011-03.a.tbz2 image file on a Linux computer (it's definitely possible to use a Windows or Mac OS computer, but the following instructions are for Linux only), either as a single 2.1GB file file or as three separate 0.7GB parts
- Insert your SD card in your host computer. Note that your SD card must be at least 4GB.
- Check the device name of your SD card (for example with a fdisk -l command on Linux)
- Extract the image on your SD card (replacing /dev/sdb with your SD card device):
sudo -s tar -Oxjpf ai-superjumbo-2011-03.a.tbz2 | cat > /dev/sdb
As the image is 3.9GB once extracted, be aware that it can take a long time. Then three partitions should be created:
- the first (0.8GB) will mainly contain the x-loader, u-boot, and the kernel
- the second (2.6GB) will contain the rootfs of all the four operating systems installed (AIOS, Android Gingerbread, Ubuntu Maverick, ChromiumOS)
- the third (0.5GB) is a swap partition
Installing for Beagleboard xM-revC
If you own a Beagleboard xM revision C instead of A or B, you will need to replace the files on the first partition with specific ones:
wget -O /tmp/part1-xm-revc.zip http://www.alwaysinnovating.com/download/part1-xm-revc.zip unzip -d /tmp /tmp/part1-xm-revc.zip mkdir -p /tmp/1 sudo -s mount /dev/sdb1 /tmp/1 cat /tmp/part1/mlo > /tmp/1/mlo cp /tmp/part1/u-boot.bin /tmp/1/u-boot.bin cp /tmp/part1/uImage2 /tmp/1/uImage2 sync umount /tmp/1 rmdir /tmp/1 rm -rf /tmp/part1
This bash snippet assumes that the micro SD card appears as /dev/sdb* on your Linux PC.
At boot time
The system will boot by default in Android Gingerbread. However, you can select another OS at boot time. In order to do so, you need to:
- power your Beagleboard
- as soon as you you see the white AI logo appearing on the screen, click the Beagleboard user button: it will make visible a "Loading multi-OS selection screen..." text in the upper left corner.
- then you will get the following screen, where you have to press the Beagleboard user button, to get the list of the different boot options.
- enter the option number you want, and press Enter.
When you boot into AIOS, you have the ability to start, run and stop the other operating systems installed on your Beagleboard. In order to do so, first double-click on the Beagleboard user button to popup the multi-OS manager interface:
Through this interface, you can:
- start an OS by clicking on the OS icon or the OS start button (green arrow)
- switch to a running OS by clicking on the running OS icon
- stop an OS by clicking on the OS stop button (red square)
Also, from any of the running OS, you can, at any time:
- double-click on the Beagleboard user button to popup the multi-OS manager interface
- single-click on the Beagleboard user button to switch to the next running OS (switch order is AIOS > Ubuntu > ChromiumOS > Android > AIOS)
Note: to be able to start ChromiumOS from this interface and log into it, you first must have booted into it at least once (see previous section).
For those who want to play and tweak with all this stuff, the interesting files are located in /usr/share/ai-multipleos/* and /usr/share/ai-daemon/button-power.sh
First partition configuration
The first partition of the SD card contains the files needed to boot the Beagleboard, as well as the kernel. It can actually be configured to (i) change things like screen resolution, console output, or video depth and (ii) select the behavior of the default boot.
Creating a custom boot.scr
This will allow you to change the command line passed to the kernel during the boot. To do so:
- download the create-boot-scr.sh script
- edit it to customize the arguments you're interested in, like for example:
- console sets the default output for the console; it's tty1 by default, but you can set it up to another ttyX or to serial to get it through a serial connection
- omapfb.mode sets the screen resolution (1024x768 by default) and the video depth (16 bits by default, the only other possible value on the Beagleboard being 24)
- vram sets the amount of RAM dedicated to the video
- then run the script on an x86 machine to create a boot.scr file
- copy this boot.scr file to your first partition
- sync your card and reboot
Once booted, you can check that your modified arguments have been taken in account with:
Creating a custom ai-initramfs.cmd
This will allow you to customize the default behaviour of the multi-OS boot options. To do so:
- edit an empty file named ai-initramfs.cmd, and add the three following lines:
IMAGE= IMAGE_DEFAULT= DELAY=
- IMAGE sets the image to boot immediately without showing the multi-OS selection boot screen. You can set it to either ai-os, ubuntu, android, chromium, or advanced. This variable is not set by default, therefore the multi-OS selection boot screen is shown.
- IMAGE_DEFAULT sets the image to boot after that the multi-OS selection boot screen has been shown up for DELAY seconds. The default value of this variable is android.
- DELAY is set by default to 20 and is expressed in seconds, and can be set to any value in seconds.
As an example, the default ai-initramfs.cmd corresponding to the factory behaviour would be:
- copy this file to your first partition
- sync and reboot
To understand the full process, you can read the AI initrd scripts.
Android 2.3 Gingerbread
The controls are as follow:
- On an Always Innovating Keyboard:
- Right menu button (between right ctrl and right AI buttons): menu
- AI button left: home
- AI button right: search
- Esc: Back
- Touchpad (or any USB mouse) commands:
- Left click: click
- There are now also soft buttons in the upper right corner, in the status bar. There are always available and clickable.
- To set up your wifi connection:
- Go to the app panel, and launch the Settings app (you need to scroll down the panel to find the icon)
- Select "Wireless & Networking", then check the "Wi-Fi" button is checked
- Select "Wi-Fi settings": you should see the accessible wifi networks around. Select the one you want to connect to, and enter the corresponding wireless parameters. If you don't see any network, just uncheck the "Wi-fi" button and re-check it. You should see your wifi dongle blue LED blinking.
- Location-based apps (such as Navigation or Car Home) require a USB GPS dongle to work.
- Barcode Scanner and Camera apps require a webcam to work.
Ubuntu 10.10 Maverick Meerkat
You don't require any password to login. To get sudo access, just type
in a terminal (no password required).
You need to have a Gmail account and a working wifi connection to login into the OS.
Wifi in Android
By default, Android will handle ethernet connectivity, but not wifi. You can however easily get a wifi connection to work (considering you have either a Ralink dongle or loaded your wifi dongle driver) by modifying the /system/bin/ai-dhcpd.sh script: make it launch dhcpd ra0 instead of dhcpd usb0.
As the youtube video suggests it, you can run up to three OS at the same time on your Beagleboard with this Super-Jumbo image.
Starting and running two operating at the same time (AIOS + one of Ubuntu, ChromiumOS or Android) is working very well. However, due to hardware limitations (especially RAM), you may experience latency when starting a third operating system after that. It definitely works, but be aware that this will require a significant amount of swap: just be patient while this third OS starts :-)
Multiple Android restarts
After a first start and stop of Android from AIOS, there will be left a flush process active for a few minutes (usually found under [flush-0:20] in the process list). It is highly recommended to wait for this process to be finished before relaunching Android from AIOS.
So far, it's not possible to use the GPU of your beagleboard for both AIOS and Android when they are running at the same time. When starting Android from AIOS, we indeed need to unload the 3D kernel modules so that Android can use them full time.
So far, when starting Android from AIOS, it will preempt the hardware, so sound will stop functioning in AIOS.
- AIOS: works very well at all times
- Android: works very well at all times
- ChromiumOS: works when booting in standalone, but disabled when starting from AIOS
- Ubuntu: not working right now
The super-jumbo is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. There is no warranty for the software, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders provide the software "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the software is with you. Should the software prove defective, you assume the cost of all necessary servicing, repair or correction. In no event unless required by applicable law or agreed to in writing will any copyright holder, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the software (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the software to operate with any other programs), even if such holder has been advised of the possibility of such damages. Additionally, you agree to be bound by any warranty or license term of any library distributed within the Super-Jumbo software.