CyanogenMod 11 (KitKat) / Archlinux multiboot on Toshiba AC100

Switching to U-Boot and Installing CyanogenMod

I installed CM-11 following https://code.google.com/p/cm-paz00/wiki/InstallGuide?tm=6 Completing the process, you'll have also u-boot installed on your AC100 SOS partition (/dev/mmcblk0p1) !

Adding a new item to u-boot menu

Reboot your ac100 using SOS-BOOT: connect your ac100 to a PC via mini-USB cable, Press and hold CTRL+ESC+POWER keys at the same time on the ac100 and, from the pc:

nvflash --bl sos-uboot-r5-2013-09-23.bin --go

ac100 will restart with sos kernel & minimal system. now you can access & mount ac100 partitions:

mkdir /sos
mount /dev/mmcblk0p1 /sos

As you can see i used an sd to copy filesystem,kernel,modules,dtmb from. My ac100 is 16GB model, and i used mmcblk0p7 to install Archlinux.

Ok, u-boot uses a “compiled” text file to show its menu: in /sos/boot you'll find boot.scr (CM-11 gift :)) ; let's copy it in boot.cmd and modify:

cd /sos/boot
cp boot.scr boot.cmd
vi boot.cmd

now you'll have to delete (press 'x' some times… ) the “binary garbage” header, an add (press 'i' to switch vi in edit mode) a new line; something like:

setenv bootmenu_0 "Boot LNX ARCH =setenv bootargs 'root=/dev/mmcblk0p7 rootfstype=ext4 rootwait'; ext2load mmc 0:2 0x1000000 /boot/zImage; ext2load mmc 0:2 0x2000000 /boot/tegra20-paz00.dtb; bootz 0x1000000 - 0x2000000;"

as you can see, i put my kernel image and dtb in LNX partition (mmc 0:2); if you want to use SOS partition (if you followed CM-11 installation instructions they are both sized 64MB) replace with mmc 0:1

I wasted a lot of time figuring out how to instruct u-boot to load a kernel missing an initrd; finally i realized bootz needs two (kernel initrd) or three (kernel initrd dtb) arguments: if you have not an initrd, you must use a '-' as 2nd argument!

compile boot.scr

You must now compile boot.cmd to obtain an updated boot.scr:

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "ubootscript" -d boot.cmd boot.scr

Copying your kernel into ac100

As already stated, i used LNX partition for my kernel:

mkdir /lnx
mount /dev/mmcblk0p2 /lnx
mkdir /sd # to copy kernel from
mount /dev/mmcblk1p1 /sd
cp /sd/zImage /lnx/boot/
cp /sd/tegra20-paz00.dtb /lnx/boot/

Installing archlinux filesystem

Of course you'll need to format (already done during CM-11 installation) & mount your target partition

mkdir /arch
mount /dev/mmcblk0p7 /arch

and untar rootfs on it:

cd /arch/
tar xvf /sd/ArchLinuxARM-trimslice-latest.tar .

Copying (wifi) modules to root filesystem

bzcat /sd/modules.tar | tar xvf .

Umounting partitions and rebooting

Everything should now be in it's right place… cd /

umount *

cross your fingers, power off and after power on your ac100!

Configure ArchLinux

After a reboot, you can finally configure your archlinux installation. Follow arch_base_configuration for instructions.

Compiling your own kernel

But where can you find an up-to-date kernel for your linux? Compile yourself your own! See kerneldev for instructions.

Log In