Reviving androidezx (Android on the Motorola MING A1200)

things from boards above, but in an international language
Post Reply
User avatar
Morc Offline
Posts: 201
Joined: Fri Jul 19, 2024 12:23 pm
Description: 21 | tatar z Biskupovej

Ak som sa volade omýleu tak na mňa kričte.
Contact:

Reviving androidezx (Android on the Motorola MING A1200)

Post by Morc »

Android on the EZX platform based phones (especially the A1200) is a nice piece of lost* history.

Most of the guide is just a slight refactor of the helpful info mentioned in the original "AndroidPortingGuidelineforA1200.pdf" guide. Big thanks to the androidezx project for putting the initial effort into this.

While this is a refactor on one side, I am also supplying details about some of the OpenEZX technicalities
Be aware that reviving the original androidezx makes less sense than the "modern day" approach to Android on the MING, which has a fair bit of differences.


Prerequisites:
most of the stuff mentioned here will be downloaded later on during the guide steps

Debian current (or anything else linux applicable, but I did debian for sanity reasons)
ARM compiler for the kernel: arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
Android m5-14 SDK: android-sdk_m5-rc14_linux-x86.zip
OpenEZX and Android patches:
andoid-a1200-ming-android-patches.zip
(65.41 KiB) Downloaded 546 times
andoid-a1200-ming-openezx-patchset.zip
(236.47 KiB) Downloaded 649 times
Linux 2.6.24: linux-2.6.24.tar.gz


Debian setup:

Code: Select all

apt install build-essential libusb-dev git debootstrap autoconf pkg-config libtool
mkdir chroot
debootstrap --no-check-sig --arch=i386 wheezy chroot/ http://archive.debian.org/debian
wget https://web.archive.org/web/20140729120108/https://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -O chroot/home/arm.tar.bz2
wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.gz -O chroot/home/linux-2.6.24.tar.gz
echo 'Acquire::Check-Valid-Until "false";' | tee chroot/etc/apt/apt.conf.d/99no-check-valid-until
echo "deb http://archive.debian.org/debian wheezy main contrib non-free" > chroot/etc/apt/sources.list
echo "deb http://archive.debian.org/debian-security wheezy/updates main contrib non-free" >> chroot/etc/apt/sources.list
mount -t proc proc chroot/proc
mount --rbind /sys chroot/sys
mount --rbind /dev chroot/dev
mount --rbind /run chroot/run

EZX kernel build:
we will be switching to the chroot as I figured building the kernel only on an old debian chroot for now

Code: Select all

chroot chroot/ /bin/bash
apt-get install build-essential quilt bsdtar
cd home
tar -xvf arm.tar.bz2
tar -xvf linux-2.6.24.tar.gz
cd linux-2.6.24
# openezx patches
wget http://forum.370.network/download/file.php?id=944 -O openezx-patchset.zip
mkdir patches
bsdtar -xf openezx-patchset.zip --strip-components=2 -C patches
quilt push -a
# androidezx patches
wget http://forum.370.network/download/file.php?id=943 -O android-patches.zip
bsdtar -xf android-patches.zip
patch -p2 < android-patches/android-a1200-pcap.patch
patch -p2 < android-patches/android-a12000-16bpp.patch
patch -p2 < android-patches/android-config-nfs.patch
patch -p2 < android-patches/android-core.patch
patch -p2 < android-patches/android-framebuffer.patch
patch -p2 < android-patches/android-touchscreen.patch
open patches/Makefile.openezx with nano and perform these changes:
  1. PHONES = a780 e680 a1200 e6 e2 a910
    to PHONES = a1200
  2. CROSS_COMPILE ?= /home/wyrm/ezx/dev/cross/bin/arm-angstrom-linux-gnueabi-
    to CROSS_COMPILE ?= /home/arm-2007q3/bin/arm-none-linux-gnueabi-
  3. J ?= 2
    to J ?= <insert your preferred amount of jobs or just use $(nproc)>
proceed to build the kernel with make –f patches/Makefile.openezx


moto-boot-usb build:
we are switching back to the regular shell, feel free to exit out of the chroot

Code: Select all

git clone https://github.com/370network/moto-boot-usb
cd moto-boot-usb
./autogen.sh
./configure --with-kernel-dir=$(pwd)/../chroot/home/linux-2.6.24
make
the resulting binary is "src/moto-boot-usb"

Putting it all together:
You were supplied with a NFS root that you were supposed to put on the Linux install, figure out the NFS server settings and then boot the kernel with moto-boot-usb with

Code: Select all

moto-boot-usb/src/moto-boot-usb chroot/root/linux-2.6.24/arch/arm/boot/zImage 1742
These steps are rather okay with the old androidezx approach but kinda deprecated with the newer one unless you are banging you head around and trying to develop the kernel.


List of helpful sources (relevant, irrelevant and nice): Old videos:
Image
Post Reply