Compare commits

...

31 Commits

Author SHA1 Message Date
B.J. Dweck dd43d98867 Fixed PS1 .bashrc line to include extra slashes 2020-09-25 14:28:41 +02:00
B.J. Dweck 171dc63701 Created a 'seedgen' alias 2020-09-25 14:27:12 +02:00
B.J. Dweck 03890a3973 Tweaked README.md 2020-09-06 16:02:19 +02:00
B.J. Dweck 9556d96872 Bringing this new repo in sync with the stable repo to test the build 2020-09-06 14:08:25 +02:00
B.J. Dweck 3615fdce98 Added suport for bash auto-complete and config options for downloading burrow from the repo 2020-09-03 00:09:46 +02:00
B.J. Dweck fac7876b18 Added suport for bash auto-complete and config options for downloading burrow from the repo 2020-09-03 00:02:54 +02:00
B.J. Dweck 8f3c43116e Set rudefox defaults 2020-09-01 20:42:48 +02:00
B.J. Dweck d58c7244ec Set rudefox defaults 2020-09-01 20:40:26 +02:00
B.J. Dweck d6babca3c7 Changed 'rudefox-cold' to 'burrow' in the MOTD instructions banner 2020-09-01 20:27:56 +02:00
B.J. Dweck 5d9bb8b017 CRITICAL BUILD FIX: needed to export RUDEFOX_BURROW_VERSION in build.sh 2020-09-01 20:27:16 +02:00
B.J. Dweck 2df48bcb6c CRITICAL BUILD FIX: missing " 2020-09-01 20:25:56 +02:00
B.J. Dweck e315c692d9 Added read-only (overlay) filesystem 2020-09-01 19:37:41 +02:00
B.J. Dweck 052631361a Added BURROW motd 2020-09-01 19:37:08 +02:00
B.J. Dweck bc2505a534 Added autologin 2020-09-01 19:36:31 +02:00
B.J. Dweck ff9a6a2f5d Added rudefox-burrow installation 2020-09-01 19:35:57 +02:00
B.J. Dweck 4f80f9a7e4 Added KEYBOARD_MODEL build parameter 2020-09-01 19:27:50 +02:00
B.J. Dweck 0e722a9e71 Remove networking packages and configuration (ssh, wpa, dhcp, cifs, net-tools, etc.) 2020-09-01 19:26:59 +02:00
Serge Schneider d6207a620a Update OS.png 2020-08-24 17:01:54 +01:00
Serge Schneider 78c9e2cf02 Raspbian -> Raspberry Pi OS 2020-08-24 15:47:59 +01:00
Serge Schneider 930d86115d Update release notes 2020-08-24 15:47:59 +01:00
Serge Schneider 9a3a10bf10 stage2: install raspinfo 2020-06-22 05:33:42 +01:00
Serge Schneider f663d4c6d1 Add new changelog entry 2020-06-22 03:54:38 +01:00
Serge Schneider 825107f040 Update release notes 2020-05-19 12:07:30 +01:00
Serge Schneider b9bb59c237 Bookshelf PDF download 2020-05-13 13:15:07 +01:00
DragonEagle 08fc0b9a82
Exposed RELEASE as a configurable variable (#391)
Exposed RELEASE as a configurable variable and updated README.md.  As a
bonus, there is only on place to change the release name when the next
release is stable now.
2020-02-26 13:36:39 +00:00
Leandro Lisboa Penz 8ef3f47d7f
Dockerfile: use --no-install-recommends in apt-get install (#383) 2020-02-20 17:20:29 +00:00
Tim Visée 65f91b8349
BusyBox realpath does not support -s flag, fallback to use no flags (#384)
* BusyBox realpath does not support -s flag, fallback to use no flags

* Fix config sourcing problem
2020-02-20 17:20:03 +00:00
Luigi F. Cruz 38d22e976a
Retry apt downloads 3 times
Fixes #194
2020-02-20 17:18:50 +00:00
Serge Schneider 5f884374b6 Update release notes 2020-02-13 15:47:46 +00:00
Serge Schneider 6d71ac0bf9 Update release notes 2020-02-10 16:59:56 +00:00
Serge Schneider 6b72a64f02 Update release notes 2020-02-07 11:19:19 +00:00
40 changed files with 291 additions and 117 deletions

View File

@ -3,10 +3,11 @@ FROM debian:buster
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y update && \
apt-get -y install \
apt-get -y install --no-install-recommends \
git vim parted \
quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \
bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\
binfmt-support ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY . /pi-gen/

View File

@ -1,7 +1,16 @@
# pi-gen
# Burrow Pi Image
_Tool used to create the raspberrypi.org Raspbian images_
This is a fork of the [pi-gen](https://github.com/RPi-Distro/pi-gen) project, the "tool used to create the raspberrypi.org Raspbian images". `pi-gen` serves as a decent base becuase it:
* Builds compact images that self-inflate on the device during the first boot
* Provides a comfortable development workflow
I modified `pi-gen` with the following features:
* Rudefox Burrow installed
* Auto-login
* Read-only filesystem (as a security measure to prevent you from accidentally storing sensitive information on this low-security hardware)
* Most user-space networking packages removed (kernel still included networking capabilities)
## Dependencies
@ -29,13 +38,26 @@ environment variables.
The following environment variables are supported:
* `IMG_NAME` **required** (Default: unset)
* `IMG_NAME` (Default: `RudefoxBurrow`)
The name of the image to build with the current stage directories. Setting
`IMG_NAME=Raspbian` is logical for an unmodified RPi-Distro/pi-gen build,
but you should use something else for a customized version. Export files
in stages may add suffixes to `IMG_NAME`.
* `RUDEFOX_REPO_USERNAME` (Default: `anonymous`)
If the value is set to `anonymous`, then Burrow is pulled from the publicly available Rudefox repository. Otherwise, the build attempts to login to the Rudefox private repository for access to SNAPSHOT builds using the provided `RUDEFOX_REPO_USERNAME` / `RUDEFOX_REPO_PASSWORD` credentials.
* `RUDEFOX_BURROW_VERSION` (Default: `latest`)
If the value is set to `latest`, then the latest version is pulled from the Rudefox repository and installed. Otherwise, the specified version is downloadedand installed.
* `RELEASE` (Default: buster)
The release version to build images against. Valid values are jessie, stretch
buster, bullseye, and testing.
* `APT_PROXY` (Default: unset)
If you require the use of an apt proxy, set it here. This proxy setting
@ -78,15 +100,23 @@ The following environment variables are supported:
Setting to '1' enables the QEMU mode - creating an image that can be mounted via QEMU for an emulated
environment. These images include "-qemu" in the image file name.
* `LOCALE_DEFAULT` (Default: "en_GB.UTF-8" )
* `LOCALE_DEFAULT` (Default: "en_CA.UTF-8" )
Default system locale.
* `TARGET_HOSTNAME` (Default: "raspberrypi" )
* `TARGET_HOSTNAME` (Default: "burrow" )
Setting the hostname to the specified value.
* `KEYBOARD_KEYMAP` (Default: "gb" )
* `KEYBOARD_MODEL` (Default: "Generic 101-key PC" )
Default keyboard model.
To get the current value from a running system, run `debconf-show
keyboard-configuration` and look at the
`keyboard-configuration/model` value.
* `KEYBOARD_KEYMAP` (Default: "us" )
Default keyboard keymap.
@ -109,11 +139,11 @@ The following environment variables are supported:
To get the current value from a running system, look in
`/etc/timezone`.
* `FIRST_USER_NAME` (Default: "pi" )
* `FIRST_USER_NAME` (Default: "rudefox" )
Username for the first user
* `FIRST_USER_PASS` (Default: "raspberry")
* `FIRST_USER_PASS` (Default: "burrow")
Password for the first user
@ -125,14 +155,17 @@ The following environment variables are supported:
Setting to `1` will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you Raspberry Pi.
* `STAGE_LIST` (Default: `stage*`)
* `STAGE_LIST` (Default: `stage[0-2]`)
If set, then instead of working through the numeric stages in order, this list will be followed. For example setting to `"stage0 stage1 mystage stage2"` will run the contents of `mystage` before stage2. Note that quotes are needed around the list. An absolute or relative path can be given for stages outside the pi-gen directory.
The default setting builds only the "lite" image for Rudefox Burrow, which is all you need.
A simple example for building Raspbian:
If set, then instead of working through the numeric stages in order, this list will be followed. For example setting to `"stage0 stage1 mystage stage2"` will run the contents of `mystage` before stage2. Note that quotes are needed around the list. An absolute or relative path can be given for stages outside the pi-gen directory.
A simple example for building RaspbianBurrow:
```bash
IMG_NAME='Raspbian'
APT_PROXY=http://172.17.10.10:3142
TIMEZONE_DEFAULT="America/Toronto"
```
The config file can also be specified on the command line as an argument the `build.sh` or `build-docker.sh` scripts.

View File

@ -32,7 +32,7 @@ done
# Ensure that the configuration file is an absolute path
if test -x /usr/bin/realpath; then
CONFIG_FILE=$(realpath -s "$CONFIG_FILE")
CONFIG_FILE=$(realpath -s "$CONFIG_FILE" || realpath "$CONFIG_FILE")
fi
# Ensure that the confguration file is present
@ -41,19 +41,13 @@ if test -z "${CONFIG_FILE}"; then
exit 1
else
# shellcheck disable=SC1090
source "${CONFIG_FILE}"
source ${CONFIG_FILE}
fi
CONTAINER_NAME=${CONTAINER_NAME:-pigen_work}
CONTINUE=${CONTINUE:-0}
PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-0}
if [ -z "${IMG_NAME}" ]; then
echo "IMG_NAME not set in 'config'" 1>&2
echo 1>&2
exit 1
fi
# Ensure the Git Hash is recorded before entering the docker container
GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"}

View File

@ -20,7 +20,7 @@ EOF
PACKAGES="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < "${i}-packages-nr")"
if [ -n "$PACKAGES" ]; then
on_chroot << EOF
apt-get install --no-install-recommends -y $PACKAGES
apt-get -o APT::Acquire::Retries=3 install --no-install-recommends -y $PACKAGES
EOF
fi
log "End ${SUB_STAGE_DIR}/${i}-packages-nr"
@ -30,7 +30,7 @@ EOF
PACKAGES="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < "${i}-packages")"
if [ -n "$PACKAGES" ]; then
on_chroot << EOF
apt-get install -y $PACKAGES
apt-get -o APT::Acquire::Retries=3 install -y $PACKAGES
EOF
fi
log "End ${SUB_STAGE_DIR}/${i}-packages"
@ -146,10 +146,10 @@ done
export PI_GEN=${PI_GEN:-pi-gen}
export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen}
if [ -z "${IMG_NAME}" ]; then
echo "IMG_NAME not set" 1>&2
exit 1
fi
export IMG_NAME="${IMG_NAME:-RasbianBurrow}"
export RUDEFOX_REPO_USERNAME="${RUDEFOX_REPO_USERNAME:-anonymous}"
export RUDEFOX_REPO_PASSWORD="${RUDEFOX_REPO_PASSWORD:-default}"
export RUDEFOX_BURROW_VERSION="${RUDEFOX_BURROW_VERSION:-latest}"
export USE_QEMU="${USE_QEMU:-0}"
export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}"
@ -162,18 +162,20 @@ export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"}
export DEPLOY_ZIP="${DEPLOY_ZIP:-1}"
export LOG_FILE="${WORK_DIR}/build.log"
export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi}
export TARGET_HOSTNAME=${TARGET_HOSTNAME:-burrow}
export FIRST_USER_NAME=${FIRST_USER_NAME:-pi}
export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry}
export FIRST_USER_NAME=${FIRST_USER_NAME:-rudefox}
export FIRST_USER_PASS=${FIRST_USER_PASS:-burrow}
export RELEASE=${RELEASE:-buster}
export WPA_ESSID
export WPA_PASSWORD
export WPA_COUNTRY
export ENABLE_SSH="${ENABLE_SSH:-0}"
export LOCALE_DEFAULT="${LOCALE_DEFAULT:-en_GB.UTF-8}"
export LOCALE_DEFAULT="${LOCALE_DEFAULT:-en_CA.UTF-8}"
export KEYBOARD_KEYMAP="${KEYBOARD_KEYMAP:-gb}"
export KEYBOARD_MODEL="${KEYBOARD_MODEL:-Generic 101-key PC}"
export KEYBOARD_KEYMAP="${KEYBOARD_KEYMAP:-us}"
export KEYBOARD_LAYOUT="${KEYBOARD_LAYOUT:-English (UK)}"
export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}"
@ -228,7 +230,7 @@ fi
mkdir -p "${WORK_DIR}"
log "Begin ${BASE_DIR}"
STAGE_LIST=${STAGE_LIST:-${BASE_DIR}/stage*}
STAGE_LIST=${STAGE_LIST:-${BASE_DIR}/stage[0-2]}
for STAGE_DIR in $STAGE_LIST; do
STAGE_DIR=$(realpath "${STAGE_DIR}")

View File

@ -36,6 +36,7 @@ sed "${NOOBS_DIR}/partitions.json" -i -e "s|ROOT_NOM|${ROOT_NOM}|"
sed "${NOOBS_DIR}/os.json" -i -e "s|UNRELEASED|${IMG_DATE}|"
sed "${NOOBS_DIR}/os.json" -i -e "s|NOOBS_NAME|${NOOBS_NAME}|"
sed "${NOOBS_DIR}/os.json" -i -e "s|NOOBS_DESCRIPTION|${NOOBS_DESCRIPTION}|"
sed "${NOOBS_DIR}/os.json" -i -e "s|RELEASE|${RELEASE}|"
sed "${NOOBS_DIR}/release_notes.txt" -i -e "s|UNRELEASED|${IMG_DATE}|"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -16,5 +16,5 @@
],
"url": "http://www.raspbian.org/",
"username": "pi",
"version": "buster"
"version": "RELEASE"
}

View File

@ -1,4 +1,65 @@
UNRELEASED:
*
2020-08-20:
* raspi-config - added selection of boot device order
* raspi-config - added selection of boot EEPROM version
* SD Card Copier - copy is now immediately aborted if drives are connected or disconnected while copying
* Version 32.0.0.414 of Flash player included
* User feedback survey removed from first run of Chromium
* Recommended Software - now allows multiple install and reinstall operations without having to close between each one
* Bug fix - misleading file browser from panel menu icon selection dialog - icons must now be in icon theme rather than arbitrary files
* Bug fix - items in main menu not being translated
* Bug fix - raspi-config not detecting audio devices in non-English locales
* Bug fix - Bookshelf claiming no disk space in non-English locales
* Bug fix - failed installation of both 32 and 64 bit versions of packages by Recommended Software on 64-bit images
* Italian translations added (thanks to Emanuele Goldoni and the Italian translation team)
* Raspberry Pi firmware ef72c17bcaaeb89093d87bcf71f3228e1b5e1fff
* Linux kernel 5.4.51
2020-05-27:
* Added Bookshelf application
* Added Raspberry Pi Diagnostics application
* Added magnifier plugin to taskbar - needs magnifier application installed from Recommended Software to enable
* Added Magnifier application to Recommended Software
* Added marketing questionnaire as initial Chromium tab
* Version 0.25 of Scratch 2 included - uses external application to access IMU on SenseHAT
* Version 1.0.5 of Scratch 3 included - uses external application to access IMU on SenseHAT
* Version 32.0.0.371 of Flash player included
* Version 1.0.6 of Node-RED included
* Version 6.7.1 of VNC Server included
* Version 6.20.113 of VNC Client included
* Internal audio outputs enabled as separate ALSA devices
* MagPi preinstall removed and replaced with Beginners Guide
* MagPi weblink removed from main menu
* Chromium made default application for PDF files
* Common icon loading code for lxpanel plugins used
* Italian translations added
* Initial move of mouse pointer to menu button disabled
* Padding at left of menu button removed
* Focus behaviour changed so that focus moves to desktop if no windows are opened - improves reliability of Orca screen reader
* Bug fix - focus bug in volume plugin
* Bug fix - keyboard repeat interval bug in Mouse & Keyboard Settings
* Bug fix - battery detection bug in battery plugin
* Bug fix - spurious active areas on taskbar when plugins are hidden
* Bug fix - occasional crash in file manager on file selection
* Disk ID is now regenerated on first boot
* Updated udev rules
- Remove unused argon rule
- Add vcsm-cma to video group
- Add pwm to gpio group
* i2cprobe: More flexible I2C/SPI alias mapping
* Raspberry Pi firmware 21e1fe3477ffb708a5736ed61a924fd650031136
* Linux kernel 4.19.118
2020-02-13:
* Raspberry Pi Configuration - screen blanking setting disabled if Xscreensaver is installed
* Bug fix - switch to turn off VNC server in Raspberry Pi Configuration has no effect
* Bug fix - fix %20 characters in file names
* Linux kernel 4.19.97
* Raspberry Pi firmware 9a34efbf2fc6a27231607ce91a7cb6bf3bdbc0c5
- gencmd: Fix measure_clock name for CLOCK_OUTPUT_108
- mmal isp: Remote alignment requirements for RGB24 formats
- Add missing flags for VC_IMAGE_PROP_YUVUV_4K_CHROMA_ALIGN
- platform: Compromise on gpu overclock settings
2020-02-05:
* Version 3.2.6 of Thonny included - significant improvements in speed, particularly when debugging
* Version 1.0.4 of Scratch 3 included - adds new "display stage" and "display sprite" blocks to SenseHAT extension, and loading of files from command line
* Version 32.0.0.314 of Flash player included
@ -21,8 +82,8 @@ UNRELEASED:
* Ctrl-Alt-Del and Ctrl-Alt-End shortcuts added to open shutdown options box
* Ctrl-Shift-Esc shortcut added to open task manager
* Enabled NEON routines in OpenSSL
* Linux kernel 4.19.93
* Raspberry Pi firmware 67392a7a32bddad7f571047fccafca9eeb65d29c
* Linux kernel 4.19.97
* Raspberry Pi firmware 149cd7f0487e08e148efe604f8d4d359541cecf4
2019-09-26:
* rpi-eeprom included
- This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version.

View File

@ -2,6 +2,8 @@
install -m 644 files/sources.list "${ROOTFS_DIR}/etc/apt/"
install -m 644 files/raspi.list "${ROOTFS_DIR}/etc/apt/sources.list.d/"
sed -i "s/RELEASE/${RELEASE}/g" "${ROOTFS_DIR}/etc/apt/sources.list"
sed -i "s/RELEASE/${RELEASE}/g" "${ROOTFS_DIR}/etc/apt/sources.list.d/raspi.list"
if [ -n "$APT_PROXY" ]; then
install -m 644 files/51cache "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache"

View File

@ -1,3 +1,3 @@
deb http://archive.raspberrypi.org/debian/ buster main
deb http://archive.raspberrypi.org/debian/ RELEASE main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ buster main
#deb-src http://archive.raspberrypi.org/debian/ RELEASE main

View File

@ -1,3 +1,3 @@
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
deb http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
#deb-src http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi

View File

@ -1,5 +1,5 @@
#!/bin/bash -e
if [ ! -d "${ROOTFS_DIR}" ]; then
bootstrap buster "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/
bootstrap ${RELEASE} "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/
fi

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
ssh less fbset sudo psmisc strace ed ncdu crda
less fbset sudo psmisc strace ed ncdu crda vim
console-setup keyboard-configuration debconf-utils parted unzip
build-essential manpages-dev python bash-completion gdb pkg-config
python-rpi.gpio v4l-utils
@ -6,25 +6,20 @@ avahi-daemon
lua5.1
luajit
hardlink ca-certificates curl
fake-hwclock nfs-common usbutils
fake-hwclock usbutils
libraspberrypi-dev libraspberrypi-doc libfreetype6-dev
dosfstools
dphys-swapfile
raspberrypi-sys-mods
pi-bluetooth
apt-listchanges
usb-modeswitch
libpam-chksshpwd
rpi-update
libmtp-runtime
rsync
htop
man-db
policykit-1
ssh-import-id
rng-tools
ethtool
vl805fw
ntfs-3g
pciutils
rpi-eeprom
raspinfo

View File

@ -1 +0,0 @@
cifs-utils

View File

@ -13,14 +13,7 @@ install -m 755 files/rc.local "${ROOTFS_DIR}/etc/"
on_chroot << EOF
systemctl disable hwclock.sh
systemctl disable nfs-common
systemctl disable rpcbind
if [ "${ENABLE_SSH}" == "1" ]; then
systemctl enable ssh
else
systemctl disable ssh
fi
systemctl enable regenerate_ssh_host_keys
EOF
if [ "${USE_QEMU}" = "1" ]; then
@ -53,4 +46,3 @@ on_chroot << EOF
usermod --pass='*' root
EOF
rm -f "${ROOTFS_DIR}/etc/ssh/"ssh_host_*_key*

View File

@ -1,4 +0,0 @@
wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek
raspberrypi-net-mods
dhcpcd5
net-tools

View File

@ -1,31 +0,0 @@
#!/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/"
if [ -v WPA_COUNTRY ]; then
echo "country=${WPA_COUNTRY}" >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf"
fi
if [ -v WPA_ESSID ] && [ -v WPA_PASSWORD ]; then
on_chroot <<EOF
set -o pipefail
wpa_passphrase "${WPA_ESSID}" "${WPA_PASSWORD}" | tee -a "/etc/wpa_supplicant/wpa_supplicant.conf"
EOF
elif [ -v WPA_ESSID ]; then
cat >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" << EOL
network={
ssid="${WPA_ESSID}"
key_mgmt=NONE
}
EOL
fi
# Disable wifi on 5GHz models
mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/"
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan"
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan"

View File

@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w

View File

@ -1,2 +0,0 @@
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

View File

@ -0,0 +1 @@
openjdk-8-jre-headless

View File

@ -0,0 +1,36 @@
#!/bin/bash
export RUDEFOX_REPO_BASE_URL="https://repo.rudefox.io"
export RUDEFOX_REPO_RELEASES="maven-releases"
export RUDEFOX_GROUP="io.rudefox"
export RUDEFOX_BURROW_ID="burrow"
export OUTFILE="burrow.tar"
export WGET_OPTS="--https-only -O ${OUTFILE} -v"
export WGET_URL="${RUDEFOX_REPO_BASE_URL}/service/rest/v1/search/assets/download?group=${RUDEFOX_GROUP}&name=${RUDEFOX_BURROW_ID}&maven.extension=tar"
if [ $RUDEFOX_BURROW_VERSION != "latest" ]
then
export WGET_URL="${WGET_URL}&maven.baseVersion=${RUDEFOX_BURROW_VERSION}"
else
export WGET_URL="${WGET_URL}&sort=version"
fi
if [ $RUDEFOX_REPO_USERNAME != "anonymous" ]
then
export ENCODED_USERNAME=$(echo -n $RUDEFOX_REPO_USERNAME | base64 | sed 's/+/-/g; s/\//_/g; s/=/%3D/g';)
export ENCODED_PASSWORD=$(echo -n $RUDEFOX_REPO_PASSWORD | base64 | sed 's/+/-/g; s/\//_/g; s/=/%3D/g';)
export POST_DATA="username=${ENCODED_USERNAME}&password=${ENCODED_PASSWORD}"
wget --save-cookies cookies.txt --keep-session-cookies --post-data $POST_DATA "${RUDEFOX_REPO_BASE_URL}/service/rapture/session"
wget --load-cookies cookies.txt $WGET_OPTS $WGET_URL
rm cookies.txt
else
wget $WGET_OPTS "${WGET_URL}&repository=${RUDEFOX_REPO_RELEASES}"
fi

View File

@ -0,0 +1,10 @@
#!/bin/bash -e
mkdir -p "${ROOTFS_DIR}/opt/"
rm -rf "${ROOTFS_DIR}/opt/rudefox-burrow"
tar -C "${ROOTFS_DIR}/opt/" -xvf burrow.tar
mv "${ROOTFS_DIR}/opt/burrow-"* "${ROOTFS_DIR}/opt/rudefox-burrow"
on_chroot <<EOF
ln -fs /opt/rudefox-burrow/bin/burrow /usr/bin/burrow
EOF

View File

@ -0,0 +1,6 @@
#!/bin/bash -e
echo "" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
echo ". <(burrow generate-completion)" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
echo "alias seedgen='burrow mnemonic -i8b 256'" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"

View File

@ -0,0 +1,5 @@
#!/bin/bash -e
echo "" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
echo "unset HISTFILE" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"

15
stage2/05-autologin/00-run.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash -e
on_chroot << ENDCHROOT
systemctl set-default multi-user.target
ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin ${FIRST_USER_NAME} --noclear %I \\\$TERM
EOF
ENDCHROOT

View File

@ -0,0 +1 @@
toilet figlet

View File

@ -0,0 +1,8 @@
#!/bin/bash -e
rm -rf "${ROOTFS_DIR}/etc/motd"
rm -rf "${ROOTFS_DIR}/etc/update-motd.d/"*
install -m 755 files/* "${ROOTFS_DIR}/etc/update-motd.d/"
echo "" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
echo "PS1=\"\\\\[\e[31m\\\\]Burrow>\\\\[\e[m\\\\] \"" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"

View File

@ -0,0 +1,9 @@
#!/bin/bash
THIS_SCRIPT="header"
MOTD_DISABLE=""
toilet -f standard -F metal Burrow
printf '\nWelcome to RudeFox Burrow!\n'
printf '\n'

View File

@ -0,0 +1,11 @@
#!/bin/bash
echo ""
echo "======================================================="
echo "=== TYPE: "
echo "=== seedgen "
echo "=== "
echo "=== to generate a new 24-word seed "
echo "======================================================="
echo ""
echo ""

View File

@ -0,0 +1,12 @@
#!/bin/bash -e
install -d "${ROOTFS_DIR}/etc/systemd/system/enable-overlayfs.target.wants"
install -m 644 files/enable-overlayfs.service "${ROOTFS_DIR}/etc/systemd/system/"
install -m 644 files/enable-overlayfs.target "${ROOTFS_DIR}/etc/systemd/system/"
install -m 755 files/enable_overlayfs.sh "${ROOTFS_DIR}/usr/bin/"
on_chroot << EOF
ln -sf /etc/systemd/system/enable-overlayfs.service /etc/systemd/system/enable-overlayfs.target.wants/enable-overlayfs.service
systemctl daemon-reload
systemctl set-default enable-overlayfs.target
EOF

View File

@ -0,0 +1,10 @@
[Unit]
Description=Enable Overlay Filesystem
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/enable_overlayfs.sh
[Install]
WantedBy=enable-overlayfs.target

View File

@ -0,0 +1,5 @@
[Unit]
Description=Enable Overlay Filesystem Target
Requires=multi-user.target
After=multi-user.target
AllowIsolate=yes

View File

@ -0,0 +1,5 @@
#!/bin/bash
/usr/bin/raspi-config nonint do_overlayfs 0
systemctl set-default multi-user.target
reboot

View File

@ -1,2 +1,2 @@
NOOBS_NAME="Raspbian Lite"
NOOBS_NAME="Raspberry Pi OS Lite (32-bit)"
NOOBS_DESCRIPTION="A port of Debian with no desktop environment"

15
stage4/03-bookshelf/00-run.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh -e
BOOKSHELF_URL="https://magpi.raspberrypi.org/bookshelf.xml"
GUIDE_URL="$(curl -s "$BOOKSHELF_URL" | awk -F '[<>]' "/<TITLE>Raspberry Pi Beginner's Guide v3<\/TITLE>/ {f=1; next} f==1 && /PDF/ {print \$3; exit}")"
OUTPUT="$(basename "$GUIDE_URL" | cut -f1 -d'?')"
if [ ! -f "files/$OUTPUT" ]; then
rm files/*.pdf -f
curl -s "$GUIDE_URL" -o "files/$OUTPUT"
fi
file "files/$OUTPUT" | grep -q "PDF document"
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Bookshelf"
install -v -o 1000 -g 1000 -m 644 "files/$OUTPUT" "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Bookshelf/"

View File

@ -1,15 +0,0 @@
#!/bin/sh -e
magpi_regex="MagPi[[:digit:]]*.pdf"
magpi_loc="$(curl -s https://magpi.raspberrypi.org/latest-pdf)"
magpi_latest="$(echo "$magpi_loc" | grep "$magpi_regex" -m 1 -o)"
if [ ! -f "files/$magpi_latest" ]; then
find files/ -regextype grep -regex "files/$magpi_regex" -delete
wget "$magpi_loc" -O "files/$magpi_latest"
fi
file "files/$magpi_latest" | grep -q "PDF document"
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/MagPi"
install -v -o 1000 -g 1000 -m 644 "files/$magpi_latest" "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/MagPi/"

View File

@ -1,2 +1,2 @@
NOOBS_NAME="Raspbian"
NOOBS_NAME="Raspberry Pi OS (32-bit)"
NOOBS_DESCRIPTION="A port of Debian with the Raspberry Pi Desktop"

View File

@ -1,2 +1,2 @@
NOOBS_NAME="Raspbian Full"
NOOBS_NAME="Raspberry Pi OS Full (32-bit)"
NOOBS_DESCRIPTION="A port of Debian with desktop and recommended applications"