diff --git a/stage0/01-configure-apt/00-run.sh b/stage0/01-configure-apt/00-run.sh new file mode 100755 index 0000000..9b2bd2e --- /dev/null +++ b/stage0/01-configure-apt/00-run.sh @@ -0,0 +1,17 @@ +#!/bin/bash -e + +install -m 644 files/sources.list ${ROOTFS_DIR}/etc/apt/ +install -m 644 files/raspi.list ${ROOTFS_DIR}/etc/apt/sources.list.d/ + +if [ -n "$APT_PROXY" ]; then + install -m 644 files/51cache ${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache + sed ${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache -i -e "s|APT_PROXY|${APT_PROXY}|" +else + rm -f ${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache +fi + +on_chroot apt-key add - < files/raspberrypi.gpg.key +on_chroot sh -e - << EOF +apt-get update +apt-get dist-upgrade -y +EOF diff --git a/stage0/01-configure-apt/files/51cache b/stage0/01-configure-apt/files/51cache new file mode 100644 index 0000000..a8920a9 --- /dev/null +++ b/stage0/01-configure-apt/files/51cache @@ -0,0 +1 @@ +Acquire::http { Proxy "APT_PROXY"; }; diff --git a/stage0/01-configure-apt/files/raspberrypi.gpg.key b/stage0/01-configure-apt/files/raspberrypi.gpg.key new file mode 100644 index 0000000..60b5f65 --- /dev/null +++ b/stage0/01-configure-apt/files/raspberrypi.gpg.key @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +mQENBE/d7o8BCACrwqQacGJfn3tnMzGui6mv2lLxYbsOuy/+U4rqMmGEuo3h9m92 +30E2EtypsoWczkBretzLUCFv+VUOxaA6sV9+puTqYGhhQZFuKUWcG7orf7QbZRuu +TxsEUepW5lg7MExmAu1JJzqM0kMQX8fVyWVDkjchZ/is4q3BPOUCJbUJOsE+kK/6 +8kW6nWdhwSAjfDh06bA5wvoXNjYoDdnSZyVdcYCPEJXEg5jfF/+nmiFKMZBraHwn +eQsepr7rBXxNcEvDlSOPal11fg90KXpy7Umre1UcAZYJdQeWcHu7X5uoJx/MG5J8 +ic6CwYmDaShIFa92f8qmFcna05+lppk76fsnABEBAAG0IFJhc3BiZXJyeSBQaSBB +cmNoaXZlIFNpZ25pbmcgS2V5iQE4BBMBAgAiBQJP3e6PAhsDBgsJCAcDAgYVCAIJ +CgsEFgIDAQIeAQIXgAAKCRCCsSmSf6MwPk6vB/9pePB3IukU9WC9Bammh3mpQTvL +OifbkzHkmAYxzjfK6D2I8pT0xMxy949+ThzJ7uL60p6T/32ED9DR3LHIMXZvKtuc +mQnSiNDX03E2p7lIP/htoxW2hDP2n8cdlNdt0M9IjaWBppsbO7IrDppG2B1aRLni +uD7v8bHRL2mKTtIDLX42Enl8aLAkJYgNWpZyPkDyOqamjijarIWjGEPCkaURF7g4 +d44HvYhpbLMOrz1m6N5Bzoa5+nq3lmifeiWKxioFXU+Hy5bhtAM6ljVb59hbD2ra +X4+3LXC9oox2flmQnyqwoyfZqVgSQa0B41qEQo8t1bz6Q1Ti7fbMLThmbRHiuQEN +BE/d7o8BCADNlVtBZU63fm79SjHh5AEKFs0C3kwa0mOhp9oas/haDggmhiXdzeD3 +49JWz9ZTx+vlTq0s+I+nIR1a+q+GL+hxYt4HhxoA6vlDMegVfvZKzqTX9Nr2VqQa +S4Kz3W5ULv81tw3WowK6i0L7pqDmvDqgm73mMbbxfHD0SyTt8+fk7qX6Ag2pZ4a9 +ZdJGxvASkh0McGpbYJhk1WYD+eh4fqH3IaeJi6xtNoRdc5YXuzILnp+KaJyPE5CR +qUY5JibOD3qR7zDjP0ueP93jLqmoKltCdN5+yYEExtSwz5lXniiYOJp8LWFCgv5h +m8aYXkcJS1xVV9Ltno23YvX5edw9QY4hABEBAAGJAR8EGAECAAkFAk/d7o8CGwwA +CgkQgrEpkn+jMD5Figf/dIC1qtDMTbu5IsI5uZPX63xydaExQNYf98cq5H2fWF6O +yVR7ERzA2w33hI0yZQrqO6pU9SRnHRxCFvGv6y+mXXXMRcmjZG7GiD6tQWeN/3wb +EbAn5cg6CJ/Lk/BI4iRRfBX07LbYULCohlGkwBOkRo10T+Ld4vCCnBftCh5x2OtZ +TOWRULxP36y2PLGVNF+q9pho98qx+RIxvpofQM/842ZycjPJvzgVQsW4LT91KYAE +4TVf6JjwUM6HZDoiNcX6d7zOhNfQihXTsniZZ6rky287htsWVDNkqOi5T3oTxWUo +m++/7s3K3L0zWopdhMVcgg6Nt9gcjzqN1c0gy55L/g== +=mNSj +-----END PGP PUBLIC KEY BLOCK----- diff --git a/stage0/01-configure-apt/files/raspi.list b/stage0/01-configure-apt/files/raspi.list new file mode 100644 index 0000000..e1f3b41 --- /dev/null +++ b/stage0/01-configure-apt/files/raspi.list @@ -0,0 +1,3 @@ +deb http://archive.raspberrypi.org/debian/ jessie main ui staging +# Uncomment line below then 'apt-get update' to enable 'apt-get source' +#deb-src http://archive.raspberrypi.org/debian/ jessie main ui diff --git a/stage0/01-configure-apt/files/sources.list b/stage0/01-configure-apt/files/sources.list new file mode 100644 index 0000000..014f732 --- /dev/null +++ b/stage0/01-configure-apt/files/sources.list @@ -0,0 +1,3 @@ +deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi +# Uncomment line below then 'apt-get update' to enable 'apt-get source' +#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi diff --git a/stage0/02-firmware/01-packages b/stage0/02-firmware/01-packages new file mode 100644 index 0000000..008e9b3 --- /dev/null +++ b/stage0/02-firmware/01-packages @@ -0,0 +1 @@ +raspberrypi-bootloader diff --git a/stage0/prerun.sh b/stage0/prerun.sh new file mode 100755 index 0000000..d2bce14 --- /dev/null +++ b/stage0/prerun.sh @@ -0,0 +1,4 @@ +#!/bin/bash -e +if [ ! -d ${ROOTFS_DIR} ]; then + bootstrap jessie ${ROOTFS_DIR} http://mirrordirector.raspbian.org/raspbian/ +fi diff --git a/stage1/00-boot-files/00-run.sh b/stage1/00-boot-files/00-run.sh new file mode 100755 index 0000000..2c976a8 --- /dev/null +++ b/stage1/00-boot-files/00-run.sh @@ -0,0 +1,4 @@ +#!/bin/bash -e + +install -m 644 files/cmdline.txt ${ROOTFS_DIR}/boot/ +install -m 644 files/config.txt ${ROOTFS_DIR}/boot/ diff --git a/stage1/00-boot-files/files/cmdline.txt b/stage1/00-boot-files/files/cmdline.txt new file mode 100644 index 0000000..45c7f58 --- /dev/null +++ b/stage1/00-boot-files/files/cmdline.txt @@ -0,0 +1 @@ +dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait diff --git a/stage1/00-boot-files/files/config.txt b/stage1/00-boot-files/files/config.txt new file mode 100644 index 0000000..69dfef2 --- /dev/null +++ b/stage1/00-boot-files/files/config.txt @@ -0,0 +1,56 @@ +# For more options and information see +# http://www.raspberrypi.org/documentation/configuration/config-txt.md +# Some settings may impact device functionality. See link above for details + +# uncomment if you get no picture on HDMI for a default "safe" mode +#hdmi_safe=1 + +# uncomment this if your display has a black border of unused pixels visible +# and your display can output without overscan +#disable_overscan=1 + +# uncomment the following to adjust overscan. Use positive numbers if console +# goes off screen, and negative if there is too much border +#overscan_left=16 +#overscan_right=16 +#overscan_top=16 +#overscan_bottom=16 + +# uncomment to force a console size. By default it will be display's size minus +# overscan. +#framebuffer_width=1280 +#framebuffer_height=720 + +# uncomment if hdmi display is not detected and composite is being output +#hdmi_force_hotplug=1 + +# uncomment to force a specific HDMI mode (this will force VGA) +#hdmi_group=1 +#hdmi_mode=1 + +# uncomment to force a HDMI mode rather than DVI. This can make audio work in +# DMT (computer monitor) modes +#hdmi_drive=2 + +# uncomment to increase signal to HDMI, if you have interference, blanking, or +# no display +#config_hdmi_boost=4 + +# uncomment for composite PAL +#sdtv_mode=2 + +#uncomment to overclock the arm. 700 MHz is the default. +#arm_freq=800 + +# Uncomment some or all of these to enable the optional hardware interfaces +#dtparam=i2c_arm=on +#dtparam=i2s=on +#dtparam=spi=on + +# Uncomment this to enable the lirc-rpi module +#dtoverlay=lirc-rpi + +# Additional overlays and parameters are documented /boot/overlays/README + +# Enable audio (loads snd_bcm2835) +dtparam=audio=on diff --git a/stage1/01-sys-tweaks/00-patches/01-bashrc.diff b/stage1/01-sys-tweaks/00-patches/01-bashrc.diff new file mode 100644 index 0000000..efa2104 --- /dev/null +++ b/stage1/01-sys-tweaks/00-patches/01-bashrc.diff @@ -0,0 +1,33 @@ +--- a/rootfs/etc/skel/.bashrc ++++ b/rootfs/etc/skel/.bashrc +@@ -43,7 +43,7 @@ + # uncomment for a colored prompt, if the terminal has the capability; turned + # off by default to not distract the user: the focus in a terminal window + # should be on the output of commands, not on the prompt +-#force_color_prompt=yes ++force_color_prompt=yes + + if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then +@@ -57,7 +57,7 @@ + fi + + if [ "$color_prompt" = yes ]; then +- PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' ++ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] ' + else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' + fi +@@ -79,9 +79,9 @@ + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + +- #alias grep='grep --color=auto' +- #alias fgrep='fgrep --color=auto' +- #alias egrep='egrep --color=auto' ++ alias grep='grep --color=auto' ++ alias fgrep='fgrep --color=auto' ++ alias egrep='egrep --color=auto' + fi + + # colored GCC warnings and errors diff --git a/stage1/01-sys-tweaks/00-patches/series b/stage1/01-sys-tweaks/00-patches/series new file mode 100644 index 0000000..6287f0b --- /dev/null +++ b/stage1/01-sys-tweaks/00-patches/series @@ -0,0 +1 @@ +01-bashrc.diff diff --git a/stage1/01-sys-tweaks/00-run.sh b/stage1/01-sys-tweaks/00-run.sh new file mode 100755 index 0000000..5c6ce7e --- /dev/null +++ b/stage1/01-sys-tweaks/00-run.sh @@ -0,0 +1,16 @@ +#!/bin/bash -e + +install -d ${ROOTFS_DIR}/etc/systemd/system/getty@tty1.service.d +install -m 644 files/noclear.conf ${ROOTFS_DIR}/etc/systemd/system/getty@tty1.service.d/noclear.conf +install -m 744 files/policy-rc.d ${ROOTFS_DIR}/usr/sbin/policy-rc.d +#install -v -m 644 files/fstab ${ROOTFS_DIR}/etc/fstab TODO: Necessary in systemd? + +on_chroot sh -e - </dev/null 2>&1; then + adduser --disabled-password --gecos "" pi +fi +echo "pi:raspberry" | chpasswd +echo "root:root" | chpasswd +EOF + + diff --git a/stage1/01-sys-tweaks/files/fstab b/stage1/01-sys-tweaks/files/fstab new file mode 100644 index 0000000..68e5816 --- /dev/null +++ b/stage1/01-sys-tweaks/files/fstab @@ -0,0 +1,3 @@ +proc /proc proc defaults 0 0 +/dev/mmcblk0p1 /boot vfat defaults 0 2 +/dev/mmcblk0p2 / ext4 defaults,noatime 0 1 diff --git a/stage1/01-sys-tweaks/files/noclear.conf b/stage1/01-sys-tweaks/files/noclear.conf new file mode 100644 index 0000000..52671c7 --- /dev/null +++ b/stage1/01-sys-tweaks/files/noclear.conf @@ -0,0 +1,2 @@ +[Service] +TTYVTDisallocate=no diff --git a/stage1/01-sys-tweaks/files/policy-rc.d b/stage1/01-sys-tweaks/files/policy-rc.d new file mode 100755 index 0000000..0b1556d --- /dev/null +++ b/stage1/01-sys-tweaks/files/policy-rc.d @@ -0,0 +1,2 @@ +#!/bin/sh +exit 101 diff --git a/stage1/02-net-tweaks/00-patches/01-hosts.diff b/stage1/02-net-tweaks/00-patches/01-hosts.diff new file mode 100644 index 0000000..ad07ae5 --- /dev/null +++ b/stage1/02-net-tweaks/00-patches/01-hosts.diff @@ -0,0 +1,9 @@ +Index: jessie-stage1/rootfs/etc/hosts +=================================================================== +--- jessie-stage1.orig/rootfs/etc/hosts ++++ jessie-stage1/rootfs/etc/hosts +@@ -3,3 +3,4 @@ + ff02::1 ip6-allnodes + ff02::2 ip6-allrouters + ++127.0.1.1 raspberrypi diff --git a/stage1/02-net-tweaks/00-patches/02-persistant-net.diff b/stage1/02-net-tweaks/00-patches/02-persistant-net.diff new file mode 100644 index 0000000..1e6a975 --- /dev/null +++ b/stage1/02-net-tweaks/00-patches/02-persistant-net.diff @@ -0,0 +1,13 @@ +Index: jessie-stage1/rootfs/lib/udev/rules.d/75-persistent-net-generator.rules +=================================================================== +--- jessie-stage1.orig/rootfs/lib/udev/rules.d/75-persistent-net-generator.rules ++++ jessie-stage1/rootfs/lib/udev/rules.d/75-persistent-net-generator.rules +@@ -22,7 +22,7 @@ IMPORT{cmdline}="net.ifnames" + ENV{net.ifnames}=="1", GOTO="persistent_net_generator_end" + + # device name whitelist +-KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", \ ++KERNEL!="ath*|msh*|ra*|sta*|ctc*|lcs*|hsi*", \ + GOTO="persistent_net_generator_end" + + # ignore Xen virtual interfaces diff --git a/stage1/02-net-tweaks/00-patches/series b/stage1/02-net-tweaks/00-patches/series new file mode 100644 index 0000000..5299ca1 --- /dev/null +++ b/stage1/02-net-tweaks/00-patches/series @@ -0,0 +1,2 @@ +01-hosts.diff +02-persistant-net.diff diff --git a/stage1/02-net-tweaks/00-run.sh b/stage1/02-net-tweaks/00-run.sh new file mode 100755 index 0000000..fd6609a --- /dev/null +++ b/stage1/02-net-tweaks/00-run.sh @@ -0,0 +1,9 @@ +#!/bin/bash -e + +install -m 644 files/ipv6.conf ${ROOTFS_DIR}/etc/modprobe.d/ipv6.conf +install -m 644 files/interfaces ${ROOTFS_DIR}/etc/network/interfaces +install -m 644 files/hostname ${ROOTFS_DIR}/etc/hostname + +on_chroot sh -e - << EOF +dpkg-divert --add --local /lib/udev/rules.d/75-persistent-net-generator.rules +EOF diff --git a/stage1/02-net-tweaks/files/hostname b/stage1/02-net-tweaks/files/hostname new file mode 100644 index 0000000..41757af --- /dev/null +++ b/stage1/02-net-tweaks/files/hostname @@ -0,0 +1 @@ +raspberrypi diff --git a/stage1/02-net-tweaks/files/interfaces b/stage1/02-net-tweaks/files/interfaces new file mode 100644 index 0000000..88a8c6a --- /dev/null +++ b/stage1/02-net-tweaks/files/interfaces @@ -0,0 +1,4 @@ +auto lo + +iface lo inet loopback +iface eth0 inet dhcp diff --git a/stage1/02-net-tweaks/files/ipv6.conf b/stage1/02-net-tweaks/files/ipv6.conf new file mode 100644 index 0000000..1a1c1a6 --- /dev/null +++ b/stage1/02-net-tweaks/files/ipv6.conf @@ -0,0 +1,3 @@ +# Don't load ipv6 by default +alias net-pf-10 off +#alias ipv6 off diff --git a/stage1/03-install-packages/00-packages b/stage1/03-install-packages/00-packages new file mode 100644 index 0000000..e8c148c --- /dev/null +++ b/stage1/03-install-packages/00-packages @@ -0,0 +1 @@ +libraspberrypi-bin libraspberrypi0 raspi-config diff --git a/stage1/prerun.sh b/stage1/prerun.sh new file mode 100755 index 0000000..a5ea5f4 --- /dev/null +++ b/stage1/prerun.sh @@ -0,0 +1,4 @@ +#!/bin/bash -e +if [ ! -d ${ROOTFS_DIR} ]; then + copy_previous +fi diff --git a/stage2/00-copies-and-fills/00-run.sh b/stage2/00-copies-and-fills/00-run.sh new file mode 100755 index 0000000..4b3a849 --- /dev/null +++ b/stage2/00-copies-and-fills/00-run.sh @@ -0,0 +1,3 @@ +#!/bin/bash -e + +touch ${ROOTFS_DIR}/spindle_install diff --git a/stage2/00-copies-and-fills/01-packages b/stage2/00-copies-and-fills/01-packages new file mode 100644 index 0000000..283c290 --- /dev/null +++ b/stage2/00-copies-and-fills/01-packages @@ -0,0 +1 @@ +raspi-copies-and-fills diff --git a/stage2/00-copies-and-fills/02-run.sh b/stage2/00-copies-and-fills/02-run.sh new file mode 100755 index 0000000..c579d6a --- /dev/null +++ b/stage2/00-copies-and-fills/02-run.sh @@ -0,0 +1,3 @@ +#!/bin/bash -e + +rm -f ${ROOTFS_DIR}/spindle_install diff --git a/stage2/01-sys-tweaks/00-debconf b/stage2/01-sys-tweaks/00-debconf new file mode 100644 index 0000000..afd3914 --- /dev/null +++ b/stage2/01-sys-tweaks/00-debconf @@ -0,0 +1,32 @@ +# Encoding to use on the console: +# Choices: ARMSCII-8, CP1251, CP1255, CP1256, GEORGIAN-ACADEMY, GEORGIAN-PS, IBM1133, ISIRI-3342, ISO-8859-1, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, KOI8-R, KOI8-U, TIS-620, UTF-8, VISCII +console-setup console-setup/charmap47 select UTF-8 +# Geographic area: +# Choices: Africa, America, Antarctica, Australia, Arctic Ocean, Asia, Atlantic Ocean, Europe, Indian Ocean, Pacific Ocean, System V timezones, US, None of the above +tzdata tzdata/Areas select Etc +# Time zone: +# Choices: GMT, GMT+0, GMT+1, GMT+10, GMT+11, GMT+12, GMT+2, GMT+3, GMT+4, GMT+5, GMT+6, GMT+7, GMT+8, GMT+9, GMT-0, GMT-1, GMT-10, GMT-11, GMT-12, GMT-13, GMT-14, GMT-2, GMT-3, GMT-4, GMT-5, GMT-6, GMT-7, GMT-8, GMT-9, GMT0, Greenwich, UCT, UTC, Universal, Zulu +tzdata tzdata/Zones/Etc select UTC +# Locales to be generated: +# Choices: All locales, aa_DJ ISO-8859-1, aa_DJ.UTF-8 UTF-8, aa_ER UTF-8, aa_ER@saaho UTF-8, aa_ET UTF-8, af_ZA ISO-8859-1, af_ZA.UTF-8 UTF-8, ak_GH UTF-8, am_ET UTF-8, an_ES ISO-8859-15, an_ES.UTF-8 UTF-8, anp_IN UTF-8, ar_AE ISO-8859-6, ar_AE.UTF-8 UTF-8, ar_BH ISO-8859-6, ar_BH.UTF-8 UTF-8, ar_DZ ISO-8859-6, ar_DZ.UTF-8 UTF-8, ar_EG ISO-8859-6, ar_EG.UTF-8 UTF-8, ar_IN UTF-8, ar_IQ ISO-8859-6, ar_IQ.UTF-8 UTF-8, ar_JO ISO-8859-6, ar_JO.UTF-8 UTF-8, ar_KW ISO-8859-6, ar_KW.UTF-8 UTF-8, ar_LB ISO-8859-6, ar_LB.UTF-8 UTF-8, ar_LY ISO-8859-6, ar_LY.UTF-8 UTF-8, ar_MA ISO-8859-6, ar_MA.UTF-8 UTF-8, ar_OM ISO-8859-6, ar_OM.UTF-8 UTF-8, ar_QA ISO-8859-6, ar_QA.UTF-8 UTF-8, ar_SA ISO-8859-6, ar_SA.UTF-8 UTF-8, ar_SD ISO-8859-6, ar_SD.UTF-8 UTF-8, ar_SS UTF-8, ar_SY ISO-8859-6, ar_SY.UTF-8 UTF-8, ar_TN ISO-8859-6, ar_TN.UTF-8 UTF-8, ar_YE ISO-8859-6, ar_YE.UTF-8 UTF-8, as_IN UTF-8, ast_ES ISO-8859-15, ast_ES.UTF-8 UTF-8, ayc_PE UTF-8, az_AZ UTF-8, be_BY CP1251, be_BY.UTF-8 UTF-8, be_BY@latin UTF-8, bem_ZM UTF-8, ber_DZ UTF-8, ber_MA UTF-8, bg_BG CP1251, bg_BG.UTF-8 UTF-8, bho_IN UTF-8, bn_BD UTF-8, bn_IN UTF-8, bo_CN UTF-8, bo_IN UTF-8, br_FR ISO-8859-1, br_FR.UTF-8 UTF-8, br_FR@euro ISO-8859-15, brx_IN UTF-8, bs_BA ISO-8859-2, bs_BA.UTF-8 UTF-8, byn_ER UTF-8, ca_AD ISO-8859-15, ca_AD.UTF-8 UTF-8, ca_ES ISO-8859-1, ca_ES.UTF-8 UTF-8, ca_ES.UTF-8@valencia UTF-8, ca_ES@euro ISO-8859-15, ca_ES@valencia ISO-8859-15, ca_FR ISO-8859-15, ca_FR.UTF-8 UTF-8, ca_IT ISO-8859-15, ca_IT.UTF-8 UTF-8, cmn_TW UTF-8, crh_UA UTF-8, cs_CZ ISO-8859-2, cs_CZ.UTF-8 UTF-8, csb_PL UTF-8, cv_RU UTF-8, cy_GB ISO-8859-14, cy_GB.UTF-8 UTF-8, da_DK ISO-8859-1, da_DK.UTF-8 UTF-8, de_AT ISO-8859-1, de_AT.UTF-8 UTF-8, de_AT@euro ISO-8859-15, de_BE ISO-8859-1, de_BE.UTF-8 UTF-8, de_BE@euro ISO-8859-15, de_CH ISO-8859-1, de_CH.UTF-8 UTF-8, de_DE ISO-8859-1, de_DE.UTF-8 UTF-8, de_DE@euro ISO-8859-15, de_LI.UTF-8 UTF-8, de_LU ISO-8859-1, de_LU.UTF-8 UTF-8, de_LU@euro ISO-8859-15, doi_IN UTF-8, dv_MV UTF-8, dz_BT UTF-8, el_CY ISO-8859-7, el_CY.UTF-8 UTF-8, el_GR ISO-8859-7, el_GR.UTF-8 UTF-8, en_AG UTF-8, en_AU ISO-8859-1, en_AU.UTF-8 UTF-8, en_BW ISO-8859-1, en_BW.UTF-8 UTF-8, en_CA ISO-8859-1, en_CA.UTF-8 UTF-8, en_DK ISO-8859-1, en_DK.ISO-8859-15 ISO-8859-15, en_DK.UTF-8 UTF-8, en_GB ISO-8859-1, en_GB.ISO-8859-15 ISO-8859-15, en_GB.UTF-8 UTF-8, en_HK ISO-8859-1, en_HK.UTF-8 UTF-8, en_IE ISO-8859-1, en_IE.UTF-8 UTF-8, en_IE@euro ISO-8859-15, en_IN UTF-8, en_NG UTF-8, en_NZ ISO-8859-1, en_NZ.UTF-8 UTF-8, en_PH ISO-8859-1, en_PH.UTF-8 UTF-8, en_SG ISO-8859-1, en_SG.UTF-8 UTF-8, en_US ISO-8859-1, en_US.ISO-8859-15 ISO-8859-15, en_US.UTF-8 UTF-8, en_ZA ISO-8859-1, en_ZA.UTF-8 UTF-8, en_ZM UTF-8, en_ZW ISO-8859-1, en_ZW.UTF-8 UTF-8, eo ISO-8859-3, eo.UTF-8 UTF-8, es_AR ISO-8859-1, es_AR.UTF-8 UTF-8, es_BO ISO-8859-1, es_BO.UTF-8 UTF-8, es_CL ISO-8859-1, es_CL.UTF-8 UTF-8, es_CO ISO-8859-1, es_CO.UTF-8 UTF-8, es_CR ISO-8859-1, es_CR.UTF-8 UTF-8, es_CU UTF-8, es_DO ISO-8859-1, es_DO.UTF-8 UTF-8, es_EC ISO-8859-1, es_EC.UTF-8 UTF-8, es_ES ISO-8859-1, es_ES.UTF-8 UTF-8, es_ES@euro ISO-8859-15, es_GT ISO-8859-1, es_GT.UTF-8 UTF-8, es_HN ISO-8859-1, es_HN.UTF-8 UTF-8, es_MX ISO-8859-1, es_MX.UTF-8 UTF-8, es_NI ISO-8859-1, es_NI.UTF-8 UTF-8, es_PA ISO-8859-1, es_PA.UTF-8 UTF-8, es_PE ISO-8859-1, es_PE.UTF-8 UTF-8, es_PR ISO-8859-1, es_PR.UTF-8 UTF-8, es_PY ISO-8859-1, es_PY.UTF-8 UTF-8, es_SV ISO-8859-1, es_SV.UTF-8 UTF-8, es_US ISO-8859-1, es_US.UTF-8 UTF-8, es_UY ISO-8859-1, es_UY.UTF-8 UTF-8, es_VE ISO-8859-1, es_VE.UTF-8 UTF-8, et_EE ISO-8859-1, et_EE.ISO-8859-15 ISO-8859-15, et_EE.UTF-8 UTF-8, eu_ES ISO-8859-1, eu_ES.UTF-8 UTF-8, eu_ES@euro ISO-8859-15, eu_FR ISO-8859-1, eu_FR.UTF-8 UTF-8, eu_FR@euro ISO-8859-15, fa_IR UTF-8, ff_SN UTF-8, fi_FI ISO-8859-1, fi_FI.UTF-8 UTF-8, fi_FI@euro ISO-8859-15, fil_PH UTF-8, fo_FO ISO-8859-1, fo_FO.UTF-8 UTF-8, fr_BE ISO-8859-1, fr_BE.UTF-8 UTF-8, fr_BE@euro ISO-8859-15, fr_CA ISO-8859-1, fr_CA.UTF-8 UTF-8, fr_CH ISO-8859-1, fr_CH.UTF-8 UTF-8, fr_FR ISO-8859-1, fr_FR.UTF-8 UTF-8, fr_FR@euro ISO-8859-15, fr_LU ISO-8859-1, fr_LU.UTF-8 UTF-8, fr_LU@euro ISO-8859-15, fur_IT UTF-8, fy_DE UTF-8, fy_NL UTF-8, ga_IE ISO-8859-1, ga_IE.UTF-8 UTF-8, ga_IE@euro ISO-8859-15, gd_GB ISO-8859-15, gd_GB.UTF-8 UTF-8, gez_ER UTF-8, gez_ER@abegede UTF-8, gez_ET UTF-8, gez_ET@abegede UTF-8, gl_ES ISO-8859-1, gl_ES.UTF-8 UTF-8, gl_ES@euro ISO-8859-15, gu_IN UTF-8, gv_GB ISO-8859-1, gv_GB.UTF-8 UTF-8, ha_NG UTF-8, hak_TW UTF-8, he_IL ISO-8859-8, he_IL.UTF-8 UTF-8, hi_IN UTF-8, hne_IN UTF-8, hr_HR ISO-8859-2, hr_HR.UTF-8 UTF-8, hsb_DE ISO-8859-2, hsb_DE.UTF-8 UTF-8, ht_HT UTF-8, hu_HU ISO-8859-2, hu_HU.UTF-8 UTF-8, hy_AM UTF-8, hy_AM.ARMSCII-8 ARMSCII-8, ia_FR UTF-8, id_ID ISO-8859-1, id_ID.UTF-8 UTF-8, ig_NG UTF-8, ik_CA UTF-8, is_IS ISO-8859-1, is_IS.UTF-8 UTF-8, it_CH ISO-8859-1, it_CH.UTF-8 UTF-8, it_IT ISO-8859-1, it_IT.UTF-8 UTF-8, it_IT@euro ISO-8859-15, iu_CA UTF-8, iw_IL ISO-8859-8, iw_IL.UTF-8 UTF-8, ja_JP.EUC-JP EUC-JP, ja_JP.UTF-8 UTF-8, ka_GE GEORGIAN-PS, ka_GE.UTF-8 UTF-8, kk_KZ PT154, kk_KZ RK1048, kk_KZ.UTF-8 UTF-8, kl_GL ISO-8859-1, kl_GL.UTF-8 UTF-8, km_KH UTF-8, kn_IN UTF-8, ko_KR.EUC-KR EUC-KR, ko_KR.UTF-8 UTF-8, kok_IN UTF-8, ks_IN UTF-8, ks_IN@devanagari UTF-8, ku_TR ISO-8859-9, ku_TR.UTF-8 UTF-8, kw_GB ISO-8859-1, kw_GB.UTF-8 UTF-8, ky_KG UTF-8, lb_LU UTF-8, lg_UG ISO-8859-10, lg_UG.UTF-8 UTF-8, li_BE UTF-8, li_NL UTF-8, lij_IT UTF-8, lo_LA UTF-8, lt_LT ISO-8859-13, lt_LT.UTF-8 UTF-8, lv_LV ISO-8859-13, lv_LV.UTF-8 UTF-8, lzh_TW UTF-8, mag_IN UTF-8, mai_IN UTF-8, mg_MG ISO-8859-15, mg_MG.UTF-8 UTF-8, mhr_RU UTF-8, mi_NZ ISO-8859-13, mi_NZ.UTF-8 UTF-8, mk_MK ISO-8859-5, mk_MK.UTF-8 UTF-8, ml_IN UTF-8, mn_MN UTF-8, mni_IN UTF-8, mr_IN UTF-8, ms_MY ISO-8859-1, ms_MY.UTF-8 UTF-8, mt_MT ISO-8859-3, mt_MT.UTF-8 UTF-8, my_MM UTF-8, nan_TW UTF-8, nan_TW@latin UTF-8, nb_NO ISO-8859-1, nb_NO.UTF-8 UTF-8, nds_DE UTF-8, nds_NL UTF-8, ne_NP UTF-8, nhn_MX UTF-8, niu_NU UTF-8, niu_NZ UTF-8, nl_AW UTF-8, nl_BE ISO-8859-1, nl_BE.UTF-8 UTF-8, nl_BE@euro ISO-8859-15, nl_NL ISO-8859-1, nl_NL.UTF-8 UTF-8, nl_NL@euro ISO-8859-15, nn_NO ISO-8859-1, nn_NO.UTF-8 UTF-8, nr_ZA UTF-8, nso_ZA UTF-8, oc_FR ISO-8859-1, oc_FR.UTF-8 UTF-8, om_ET UTF-8, om_KE ISO-8859-1, om_KE.UTF-8 UTF-8, or_IN UTF-8, os_RU UTF-8, pa_IN UTF-8, pa_PK UTF-8, pap_AN UTF-8, pap_AW UTF-8, pap_CW UTF-8, pl_PL ISO-8859-2, pl_PL.UTF-8 UTF-8, ps_AF UTF-8, pt_BR ISO-8859-1, pt_BR.UTF-8 UTF-8, pt_PT ISO-8859-1, pt_PT.UTF-8 UTF-8, pt_PT@euro ISO-8859-15, quz_PE UTF-8, ro_RO ISO-8859-2, ro_RO.UTF-8 UTF-8, ru_RU ISO-8859-5, ru_RU.CP1251 CP1251, ru_RU.KOI8-R KOI8-R, ru_RU.UTF-8 UTF-8, ru_UA KOI8-U, ru_UA.UTF-8 UTF-8, rw_RW UTF-8, sa_IN UTF-8, sat_IN UTF-8, sc_IT UTF-8, sd_IN UTF-8, sd_IN@devanagari UTF-8, se_NO UTF-8, shs_CA UTF-8, si_LK UTF-8, sid_ET UTF-8, sk_SK ISO-8859-2, sk_SK.UTF-8 UTF-8, sl_SI ISO-8859-2, sl_SI.UTF-8 UTF-8, so_DJ ISO-8859-1, so_DJ.UTF-8 UTF-8, so_ET UTF-8, so_KE ISO-8859-1, so_KE.UTF-8 UTF-8, so_SO ISO-8859-1, so_SO.UTF-8 UTF-8, sq_AL ISO-8859-1, sq_AL.UTF-8 UTF-8, sq_MK UTF-8, sr_ME UTF-8, sr_RS UTF-8, sr_RS@latin UTF-8, ss_ZA UTF-8, st_ZA ISO-8859-1, st_ZA.UTF-8 UTF-8, sv_FI ISO-8859-1, sv_FI.UTF-8 UTF-8, sv_FI@euro ISO-8859-15, sv_SE ISO-8859-1, sv_SE.ISO-8859-15 ISO-8859-15, sv_SE.UTF-8 UTF-8, sw_KE UTF-8, sw_TZ UTF-8, szl_PL UTF-8, ta_IN UTF-8, ta_LK UTF-8, te_IN UTF-8, tg_TJ KOI8-T, tg_TJ.UTF-8 UTF-8, th_TH TIS-620, th_TH.UTF-8 UTF-8, the_NP UTF-8, ti_ER UTF-8, ti_ET UTF-8, tig_ER UTF-8, tk_TM UTF-8, tl_PH ISO-8859-1, tl_PH.UTF-8 UTF-8, tn_ZA UTF-8, tr_CY ISO-8859-9, tr_CY.UTF-8 UTF-8, tr_TR ISO-8859-9, tr_TR.UTF-8 UTF-8, ts_ZA UTF-8, tt_RU UTF-8, tt_RU@iqtelif UTF-8, ug_CN UTF-8, uk_UA KOI8-U, uk_UA.UTF-8 UTF-8, unm_US UTF-8, ur_IN UTF-8, ur_PK UTF-8, uz_UZ ISO-8859-1, uz_UZ.UTF-8 UTF-8, uz_UZ@cyrillic UTF-8, ve_ZA UTF-8, vi_VN UTF-8, wa_BE ISO-8859-1, wa_BE.UTF-8 UTF-8, wa_BE@euro ISO-8859-15, wae_CH UTF-8, wal_ET UTF-8, wo_SN UTF-8, xh_ZA ISO-8859-1, xh_ZA.UTF-8 UTF-8, yi_US CP1255, yi_US.UTF-8 UTF-8, yo_NG UTF-8, yue_HK UTF-8, zh_CN GB2312, zh_CN.GB18030 GB18030, zh_CN.GBK GBK, zh_CN.UTF-8 UTF-8, zh_HK BIG5-HKSCS, zh_HK.UTF-8 UTF-8, zh_SG GB2312, zh_SG.GBK GBK, zh_SG.UTF-8 UTF-8, zh_TW BIG5, zh_TW.EUC-TW EUC-TW, zh_TW.UTF-8 UTF-8, zu_ZA ISO-8859-1, zu_ZA.UTF-8 UTF-8 +locales locales/locales_to_be_generated multiselect en_GB.UTF-8 UTF-8 +# Default locale for the system environment: +# Choices: None, C.UTF-8, en_GB.UTF-8 +locales locales/default_environment_locale select en_GB.UTF-8 +# Key to function as AltGr: +# Choices: The default for the keyboard layout, No AltGr key, Right Alt (AltGr), Right Control, Right Logo key, Menu key, Left Alt, Left Logo key, Keypad Enter key, Both Logo keys, Both Alt keys +keyboard-configuration keyboard-configuration/altgr select The default for the keyboard layout +# Keyboard model: +# Choices: A4Tech KB-21, A4Tech KBS-8, A4Tech Wireless Desktop RFKB-23, Acer AirKey V, Acer C300, Acer Ferrari 4000, Acer Laptop, Advance Scorpius KI, Amiga, Apple, Apple Aluminium Keyboard (ANSI), Apple Aluminium Keyboard (ISO), Apple Aluminium Keyboard (JIS), Apple Laptop, Asus Laptop, Atari TT, Azona RF2300 wireless Internet Keyboard, BTC 5090, BTC 5113RF Multimedia, BTC 5126T, BTC 6301URF, BTC 9000, BTC 9000A, BTC 9001AH, BTC 9019U, BTC 9116U Mini Wireless Internet and Gaming, BenQ X-Touch, BenQ X-Touch 730, BenQ X-Touch 800, Brother Internet Keyboard, Cherry B.UNLIMITED, Cherry Blue Line CyBo@rd, Cherry Blue Line CyBo@rd (alternate option), Cherry CyBo@rd USB-Hub, Cherry CyMotion Expert, Cherry CyMotion Master Linux, Cherry CyMotion Master XPress, Chicony Internet Keyboard, Chicony KB-9885, Chicony KU-0108, Chicony KU-0420, Classmate PC, Compaq Easy Access Keyboard, Compaq Internet Keyboard (13 keys), Compaq Internet Keyboard (18 keys), Compaq Internet Keyboard (7 keys), Compaq iPaq Keyboard, Creative Desktop Wireless 7000, DTK2000, Dell, Dell 101-key PC, Dell Laptop/notebook Inspiron 6xxx/8xxx, Dell Laptop/notebook Precision M series, Dell Latitude series laptop, Dell Precision M65, Dell SK-8125, Dell SK-8135, Dell USB Multimedia Keyboard, Dexxa Wireless Desktop Keyboard, Diamond 9801 / 9802 series, Ennyah DKB-1008, Everex STEPnote, FL90, Fujitsu-Siemens Computers AMILO laptop, Generic 101-key PC, Generic 102-key (Intl) PC, Generic 104-key PC, Generic 105-key (Intl) PC, Genius Comfy KB-12e, Genius Comfy KB-16M / Genius MM Keyboard KWD-910, Genius Comfy KB-21e-Scroll, Genius KB-19e NB, Genius KKB-2050HS, Gyration, HTC Dream, Happy Hacking Keyboard, Happy Hacking Keyboard for Mac, Hewlett-Packard Internet Keyboard, Hewlett-Packard Mini 110 Notebook, Hewlett-Packard Omnibook 500 FA, Hewlett-Packard Omnibook 5xx, Hewlett-Packard Omnibook 6000/6100, Hewlett-Packard Omnibook XE3 GC, Hewlett-Packard Omnibook XE3 GF, Hewlett-Packard Omnibook XT1000, Hewlett-Packard Pavilion ZT11xx, Hewlett-Packard Pavilion dv5, Hewlett-Packard SK-250x Multimedia Keyboard, Hewlett-Packard nx9020, Honeywell Euroboard, Htc Dream phone, IBM Rapid Access, IBM Rapid Access II, IBM Space Saver, IBM ThinkPad 560Z/600/600E/A22E, IBM ThinkPad R60/T60/R61/T61, IBM ThinkPad Z60m/Z60t/Z61m/Z61t, Keytronic FlexPro, Kinesis, Laptop/notebook Compaq (eg. Armada) Laptop Keyboard, Laptop/notebook Compaq (eg. Presario) Internet Keyboard, Laptop/notebook eMachines m68xx, Logitech Access Keyboard, Logitech Cordless Desktop, Logitech Cordless Desktop (alternate option), Logitech Cordless Desktop EX110, Logitech Cordless Desktop LX-300, Logitech Cordless Desktop Navigator, Logitech Cordless Desktop Optical, Logitech Cordless Desktop Pro (alternate option 2), Logitech Cordless Desktop iTouch, Logitech Cordless Freedom/Desktop Navigator, Logitech G15 extra keys via G15daemon, Logitech Generic Keyboard, Logitech Internet 350 Keyboard, Logitech Internet Keyboard, Logitech Internet Navigator Keyboard, Logitech Media Elite Keyboard, Logitech Ultra-X Cordless Media Desktop Keyboard, Logitech Ultra-X Keyboard, Logitech diNovo Edge Keyboard, Logitech diNovo Keyboard, Logitech iTouch, Logitech iTouch Cordless Keyboard (model Y-RB6), Logitech iTouch Internet Navigator Keyboard SE, Logitech iTouch Internet Navigator Keyboard SE (USB), MacBook/MacBook Pro, MacBook/MacBook Pro (Intl), Macintosh, Macintosh Old, Memorex MX1998, Memorex MX2500 EZ-Access Keyboard, Memorex MX2750, Microsoft Comfort Curve Keyboard 2000, Microsoft Internet Keyboard, Microsoft Internet Keyboard Pro\, Swedish, Microsoft Natural, Microsoft Natural Keyboard Elite, Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro, Microsoft Natural Keyboard Pro OEM, Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro, Microsoft Natural Wireless Ergonomic Keyboard 4000, Microsoft Natural Wireless Ergonomic Keyboard 7000, Microsoft Office Keyboard, Microsoft Wireless Multimedia Keyboard 1.0A, Northgate OmniKey 101, OLPC, Ortek MCK-800 MM/Internet keyboard, PC-98xx Series, Propeller Voyager (KTEZ-1000), QTronix Scorpius 98N+, SILVERCREST Multimedia Wireless Keyboard, SK-1300, SK-2500, SK-6200, SK-7100, SVEN Ergonomic 2500, SVEN Slim 303, Samsung SDM 4500P, Samsung SDM 4510P, Sanwa Supply SKB-KG3, Sun Type 4, Sun Type 5, Sun Type 6 (Japanese layout), Sun Type 6 USB (Japanese layout), Sun Type 6 USB (Unix layout), Sun Type 6/7 USB, Sun Type 6/7 USB (European layout), Sun Type 7 USB, Sun Type 7 USB (European layout), Sun Type 7 USB (Japanese layout) / Japanese 106-key, Sun Type 7 USB (Unix layout), Super Power Multimedia Keyboard, Symplon PaceBook (tablet PC), Targa Visionary 811, Toshiba Satellite S3000, Trust Direct Access Keyboard, Trust Slimline, Trust Wireless Keyboard Classic, TypeMatrix EZ-Reach 2020, TypeMatrix EZ-Reach 2030 PS2, TypeMatrix EZ-Reach 2030 USB, TypeMatrix EZ-Reach 2030 USB (102/105:EU mode), TypeMatrix EZ-Reach 2030 USB (106:JP mode), Unitek KB-1925, ViewSonic KU-306 Internet Keyboard, Winbook Model XP5, Yahoo! Internet Keyboard +keyboard-configuration keyboard-configuration/model select Generic 105-key (Intl) PC +# Keymap to use: +# Choices: American English, Albanian, Arabic, Asturian, Bangladesh, Belarusian, Bengali, Belgian, Bosnian, Brazilian, British English, Bulgarian, Bulgarian (phonetic layout), Burmese, Canadian French, Canadian Multilingual, Catalan, Chinese, Croatian, Czech, Danish, Dutch, Dvorak, Dzongkha, Esperanto, Estonian, Ethiopian, Finnish, French, Georgian, German, Greek, Gujarati, Gurmukhi, Hebrew, Hindi, Hungarian, Icelandic, Irish, Italian, Japanese, Kannada, Kazakh, Khmer, Kirghiz, Korean, Kurdish (F layout), Kurdish (Q layout), Lao, Latin American, Latvian, Lithuanian, Macedonian, Malayalam, Nepali, Northern Sami, Norwegian, Persian, Philippines, Polish, Portuguese, Punjabi, Romanian, Russian, Serbian (Cyrillic), Sindhi, Sinhala, Slovak, Slovenian, Spanish, Swedish, Swiss French, Swiss German, Tajik, Tamil, Telugu, Thai, Tibetan, Turkish (F layout), Turkish (Q layout), Ukrainian, Uyghur, Vietnamese +keyboard-configuration keyboard-configuration/xkb-keymap select gb +# Compose key: +# Choices: No compose key, Right Alt (AltGr), Right Control, Right Logo key, Menu key, Left Logo key, Caps Lock +keyboard-configuration keyboard-configuration/compose select No compose key +# Use Control+Alt+Backspace to terminate the X server? +keyboard-configuration keyboard-configuration/ctrl_alt_bksp boolean true +# Keyboard layout: +# Choices: English (UK), English (UK) - English (UK\, Colemak), English (UK) - English (UK\, Dvorak with UK punctuation), English (UK) - English (UK\, Dvorak), English (UK) - English (UK\, Macintosh international), English (UK) - English (UK\, Macintosh), English (UK) - English (UK\, extended WinKeys), English (UK) - English (UK\, international with dead keys), Other +keyboard-configuration keyboard-configuration/variant select English (UK) diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages new file mode 100644 index 0000000..583a936 --- /dev/null +++ b/stage2/01-sys-tweaks/00-packages @@ -0,0 +1,15 @@ +ssh locales less fbset sudo psmisc strace module-init-tools ed ncdu crda +console-setup keyboard-configuration debconf-utils parted unzip +build-essential manpages-dev python bash-completion gdb pkg-config +python-rpi.gpio v4l-utils +avahi-daemon +lua5.1 +luajit +hardlink ca-certificates curl +fake-hwclock ntp nfs-common usbutils +libraspberrypi-dev libraspberrypi-doc libfreetype6-dev +dosfstools +dphys-swapfile +raspberrypi-sys-mods +pi-bluetooth +apt-listchanges diff --git a/stage2/01-sys-tweaks/00-packages-nr b/stage2/01-sys-tweaks/00-packages-nr new file mode 100644 index 0000000..5acef54 --- /dev/null +++ b/stage2/01-sys-tweaks/00-packages-nr @@ -0,0 +1 @@ +cifs-utils diff --git a/stage2/01-sys-tweaks/00-patches/00-sudoers.diff b/stage2/01-sys-tweaks/00-patches/00-sudoers.diff new file mode 100644 index 0000000..3fda3d3 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/00-sudoers.diff @@ -0,0 +1,10 @@ +Index: jessie-stage2/rootfs/etc/sudoers +=================================================================== +--- jessie-stage2.orig/rootfs/etc/sudoers ++++ jessie-stage2/rootfs/etc/sudoers +@@ -25,3 +25,5 @@ root ALL=(ALL:ALL) ALL + # See sudoers(5) for more information on "#include" directives: + + #includedir /etc/sudoers.d ++ ++pi ALL=(ALL) NOPASSWD: ALL diff --git a/stage2/01-sys-tweaks/00-patches/01-useradd.diff b/stage2/01-sys-tweaks/00-patches/01-useradd.diff new file mode 100644 index 0000000..e81ad5a --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/01-useradd.diff @@ -0,0 +1,22 @@ +Index: jessie-stage2/rootfs/etc/default/useradd +=================================================================== +--- jessie-stage2.orig/rootfs/etc/default/useradd ++++ jessie-stage2/rootfs/etc/default/useradd +@@ -5,7 +5,7 @@ + # Similar to DHSELL in adduser. However, we use "sh" here because + # useradd is a low level utility and should be as general + # as possible +-SHELL=/bin/sh ++SHELL=/bin/bash + # + # The default group for users + # 100=users on Debian systems +@@ -29,7 +29,7 @@ SHELL=/bin/sh + # The SKEL variable specifies the directory containing "skeletal" user + # files; in other words, files such as a sample .profile that will be + # copied to the new user's home directory when it is created. +-# SKEL=/etc/skel ++SKEL=/etc/skel + # + # Defines whether the mail spool should be created while + # creating the account diff --git a/stage2/01-sys-tweaks/00-patches/02-swap.diff b/stage2/01-sys-tweaks/00-patches/02-swap.diff new file mode 100644 index 0000000..745a344 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/02-swap.diff @@ -0,0 +1,13 @@ +Index: jessie-stage2/rootfs/etc/dphys-swapfile +=================================================================== +--- jessie-stage2.orig/rootfs/etc/dphys-swapfile ++++ jessie-stage2/rootfs/etc/dphys-swapfile +@@ -13,7 +13,7 @@ + + # set size to absolute value, leaving empty (default) then uses computed value + # you most likely don't want this, unless you have an special disk situation +-#CONF_SWAPSIZE= ++CONF_SWAPSIZE=100 + + # set size to computed value, this times RAM size, dynamically adapts, + # guarantees that there is enough swap without wasting disk space on excess diff --git a/stage2/01-sys-tweaks/00-patches/03-console-setup.diff b/stage2/01-sys-tweaks/00-patches/03-console-setup.diff new file mode 100644 index 0000000..61c4e52 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/03-console-setup.diff @@ -0,0 +1,17 @@ +Index: jessie-stage2/rootfs/etc/default/console-setup +=================================================================== +--- jessie-stage2.orig/rootfs/etc/default/console-setup ++++ jessie-stage2/rootfs/etc/default/console-setup +@@ -6,9 +6,9 @@ ACTIVE_CONSOLES="/dev/tty[1-6]" + + CHARMAP="UTF-8" + +-CODESET="Lat15" +-FONTFACE="Fixed" +-FONTSIZE="8x16" ++CODESET="guess" ++FONTFACE="" ++FONTSIZE="" + + VIDEOMODE= + diff --git a/stage2/01-sys-tweaks/00-patches/04-inputrc.diff b/stage2/01-sys-tweaks/00-patches/04-inputrc.diff new file mode 100644 index 0000000..c81fa62 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/04-inputrc.diff @@ -0,0 +1,12 @@ +Index: jessie-stage2/rootfs/etc/inputrc +=================================================================== +--- jessie-stage2.orig/rootfs/etc/inputrc ++++ jessie-stage2/rootfs/etc/inputrc +@@ -65,3 +65,7 @@ $endif + # "\e[F": end-of-line + + $endif ++ ++# mappings for up and down arrows search history ++# "\e[B": history-search-forward ++# "\e[A": history-search-backward diff --git a/stage2/01-sys-tweaks/00-patches/05-path.diff b/stage2/01-sys-tweaks/00-patches/05-path.diff new file mode 100644 index 0000000..25b80a1 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/05-path.diff @@ -0,0 +1,26 @@ +Index: jessie-stage2/rootfs/etc/login.defs +=================================================================== +--- jessie-stage2.orig/rootfs/etc/login.defs ++++ jessie-stage2/rootfs/etc/login.defs +@@ -100,7 +100,7 @@ HUSHLOGIN_FILE .hushlogin + # + # (they are minimal, add the rest in the shell startup files) + ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +-ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games ++ENV_PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games + + # + # Terminal permissions +Index: jessie-stage2/rootfs/etc/profile +=================================================================== +--- jessie-stage2.orig/rootfs/etc/profile ++++ jessie-stage2/rootfs/etc/profile +@@ -4,7 +4,7 @@ + if [ "`id -u`" -eq 0 ]; then + PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + else +- PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" ++ PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" + fi + export PATH + diff --git a/stage2/01-sys-tweaks/00-patches/06-rc_local.diff b/stage2/01-sys-tweaks/00-patches/06-rc_local.diff new file mode 100644 index 0000000..98b44b8 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/06-rc_local.diff @@ -0,0 +1,15 @@ +Index: jessie-stage2/rootfs/etc/rc.local +=================================================================== +--- jessie-stage2.orig/rootfs/etc/rc.local ++++ jessie-stage2/rootfs/etc/rc.local +@@ -11,4 +11,10 @@ + # + # By default this script does nothing. + ++# Print the IP address ++_IP=$(hostname -I) || true ++if [ "$_IP" ]; then ++ printf "My IP address is %s\n" "$_IP" ++fi ++ + exit 0 diff --git a/stage2/01-sys-tweaks/00-patches/07-resize-init.diff b/stage2/01-sys-tweaks/00-patches/07-resize-init.diff new file mode 100644 index 0000000..97f7c19 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/07-resize-init.diff @@ -0,0 +1,5 @@ +--- a/rootfs/boot/cmdline.txt ++++ b/rootfs/boot/cmdline.txt +@@ -1 +1 @@ +-dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ++dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh diff --git a/stage2/01-sys-tweaks/00-patches/series b/stage2/01-sys-tweaks/00-patches/series new file mode 100644 index 0000000..b1381c8 --- /dev/null +++ b/stage2/01-sys-tweaks/00-patches/series @@ -0,0 +1,8 @@ +00-sudoers.diff +01-useradd.diff +02-swap.diff +03-console-setup.diff +04-inputrc.diff +05-path.diff +06-rc_local.diff +07-resize-init.diff diff --git a/stage2/01-sys-tweaks/01-run.sh b/stage2/01-sys-tweaks/01-run.sh new file mode 100755 index 0000000..2813047 --- /dev/null +++ b/stage2/01-sys-tweaks/01-run.sh @@ -0,0 +1,41 @@ +#!/bin/bash -e + +install -m 755 files/regenerate_ssh_host_keys ${ROOTFS_DIR}/etc/init.d/ +install -m 755 files/apply_noobs_os_config ${ROOTFS_DIR}/etc/init.d/ +install -m 755 files/resize2fs_once ${ROOTFS_DIR}/etc/init.d/ + +install -d ${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d +install -m 644 files/ttyoutput.conf ${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d/ + +install -m 644 files/50raspi ${ROOTFS_DIR}/etc/apt/apt.conf.d/ +install -m 644 files/98-rpi.conf ${ROOTFS_DIR}/etc/sysctl.d/ + + +on_chroot sh -e - <&2 + exit 3 + ;; +esac diff --git a/stage2/01-sys-tweaks/files/regenerate_ssh_host_keys b/stage2/01-sys-tweaks/files/regenerate_ssh_host_keys new file mode 100644 index 0000000..b6c3f83 --- /dev/null +++ b/stage2/01-sys-tweaks/files/regenerate_ssh_host_keys @@ -0,0 +1,36 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: regenerate_ssh_host_keys +# Required-Start: +# Required-Stop: +# Default-Start: 2 +# Default-Stop: +# Short-Description: Regenerate ssh host keys +# Description: +### END INIT INFO + +. /lib/lsb/init-functions + +set -e + +case "$1" in + start) + log_daemon_msg "Regenerating ssh host keys (in background)" + nohup sh -c "if [ -e /dev/hwrng ]; then + dd if=/dev/hwrng of=/dev/urandom count=1 bs=4096 + fi; \ + yes | ssh-keygen -q -N '' -t dsa -f /etc/ssh/ssh_host_dsa_key && \ + yes | ssh-keygen -q -N '' -t rsa -f /etc/ssh/ssh_host_rsa_key && \ + yes | ssh-keygen -q -N '' -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key && \ + yes | ssh-keygen -q -N '' -t ed25519 -f /etc/ssh/ssh_host_ed25519_key && \ + systemctl enable ssh && sync && \ + rm /etc/init.d/regenerate_ssh_host_keys && \ + update-rc.d regenerate_ssh_host_keys remove && \ + printf '\nfinished\n' && systemctl start ssh" > /var/log/regen_ssh_keys.log 2>&1 & + log_end_msg $? + ;; + *) + echo "Usage: $0 start" >&2 + exit 3 + ;; +esac diff --git a/stage2/01-sys-tweaks/files/resize2fs_once b/stage2/01-sys-tweaks/files/resize2fs_once new file mode 100644 index 0000000..7236921 --- /dev/null +++ b/stage2/01-sys-tweaks/files/resize2fs_once @@ -0,0 +1,25 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: resize2fs_once +# Required-Start: +# Required-Stop: +# Default-Start: 3 +# Default-Stop: +# Short-Description: Resize the root filesystem to fill partition +# Description: +### END INIT INFO +. /lib/lsb/init-functions +case "$1" in + start) + log_daemon_msg "Starting resize2fs_once" + ROOT_DEV=`grep -Eo 'root=[[:graph:]]+' /proc/cmdline | cut -d '=' -f 2-` && + resize2fs $ROOT_DEV && + update-rc.d resize2fs_once remove && + rm /etc/init.d/resize2fs_once && + log_end_msg $? + ;; + *) + echo "Usage: $0 start" >&2 + exit 3 + ;; +esac diff --git a/stage2/01-sys-tweaks/files/ttyoutput.conf b/stage2/01-sys-tweaks/files/ttyoutput.conf new file mode 100644 index 0000000..6a396a4 --- /dev/null +++ b/stage2/01-sys-tweaks/files/ttyoutput.conf @@ -0,0 +1,2 @@ +[Service] +StandardOutput=tty diff --git a/stage2/02-net-tweaks/00-packages b/stage2/02-net-tweaks/00-packages new file mode 100644 index 0000000..14e534b --- /dev/null +++ b/stage2/02-net-tweaks/00-packages @@ -0,0 +1,2 @@ +wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-ralink firmware-realtek +dhcpcd5 diff --git a/stage2/02-net-tweaks/00-patches/00-interfaces.diff b/stage2/02-net-tweaks/00-patches/00-interfaces.diff new file mode 100644 index 0000000..74e671f --- /dev/null +++ b/stage2/02-net-tweaks/00-patches/00-interfaces.diff @@ -0,0 +1,27 @@ +Index: jessie-stage2/rootfs/etc/network/interfaces +=================================================================== +--- jessie-stage2.orig/rootfs/etc/network/interfaces ++++ jessie-stage2/rootfs/etc/network/interfaces +@@ -1,4 +1,20 @@ +-auto lo ++# interfaces(5) file used by ifup(8) and ifdown(8) ++ ++# Please note that this file is written to be used with dhcpcd ++# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' + ++# Include files from /etc/network/interfaces.d: ++source-directory /etc/network/interfaces.d ++ ++auto lo + iface lo inet loopback +-iface eth0 inet dhcp ++ ++iface eth0 inet manual ++ ++allow-hotplug wlan0 ++iface wlan0 inet manual ++ wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf ++ ++allow-hotplug wlan1 ++iface wlan1 inet manual ++ wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf diff --git a/stage2/02-net-tweaks/00-patches/series b/stage2/02-net-tweaks/00-patches/series new file mode 100644 index 0000000..e954151 --- /dev/null +++ b/stage2/02-net-tweaks/00-patches/series @@ -0,0 +1 @@ +00-interfaces.diff diff --git a/stage2/02-net-tweaks/01-run.sh b/stage2/02-net-tweaks/01-run.sh new file mode 100755 index 0000000..a96b556 --- /dev/null +++ b/stage2/02-net-tweaks/01-run.sh @@ -0,0 +1,8 @@ +#!/bin/bash -e + +install -v -d ${ROOTFS_DIR}/etc/systemd/system/dhcpcd.service.d +install -v -m 644 files/wait.conf ${ROOTFS_DIR}/etc/systemd/system/dhcpcd.service.d/ + +install -v -d ${ROOTFS_DIR}/etc/wpa_supplicant +install -v -m 600 files/wpa_supplicant.conf ${ROOTFS_DIR}/etc/wpa_supplicant/ + diff --git a/stage2/02-net-tweaks/files/wait.conf b/stage2/02-net-tweaks/files/wait.conf new file mode 100644 index 0000000..30aa48c --- /dev/null +++ b/stage2/02-net-tweaks/files/wait.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=/sbin/dhcpcd -q -w diff --git a/stage2/02-net-tweaks/files/wpa_supplicant.conf b/stage2/02-net-tweaks/files/wpa_supplicant.conf new file mode 100644 index 0000000..c58b871 --- /dev/null +++ b/stage2/02-net-tweaks/files/wpa_supplicant.conf @@ -0,0 +1,3 @@ +country=GB +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev +update_config=1 diff --git a/stage2/03-cleanup/00-run.sh b/stage2/03-cleanup/00-run.sh new file mode 100755 index 0000000..97bfb08 --- /dev/null +++ b/stage2/03-cleanup/00-run.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +on_chroot sh -e - < files/python_games.hash +fi + +ln -sf pip3 ${ROOTFS_DIR}/usr/bin/pip-3.2 + +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/python_games +tar xvf files/python_games.tar.gz -C ${ROOTFS_DIR}/home/pi/python_games --strip-components=1 +chown 1000:1000 ${ROOTFS_DIR}/home/pi/python_games -Rv +chmod +x ${ROOTFS_DIR}/home/pi/python_games/launcher.sh + +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/Documents" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/Documents/BlueJ Projects" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/Documents/Greenfoot Projects" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/Documents/Scratch Projects" + +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/.local" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/.local/share" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/.local/share/applications" + +rsync -a --chown=1000:1000 ${ROOTFS_DIR}/usr/share/doc/BlueJ/ "${ROOTFS_DIR}/home/pi/Documents/BlueJ Projects" +rsync -a --chown=1000:1000 ${ROOTFS_DIR}/usr/share/doc/Greenfoot/ "${ROOTFS_DIR}/home/pi/Documents/Greenfoot Projects" +rsync -a --chown=1000:1000 ${ROOTFS_DIR}/usr/share/scratch/Projects/Demos/ "${ROOTFS_DIR}/home/pi/Documents/Scratch Projects" + +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config/pcmanfm +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config/pcmanfm/LXDE-pi +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config/openbox +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config/lxsession +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.themes +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config/gtk-3.0 +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/.config/lxpanel +install -v -o 1000 -g 1000 -d ${ROOTFS_DIR}/home/pi/Desktop + +install -v -m 644 -o 1000 -g 1000 ${ROOTFS_DIR}/etc/xdg/pcmanfm/LXDE-pi/pcmanfm.conf ${ROOTFS_DIR}/home/pi/.config/pcmanfm/LXDE-pi/ +install -v -m 644 -o 1000 -g 1000 ${ROOTFS_DIR}/etc/xdg/pcmanfm/LXDE-pi/desktop-items-0.conf ${ROOTFS_DIR}/home/pi/.config/pcmanfm/LXDE-pi/ + +install -v -m 644 -o 1000 -g 1000 ${ROOTFS_DIR}/etc/xdg/openbox/lxde-pi-rc.xml ${ROOTFS_DIR}/home/pi/.config/openbox/ + +rsync -a --chown=1000:1000 ${ROOTFS_DIR}/etc/xdg/lxsession/LXDE-pi ${ROOTFS_DIR}/home/pi/.config/lxsession/ +rsync -a --chown=1000:1000 ${ROOTFS_DIR}/usr/share/themes/PiX ${ROOTFS_DIR}/home/pi/.themes/ + +install -v -m 644 -o 1000 -g 1000 ${ROOTFS_DIR}/usr/share/raspi-ui-overrides/gtk.css ${ROOTFS_DIR}/home/pi/.config/gtk-3.0/ + +install -v -m 644 -o 1000 -g 1000 ${ROOTFS_DIR}/usr/share/raspi-ui-overrides/Trolltech.conf ${ROOTFS_DIR}/home/pi/.config/ + +install -v -m 644 -o 1000 -g 1000 ${ROOTFS_DIR}/etc/xdg/lxpanel/launchtaskbar.cfg ${ROOTFS_DIR}/home/pi/.config/lxpanel/ +rsync -a --chown=1000:1000 ${ROOTFS_DIR}/etc/xdg/lxpanel/profile/LXDE-pi ${ROOTFS_DIR}/home/pi/.config/lxpanel/ diff --git a/stage4/02-extras/files/.gitignore b/stage4/02-extras/files/.gitignore new file mode 100644 index 0000000..589d776 --- /dev/null +++ b/stage4/02-extras/files/.gitignore @@ -0,0 +1,2 @@ +python_games.hash +python_games.tar.gz diff --git a/stage4/03-cleanup/00-run.sh b/stage4/03-cleanup/00-run.sh new file mode 100755 index 0000000..97bfb08 --- /dev/null +++ b/stage4/03-cleanup/00-run.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +on_chroot sh -e - <