You need:
You can download a prebuilt one here: http://kilbeggan.fourecks.de/~falk/linux-3.15.6_archlinux_ac100.tar.gz
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 current vanilla kernel (3.15.6), it should work out of the box.
Create a directory for (kernel) installation: mkdir ~/ac100/kernel_install
$ cd ~/ac100/linux-3.15.6 $ make tegra_defconfig ARCH=arm $ make menuconfig ARCH=arm
Be sure to have a look under “Boot Options” and enable:
Or use http://sprunge.us/RiBc as a base .config and do a
$ cd ~/ac100/linux-3.15.6 $ curl http://sprunge.us/RiBc > .config $ make oldconfig ARCH=arm
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.
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.
For increased X11 performance build the opentegra driver according to http://ac100.wikispaces.com/opentegra, you need to install libpthread-stubs from AUR https://aur.archlinux.org/packages/libpthread-stubs and xorg-server-devel
from pacman.
First, build the modified libdrm:
git clone git://people.freedesktop.org/~tagr/drm cd drm ./autogen.sh --prefix=/usr --disable-intel --disable-nouveau --disable-radeon --disable-vmwgfx --enable-tegra-experimental-api make make install
Then, build the opentegra driver:
git clone git://people.freedesktop.org/~tagr/xf86-video-opentegra cd xf86-video-opentegra ./autogen.sh --prefix=/usr make make install