A utility that allows to dump correctly all mtdX partitions from Google Sooner prototypes.
Download a source code of SuDu first.
Ubuntu Linux (tested on Ubuntu with gcc 4.6.3)
The device uses OABI (Old ABI) syscall convention (__NR_SYSCALL_BASE = 0x900000). Standard glibc-based toolchains will not work due to incompatibility with Linux 2.6.22. The dump tool must be compiled without any libc, using raw syscalls.
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
sudo apt install gcc-arm-linux-gnueabi binutils-arm-linux-gnueabi
Use the following command to compile this program:
arm-linux-gnueabi-gcc \ -march=armv5te \ -mtune=arm926ej-s \ -msoft-float \ -marm \ -nostdlib \ -nostartfiles \ -static \ -fno-builtin \ -o sudu sudu.c
The device runs Linux 2.6.22-omap1 compiled with gcc 4.1.1. Modern glibc (2.15+) uses kernel_helpers that do not exist in this kernel version, causing illegal instruction or hang on startup even with static binaries. So solution is to compile without any libc (-nostdlib -nostartfiles) and use raw OABI syscalls directly.