This is an old revision of the document!
Table of Contents
How to install ArchLinux on AC100 with GPT
You need:
- A computer with ArchLinux (64bit)
- A mini-usb cable
- A Toshiba AC100
- An USB stick (at least 256MB)
- About 4-5 hours of time
Build a kernel
Create a working directory: mkdir ~/ac100
Get precompiled Crosstools from http://archlinuxarm.org/developers/distcc-cross-compiling, use the ARMv7i hardfloat version.
Unpack the tools in to ~/ac100
, this will result in ~/ac100/x-tools7h
Add the binaries to your path: export PATH=$PATH:~/ac100/x-tools7h/arm-unknown-linux-gnueabi/bin
Checkout a working kernel sourcetree. I recommend the for-next-thierry
branch from http://gitorious.org/~marvin24/ac100/marvin24s-kernel.
$ cd ~/ac100 $ git clone -b for-next-thierry git://gitorious.org/~marvin24/ac100/marvin24s-kernel.git
Create a directory for (kernel) installation: mkdir ~/ac100/kernel_install
Building the kernel
$ cd ~/ac100/marvin24s-kernel $ make tegra_defconfig ARCH=arm $ make menuconfig ARCH=arm
Be sure to have a look under “Boot Options” and enable:
- Use appended device tree blot to zImage
- Supplement the appended DTB with traditional ATAG information
- Kernel command line type (Use bootloader kernel arguments if available)
Build your kernel:
$ make -j8 zImage modules INSTALL_MOD_PATH=/home/user/ac100/kernel_install \ INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-unknown-linux-gnueabi- ... lots of output ... $ make modules_install INSTALL_MOD_PATH=/home/user/ac100/kernel_install \ INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-unknown-linux-gnueabi- ... $ make dtbs INSTALL_MOD_PATH=/home/user/ac100/kernel_install \ INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-unknown-linux-gnueabi- ... $ mkdir -p ~/ac100/kernel_install/boot/ $ cat ~/ac100/marvin24s-kernel/arch/arm/boot/zImage \ ~/ac100/marvin24s-kernel/arch/arm/boot/dts/tegra20-paz00.dtb > ~/ac100/kernel_install/boot/vmlinuz-for-next-thierry $ cd ~/ac100/kernel_install/ $ mkdir usr ; mv lib usr # breaks arch otherwise $ tar cf kern.tar boot usr
Congratulations, you should have a working kernel.
Installing on your AC100
Copy kern.tar
and ArchLinuxARM-trimslice-latest.tar.gz on a USB Stick
Get nvflash and SOS-Boot-r5
Backup your AC100.
Boot your AC100 in recovery mode (Ctrl+Esc+Power), attach the mini-USB cable to your Host PC.
Send sos-uboot-r5-alpha.bin to your AC100:
nvflash --bl sos-uboot-r5-alpha.bin --sync
Insert your prepared USB stick into your AC100. On your AC100 do the following:
# ./switch-to-uboot (you did backup your device, did you?) # parted /dev/mmcblk0 (delete everything, create one big partition starting at 1576k, ending at 8000M) # mkfs.ext4 /dev/mmcblk0p1 # mount /dev/sda1 /mnt # mount /dev/mmcblk0p1 /media # cd /media # gzip -dc /mnt/ArchLinuxARM-trimslice-latest.tar.gz | tar xp # tar xf /mnt/kern.tar # cd /media/boot # vi boot.cmd
Fill boot.cmd with the following:
echo === AC100 Arch Linux === setenv bootargs 'root=/dev/mmcblk0p1 init=/usr/lib/systemd/systemd rw quiet cma=64M' ext2load mmc 0:1 0x1000000 /boot/vmlinuz-for-next-thierry bootz 0x1000000
Create a boot script for uboot:
# mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "ubootscript" -d boot.cmd boot.scr
Unmount disks
# cd / ; umount /mnt ; umount /media
Remove your USB stick and reboot your AC100 with long press on the powerbutton.
You should have a (very) basic ArchLinuxArm system now. Log in with “root”/“root” and hack away.