#!/bin/bash # # Arch Linux ARM Chroot Builder # # Licensed under the GPLv2. # # This script builds an Arch Linux ARM chroot. # It does not include a kernel or other "low-level" components. # First, it downloads and installs packages to the workingdir, # then configures some basics, sets the root password to "root", # and then creates a rootts.tar.gz and/or a UBI image, ready to flash. # # Usage: ./chroot-builder workingdir # # NOTE: This script is interactive. # Agree to installing packages and answer "y" to cleaning the Pacman database. # # ==== Variables to set ==== INSTALLEDPKGS="base file heimdal openssl" RELEASEVER=2011.08 MAKETARGZ=1 # ==== The Process ==== mkdir -p $1 echo -e "\033[1mInstalling packages...\033[0m" mkdir -p $1/var/lib/pacman pacman -Syyf --noconfirm --noprogressbar -r $1 $INSTALLEDPKGS echo -e "\033[1mSetting the password to 'root' and cleaning up:\033[0m" echo -e "root\nroot\n" | chroot $1/ /usr/bin/passwd root rm $1/dev/{console,null,zero} chroot $1/ mknod -m 600 /dev/console c 5 1 chroot $1/ mknod -m 666 /dev/null c 1 3 chroot $1/ mknod -m 666 /dev/zero c 1 5 rm $1/etc/locale.gen echo "en_US.UTF-8 UTF-8" >> $1/etc/locale.gen echo "en_US ISO-8859-1" >> $1/etc/locale.gen echo "de_DE ISO-8859-1" >> $1/etc/locale.gen echo "de_DE@euro ISO-8859-15" >> $1/etc/locale.gen chroot $1/ /usr/sbin/locale-gen chroot $1/ yes | /usr/bin/pacman -Scc echo $RELEASEVER > $1/etc/alarm-version # Here is the rootfs.tar.gz part if you set MAKETARGZ to 1 if [ $MAKETARGZ = 1 ]; then echo -e "\033[1mCreating a rootfs.tar.gz...\033[0m" cd $1 tar czf ../ArchLinux-ARM-$RELEASEVER-chroot.tar.gz ./* cd ../ else echo -e "\033[1mNot creating a rootfs.tar.gz...\033[0m" fi echo -e "\033[1mCleaning up...\033[0m" rm -rf $1