From 45e8d973853e8096b7731424054ddfd77e80f7cf Mon Sep 17 00:00:00 2001 From: Fathi Boudra Date: Tue, 13 Mar 2012 12:09:06 +0200 Subject: Add initial configuration for Developer image --- precise-armhf-developer/Makefile | 17 ++++++ precise-armhf-developer/README | 16 ++++++ precise-armhf-developer/configure | 41 ++++++++++++++ .../archives/linaro-overlay-ppa.key.chroot | 12 +++++ .../archives/linaro-overlay-ppa.list.chroot | 2 + .../hooks/01-setup_user_linaro.chroot | 7 +++ .../hooks/02-add_linaro_to_groups.chroot | 63 ++++++++++++++++++++++ .../hooks/03-check_sudoers_for_admin.chroot | 17 ++++++ .../hooks/20-extract_initrd_uuid.binary | 29 ++++++++++ .../common/boot/filesystem.dir/etc/default/locale | 1 + .../common/boot/filesystem.dir/etc/hostname | 1 + .../precise/common/boot/filesystem.dir/etc/hosts | 7 +++ .../package-lists/linaro-developer.list.chroot | 3 ++ 13 files changed, 216 insertions(+) create mode 100755 precise-armhf-developer/Makefile create mode 100644 precise-armhf-developer/README create mode 100755 precise-armhf-developer/configure create mode 100644 precise-armhf-developer/customization/archives/linaro-overlay-ppa.key.chroot create mode 100644 precise-armhf-developer/customization/archives/linaro-overlay-ppa.list.chroot create mode 100755 precise-armhf-developer/customization/hooks/01-setup_user_linaro.chroot create mode 100755 precise-armhf-developer/customization/hooks/02-add_linaro_to_groups.chroot create mode 100755 precise-armhf-developer/customization/hooks/03-check_sudoers_for_admin.chroot create mode 100755 precise-armhf-developer/customization/hooks/20-extract_initrd_uuid.binary create mode 100644 precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale create mode 100644 precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hostname create mode 100644 precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hosts create mode 100644 precise-armhf-developer/customization/package-lists/linaro-developer.list.chroot (limited to 'precise-armhf-developer') diff --git a/precise-armhf-developer/Makefile b/precise-armhf-developer/Makefile new file mode 100755 index 0000000..4ef94fd --- /dev/null +++ b/precise-armhf-developer/Makefile @@ -0,0 +1,17 @@ +#!/bin/sh + +# (C) 2012 Fathi Boudra + +# Calls all necessary live-build programs in the correct order to complete +# the bootstrap, chroot, binary, and source stage. + +# You need live-build package installed and superuser privileges. + +TIMESTAMP=`date "+%y%m%d%H%M%S"` +LOGFILE=logfile-$(TIMESTAMP) + +all: + set -e; sudo lb build 2>&1 | tee $(LOGFILE) + +clean: + sudo lb clean --purge diff --git a/precise-armhf-developer/README b/precise-armhf-developer/README new file mode 100644 index 0000000..917e1f3 --- /dev/null +++ b/precise-armhf-developer/README @@ -0,0 +1,16 @@ +* To build binary image: + * install live-build qemu-user-static + * run configure + * run make + +* Scripts: + * configure + * Makefile + +* Configuration Layout + +`-- ./config + +* Customization Layout + +`-- ./customization diff --git a/precise-armhf-developer/configure b/precise-armhf-developer/configure new file mode 100755 index 0000000..342b16e --- /dev/null +++ b/precise-armhf-developer/configure @@ -0,0 +1,41 @@ +#!/bin/sh + +# (C) 2012 Fathi Boudra + +# Create configuration for live-build. + +# You need live-build package installed. + +set -e + +echo "I: create configuration" +export LB_BOOTSTRAP_INCLUDE="apt-transport-https gnupg" +lb config \ + --apt-indices none \ + --architectures armhf \ + --archive-areas 'main universe' \ + --binary-filesystem ext4 \ + --binary-images tar \ + --bootstrap-flavour minimal \ + --bootstrap-qemu-arch armhf \ + --bootstrap-qemu-static /usr/bin/qemu-arm-static \ + --cache false \ + --chroot-filesystem none \ + --distribution precise \ + --gzip-options '-9 --rsyncable' \ + --hostname linaro-developer \ + --iso-publisher 'Linaro; http://www.linaro.org/; linaro-dev@lists.linaro.org' \ + --iso-volume 'Linaro precise $(date +%Y%m%d-%H:%M)' \ + --linux-flavours none \ + --linux-packages none \ + --mode ubuntu \ + --package-lists minimal \ + --security false \ + --system normal \ + --username linaro \ + --volatile false + +echo "I: copy customization" +cp -rf customization/* config/ + +echo "I: done" diff --git a/precise-armhf-developer/customization/archives/linaro-overlay-ppa.key.chroot b/precise-armhf-developer/customization/archives/linaro-overlay-ppa.key.chroot new file mode 100644 index 0000000..0966316 --- /dev/null +++ b/precise-armhf-developer/customization/archives/linaro-overlay-ppa.key.chroot @@ -0,0 +1,12 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: SKS 1.0.10 + +mI0ETA9rYAEEAM3qPwNzaXsRRyNARLCAEVl7BCte8isURYwLxMgvMlR7RmLip81ox0o4d61E +Q5uuT5LWEp2/f2xvw2Pn+7uOKbpL0JLyscD7PntrJnZay8vitDXWMUAyQTMltyjfKQ3N3Zrb +B424lJYL4r04fjFagN5R4+LFaIzO6P71bwk6rj1dABEBAAG0HExhdW5jaHBhZCBMaW5hcm8g +T3ZlcmxheSBQUEGItgQTAQIAIAUCTA9rYAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ +EPH8usp74fl7+1gD/j9IaY1wCG8RrgYUTVnh8erd3ooHCzN+hlgjgDo0MLYv5DPes8VSgFOC +j1TLPGwrqSikdGAKpMu7vhJSPEkYC7Y+DGkS6Vuap8O3olnZfc4BPfSF1XI18KLv0GeBiEOq +xiQvTnlfgEyu21LjFMtAjh6qfbRvJonqvqEbK/7QrvNI +=sAtw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/precise-armhf-developer/customization/archives/linaro-overlay-ppa.list.chroot b/precise-armhf-developer/customization/archives/linaro-overlay-ppa.list.chroot new file mode 100644 index 0000000..2e33004 --- /dev/null +++ b/precise-armhf-developer/customization/archives/linaro-overlay-ppa.list.chroot @@ -0,0 +1,2 @@ +# Linaro Overlay PPA +deb http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu @DISTRIBUTION@ main diff --git a/precise-armhf-developer/customization/hooks/01-setup_user_linaro.chroot b/precise-armhf-developer/customization/hooks/01-setup_user_linaro.chroot new file mode 100755 index 0000000..9c65f97 --- /dev/null +++ b/precise-armhf-developer/customization/hooks/01-setup_user_linaro.chroot @@ -0,0 +1,7 @@ +#!/bin/sh + +echo "I: create linaro user" +adduser --gecos linaro --disabled-login linaro + +echo "I: set linaro user password" +echo "linaro:linaro" | chpasswd diff --git a/precise-armhf-developer/customization/hooks/02-add_linaro_to_groups.chroot b/precise-armhf-developer/customization/hooks/02-add_linaro_to_groups.chroot new file mode 100755 index 0000000..f3b2d4e --- /dev/null +++ b/precise-armhf-developer/customization/hooks/02-add_linaro_to_groups.chroot @@ -0,0 +1,63 @@ +#!/bin/sh -x + +DEFGROUPS="admin,adm,dialout,cdrom,plugdev,audio,dip,video" + +/bin/egrep -i "^admin" /etc/group +if [ $? -eq 0 ]; then + echo "User admin exists in /etc/group" +else + echo "User admin does not exists in /etc/group must create" + groupadd admin +fi +/bin/egrep -i "^dialout" /etc/group +if [ $? -eq 0 ]; then + echo "User dialout exists in /etc/group" +else + echo "User dialout does not exists in /etc/group must create" + groupadd dialout +fi +/bin/egrep -i "^cdrom" /etc/group +if [ $? -eq 0 ]; then + echo "User cdrom exists in /etc/group" +else + echo "User cdrom does not exists in /etc/group must create" + groupadd cdrom +fi +/bin/egrep -i "^plugdev" /etc/group +if [ $? -eq 0 ]; then + echo "User plugdev exists in /etc/group" +else + echo "User plugdev does not exists in /etc/group must create" + groupadd plugdev +fi +/bin/egrep -i "^audio" /etc/group +if [ $? -eq 0 ]; then + echo "User audio exists in /etc/group" +else + echo "User audio does not exists in /etc/group must create" + groupadd audio +fi +/bin/egrep -i "^dip" /etc/group +if [ $? -eq 0 ]; then + echo "User dip exists in /etc/group" +else + echo "User dip does not exists in /etc/group must create" + groupadd dip +fi +/bin/egrep -i "^video" /etc/group +if [ $? -eq 0 ]; then + echo "User video exists in /etc/group" +else + echo "User video does not exists in /etc/group must create" + groupadd video +fi +/bin/egrep -i "^adm" /etc/group +if [ $? -eq 0 ]; then + echo "User adm exists in /etc/group" +else + echo "User adm does not exists in /etc/group must create" + groupadd adm +fi + +echo "I: add linaro to ($DEFGROUPS) groups" +usermod -a -G ${DEFGROUPS} linaro diff --git a/precise-armhf-developer/customization/hooks/03-check_sudoers_for_admin.chroot b/precise-armhf-developer/customization/hooks/03-check_sudoers_for_admin.chroot new file mode 100755 index 0000000..5c82429 --- /dev/null +++ b/precise-armhf-developer/customization/hooks/03-check_sudoers_for_admin.chroot @@ -0,0 +1,17 @@ +#!/bin/sh + +# check to make sure sudoers file has ref for admin +ADMINEXISTS="$(awk '$1 == "%admin" { print $1 }' /etc/sudoers)" +if [ -z "$ADMINEXISTS" ]; then + # append admin entry to sudoers + echo "# Members of the admin group may gain root privileges" >> /etc/sudoers + echo "%admin ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers +fi + +# make sure that NOPASSWD is set for %admin +# expecially in the case that we didn't add it to /etc/sudoers +# just blow the %admin line away and force it to be NOPASSWD +sed -i -e ' +/\%admin/ c \ +%admin ALL = (ALL) NOPASSWD: ALL +' /etc/sudoers diff --git a/precise-armhf-developer/customization/hooks/20-extract_initrd_uuid.binary b/precise-armhf-developer/customization/hooks/20-extract_initrd_uuid.binary new file mode 100755 index 0000000..fee2b1b --- /dev/null +++ b/precise-armhf-developer/customization/hooks/20-extract_initrd_uuid.binary @@ -0,0 +1,29 @@ +#!/bin/sh + +mkdir -p uuid +cd uuid + +prefix= + +if ls ../binary/casper/initrd.img-* 2>&1 > /dev/null; then + prefix=../binary/boot/filesystem.dir/casper/ +else + prefix=../binary/boot/filesystem.dir/boot/ +fi + +UUID=`uuidgen -r` + +for initrd in `ls $prefix/initrd.img-*`; do + zcat $initrd | cpio --quiet -id + echo $UUID > conf/uuid.conf + find . | cpio --quiet --dereference -o -H newc | gzip > $initrd + rm -rf * +done + +echo "I: setting rootfs UUID $UUID in initrd... copying to '.disk/casper-uuid'." +if [ ! -d ../binary/boot/filesystem.dir/.disk ]; then + mkdir -p ../binary/boot/filesystem.dir/.disk +fi +echo $UUID > ../binary/boot/filesystem.dir/.disk/casper-uuid +cd .. +rm -rf uuid diff --git a/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale b/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale new file mode 100644 index 0000000..f9c983c --- /dev/null +++ b/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale @@ -0,0 +1 @@ +LANG=C.UTF-8 diff --git a/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hostname b/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hostname new file mode 100644 index 0000000..bafc623 --- /dev/null +++ b/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hostname @@ -0,0 +1 @@ +linaro-developer diff --git a/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hosts b/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hosts new file mode 100644 index 0000000..135dd9d --- /dev/null +++ b/precise-armhf-developer/customization/includes/precise/common/boot/filesystem.dir/etc/hosts @@ -0,0 +1,7 @@ +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +127.0.1.1 linaro-developer diff --git a/precise-armhf-developer/customization/package-lists/linaro-developer.list.chroot b/precise-armhf-developer/customization/package-lists/linaro-developer.list.chroot new file mode 100644 index 0000000..75e4fe8 --- /dev/null +++ b/precise-armhf-developer/customization/package-lists/linaro-developer.list.chroot @@ -0,0 +1,3 @@ +# Packages needed for Linaro - Developer +linaro-development +linaro-overlay-minimal -- cgit v1.2.3