AllWinner A10 Initramfs Support and Linaro 12.07 Image

An initramfs is a minimal root filesystem that is loaded at an early stage of the boot process, before the rootfs partition is mounted. This is optional but is now used by many Linux distributions such as Ubuntu in order to speed up boot time among others things. Up to recently, there was no support for this in the AllWinner A10 nightly builds, and there would be lot of error messages due to ureadahead process with Ubuntu, but I’ve changed that by: Using a boot.scr file (U-Boot Script) for each supported device in order to either follow the default init boot method or do an initramfs boot if uInitrd file is present in the FAT partition. Adding a script (a1x-initramfs.sh) to generate and install uInitrd initramfs in the rootfs. The initramfs can’t be generated at build time since the hardware packs are (mostly) distribution agnostic. If you want an initramfs, […]

VIA Releases Kernel 2.6.32 and U-Boot Source Code for $49 APC Board

VIA Technology unveiled the low cost APC (Android PC) board based on WonderMedia WM8750 processor (ARM11) back in May, and started to ship the Android board this month (I think since that was their plan). The company has just released Kernel 2.6.32.9 and U-Boot source on github. Here’s how to retrieve the code provided git is already installed on your machine:

You can then build U-Boot (provided you’ve already installed an ARM toolchain in your path):

and the Linux kernel:

The availability of the source means we should see Linux distribution like Debian, Fedora or Arch Linux ARM (separate from Arch Linux) running on the board very soon. In theory, it’s also possible to run a Linux distribution with the binary Linux kernel compiled for Android, but it causes some issues and also makes customization more difficult. I think they should also have release the code they modified […]

Nightly Builds for AllWinner A10 U-boot, Linux Kernel and Hardware Packs

Kent of SCUZ Technologies has graciously provided a build machine (Intel Xeon E5645) for Rhombus Tech (and possibly other) open source projects, and I’ve setup nightly build scripts for AllWinner A10 kernel, bootloader (u-boot) and hardware packs for Mele A1000 (HDMI), Mele A1000 (VGA), A10 mini PCs (using MK802 script.bin) as well as a server build for Mele A1000. The nightlies are built using  a10-hwpack-bld.sh script which is available in github, and can be downloaded from http://dl.linux-sunxi.org/nightly/ The resulting files are copied to a dropbox folder, until a better solution is found. For each build, you’ll find the following files : u-boot.bin – U-boot sun4i-spl.bin – U-boot SPL uImage – Kernel image product_YYYY.MM.DD.log (e.g. mele-a1000_2012.07.20.log) – The build logs whether the build succeeds of fails. One per hardware pack. product_hwpack_YYY.MM.DD.log ( e.g. mele-a1000_hwpack_2012.07.20.7z) – The hardware pack with the kernel, u-boot which can be used with a1x-media-create.sh script to create […]

Editing AllWinner A10 Board Configuration Files (script.bin)

AllWinner A10 based devices all have board configuration files in binary format, sometimes refereed to as script.bin, evb.bin, sys_config.{product_nane}.bin store in the FAT partition with the kernel. You may want to decode those binary files to configure your hardware and/or disable/enable peripherals. For the Ubuntu image provided for the Mele A1000 set-top box, the file is called evb.bin and the two other files (mele.bin and sys_config1.mele_mod.bin) are not used. The filename can change since it is configurable in u-boot e.g.: load1=fatload mmc 0 43000000 evb.bin bootcmd=run load1 boot_mmc If you want to decrypt the binary files into text format (fex), you can retrieve bin2fex tool: git clone https://github.com/amery/sunxi-tools Build it: cd sunxi-tools make This will compile both bin2fex (binary to fex text files) and fex2bin (fex files to bin), but the later does not seem to work right now. fex2bin also works now. If you want to decrypt a configuration […]

How to Create Your Own Debian / Ubuntu Image for Mele A1000 (AllWinner A10 Based STB)

Developers working on AllWinner A10 have released an Ubuntu 10.04 LTS SD card image (4GB) for the Mele A1000. I’ll show how you can create your own Debian or Ubuntu image based on this image for any size of SD Card using Debian 6.0 (Squeeze) and the recent Ubuntu 12.04 (Precise Pangolin) as example. The current image is not perfect, for example Ethernet doesn’t work (but you can still get network connectivity with WiFi), the NAND flash can not be accessed, the system does not appear to be very stable when running X and a few more issues. But this will be fixed by the developer community over time. First download the SD card image wget http://hands.com/~lkcl/mele-ubuntu-lucid.img.lzma Install 7z (if you don’t have it yet) and decompress the file: sudo apt-get install p7zip-full 7z x mele-ubuntu-lucid.img.lzma The decompressed size is 4008706048, which might be larger than your 4GB SD Card […]

Android Device Porting Tutorial – Android Builder Summit 2012

Benjamin Zores, Open Source Software and Multimedia Architect at Alcatel-Lucent, gives step-by-step to port Android to your own device at Android Builder Summit in February 2012. Abstract: This talk is presented as a step by step tutorial meant for Android platform rookies, as to discover all Androidisms one has to tackle down to bring his own custom device to life. Based on a real-life Android 4.0 ICS device porting experience, the talk will cover early board bringup (from U-Boot and Fastboot to Linux kernel and drivers), AOSP device integration, Android-specific device init customization, touchscreen input layer adaptations and Hardware Abstraction Layer (HAL) driver interfaces development. You can also download the presentation slides on linuxfoundation.org website. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com

Raspberry Pi Releases BCM2835 Datasheet for ARM Peripherals

If you have been following Raspberry Pi project, you may have noticed the dearth of documentation related to Broadcom processors. For BCM2835 (The processor used in Raspberry Pi board), Broadcom only has one laconic webpage. But the Raspberry Pi’s “super-team” has managed to get a (partial) datasheet for the SoC showing the details of BCM2835 ARM peripherals which is all that we may need. This would only be useful for people playing around with the Linux (and u-boot) drivers. The document includes details about the processor’s memory map as shown below. It also contains details (registers, implementation details, etc..) about the following ARM peripherals: Timers Interrupt controller GPIO USB PCM / I2S DMA controller I2C master I2C / SPI slave SPI0, SPI1, SPI2 PWM UART0, UART1 You can download BCM2835 datasheet to get the complete documentation. The Raspberry Pi foundation also announced that the boards will be ready on February […]

Build the bootloaders (U-boot & X-Loader) for Pandaboard

I’ve tried to compile u-boot and x-loader for Pandaboard by following the instructions given at http://omappedia.org/wiki/Get_started_with_ubuntu_on_omap4#Bootloaders. I did this in Ubuntu 10.04 LTS with Linaro gcc compiler. Here are the instructions for the build: Create the folders:

Get u-boot and checkout the omap4_dev branch:

You may use a different tag. Simply run “git tag -l | grep L24” to see the list of tags. (I used the latest at the time of this post). Build u-boot for OMAP4

At this point, you should get U-boot (u-boot.bin). get x-loader and checkout the omap4_dev branch:

N.B: Both u-boot and x-loader folders must be at the same directory level. build x-loader for OMAP4:

The x-loader (MLO) should now be ready. Finally, you simply need to copy MLO and u-boot.bin files to the SD card. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting […]

EDATEC Raspberry Pi 5 fanless case