diff --git a/scripts/chroot-builder b/scripts/chroot-builder new file mode 100755 index 000000000..c786f0f7e --- /dev/null +++ b/scripts/chroot-builder @@ -0,0 +1,54 @@ +#!/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 ../PlugApps-Linux-$RELEASEVER-rootfs.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