Android on OpenRD, part 1

Android on OpenRD

Android on OpenRD

This is the first article about porting Android 4.0.x AKA Ice Cream Sandwich AKA ICS on the OpenRD Client. This is a pretty powerful ARM machine (1.2 Ghz  256 KB L2 cache, 512 MB RAM and Gigabit Ethernet) with a PCIe Xgi graphics chip. The goal is having a good hacking machine, so the system will be brought up via NFS root (perhaps in a future part everything will be put on the internal NAND or a SD card, it should not be difficult).

Prerequisites

The standard U-boot provided with the OpenRD is used to boot the system. The environment of the boot-loader has to be set-up to start mainline kernel, as outlined on the Debian on the OpenRD page. The Android kernel and users-pace will be loaded via the network (the IP and paths refer to my development environment):

setenv bootargs 'console=ttyS0,115200 root=/dev/nfs
 ip=10.0.10.187:10.0.10.57:10.0.10.57:255.255.255.0:openrd:eth0:off
 nfsroot=10.0.10.253:/mnt/fat/armroots/icsrd,tcp,nolock
 init=/init rw'
tftpboot 0x00800000 openrd-android ; bootm 0x00800000

The Linux Kernel

After some research for a Linux kernel with appropriate Androidism I choose to start with the kernel published by Freescale on their Open Source git repository. I had good results with their kernel on i.MX28 and i.MX53 based machines. The patch for the OpenRD are based on the imx_2.6.38_android branch, tag imx-android-r12. ICS is based on Linux 3.0 kernel but I haven’t seen big problems using this version (just some warning about missing some IP connection tracking statistics in the sysfs file-system). You can download my latest patch for supporting the OpenRD board and the .config file I used. This patch:
Continue reading

Posted in Android | Tagged , , , | 1 Comment

Cool Language Compiler Example – Compilers courses

coolc is a limited class use COOL (Classroom Object Oriented Language) compiler written in C using LEX and YACC. coolc will perform an almost complete static type-check on the given file and generate the intermediate code in a three-address language for a limited subset of the COOL constructs. The three-address code will then be interpreted by the built-in interpreter and the output displayed to the user.

coolc doesn’t fully support all the COOL language constructs. coolc main features are centered around the developing of the dispatch construct of COOL:
ID.ID():void

Therefore, briefly, coolc is able to handle:
– definition of classes without inheritance
– definition of attributes of various types in classes
– definition of methods in classes
– definition of dispatching methods in methods body without parameters and without a return value
Continue reading

Posted in Teaching Material | Tagged , , , | Leave a comment

ftdispi, a library for interfacing SPI devices with FTDI based USB to JTAG dongles

ftdispi is a small library that can be used to interface SPI devices to FTDI based USB to JTAG interfaces. It is based on libus-1.0. It was tested with the Xverve Signalyzer (USB VID 0x0403, PID 0xbca0). Have a look at the included example testftdispi.c for usage instructions.

Posted in Linux drivers | Tagged , , , , , | Leave a comment

Hardware JPEG2000 on Linux

Eurotech CTR1474 Linux driver. This is a powerful PC/104 board for DVR applications. It features an JPEG2000 codec and TWA2835 video processor.

Posted in Linux drivers | Tagged , , , , | Leave a comment

Using Slovenian characters on an Italian keyboard

An article on how to use Slovenian characters under a Linux/GNU/X11 system. (in Slovene)

Posted in Linux desktop | Tagged , , , , | Leave a comment

crosstool-ng for the Maverick Crunch processors

crosstool-ng for the Maverick Crunch processors. With the generated toolchain you can use the FPU unit in this line of processors to speed-up calculations.

Posted in Linux embedded | Tagged , , | Leave a comment

Using the Friuli Venezia Giulia’s official cartography (CTRN) on a Garmin GPS

ctrtool is a tool to translate the  Friuli Venezia Giulia’s official cartography (CTRN, carta tecnica regionale numerica) in a format readable by the popular Garmin hand-held GPSes. Very useful for hiking. (in Italian)

Posted in GIS | Tagged , , , | Leave a comment

How to build a Debian based embedded distribution

Mindeb, an embedded distribution from scratch based on Debian Etch. (in Italian)

Posted in Linux embedded | Tagged , , , | Leave a comment

Serocco PEB/PEF 20532 Linux 2.6.12 driver

Serocco driver. Linux 2.6.12 device driver for the chip “Serocco PEB/PEF 20532”

Posted in Linux drivers | Tagged , , | Leave a comment

Hopeless, a system for building disk-less clusters

Hopeless, the description of a system for easy set-up of disk-less clusters, based on unionfs.

Posted in HPC and Clustering | Tagged , , , | Leave a comment

Atmospheric seeing simulation and correction

Christian Pellegrin’s graduation thesis (in Italian) and the software that was developed.

Posted in Science | Tagged , , , , , | Leave a comment

PostgreSQL 7.1.2 SQL3 support analysis

A brief analysis of the SQL3 support in PostgreSQL 7.1.2 can be found here. (in italian)

Una breve analisi del supporto di SQL3 di PostgreSQL 7.1.2 può essere trovata qui. (in italiano)

Posted in Teaching Material | Tagged , , | 1 Comment