Compare commits

..
14 Commits
41 changed files with 237 additions and 113 deletions
+40 -11
View File
@@ -1,7 +1,17 @@
# pi-gen
_Tool used to create the raspberrypi.org Raspbian images_ #Burrow Pi Image
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 ## Dependencies
@@ -29,13 +39,21 @@ environment variables.
The following environment variables are supported: 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 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, `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 but you should use something else for a customized version. Export files
in stages may add suffixes to `IMG_NAME`. 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) * `RELEASE` (Default: buster)
The release version to build images against. Valid values are jessie, stretch The release version to build images against. Valid values are jessie, stretch
@@ -83,15 +101,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 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. 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. Default system locale.
* `TARGET_HOSTNAME` (Default: "raspberrypi" ) * `TARGET_HOSTNAME` (Default: "burrow" )
Setting the hostname to the specified value. 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. Default keyboard keymap.
@@ -114,11 +140,11 @@ The following environment variables are supported:
To get the current value from a running system, look in To get the current value from a running system, look in
`/etc/timezone`. `/etc/timezone`.
* `FIRST_USER_NAME` (Default: "pi" ) * `FIRST_USER_NAME` (Default: "rudefox" )
Username for the first user Username for the first user
* `FIRST_USER_PASS` (Default: "raspberry") * `FIRST_USER_PASS` (Default: "burrow")
Password for the first user Password for the first user
@@ -130,14 +156,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. 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]`)
The default setting builds only the "lite" image for Rudefox Burrow, which is all you need.
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. 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 Raspbian: A simple example for building RaspbianBurrow:
```bash ```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. The config file can also be specified on the command line as an argument the `build.sh` or `build-docker.sh` scripts.
-6
View File
@@ -48,12 +48,6 @@ CONTAINER_NAME=${CONTAINER_NAME:-pigen_work}
CONTINUE=${CONTINUE:-0} CONTINUE=${CONTINUE:-0}
PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-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 # Ensure the Git Hash is recorded before entering the docker container
GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"}
+11 -10
View File
@@ -146,10 +146,10 @@ done
export PI_GEN=${PI_GEN:-pi-gen} export PI_GEN=${PI_GEN:-pi-gen}
export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen} export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen}
if [ -z "${IMG_NAME}" ]; then export IMG_NAME="${IMG_NAME:-RasbianBurrow}"
echo "IMG_NAME not set" 1>&2 export RUDEFOX_REPO_USERNAME="${RUDEFOX_REPO_USERNAME:-anonymous}"
exit 1 export RUDEFOX_REPO_PASSWORD="${RUDEFOX_REPO_PASSWORD:-default}"
fi export RUDEFOX_BURROW_VERSION="${RUDEFOX_BURROW_VERSION:-latest}"
export USE_QEMU="${USE_QEMU:-0}" export USE_QEMU="${USE_QEMU:-0}"
export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}" export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}"
@@ -162,19 +162,20 @@ export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"}
export DEPLOY_ZIP="${DEPLOY_ZIP:-1}" export DEPLOY_ZIP="${DEPLOY_ZIP:-1}"
export LOG_FILE="${WORK_DIR}/build.log" 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_NAME=${FIRST_USER_NAME:-rudefox}
export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} export FIRST_USER_PASS=${FIRST_USER_PASS:-burrow}
export RELEASE=${RELEASE:-buster} export RELEASE=${RELEASE:-buster}
export WPA_ESSID export WPA_ESSID
export WPA_PASSWORD export WPA_PASSWORD
export WPA_COUNTRY export WPA_COUNTRY
export ENABLE_SSH="${ENABLE_SSH:-0}" 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 KEYBOARD_LAYOUT="${KEYBOARD_LAYOUT:-English (UK)}"
export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}" export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}"
@@ -229,7 +230,7 @@ fi
mkdir -p "${WORK_DIR}" mkdir -p "${WORK_DIR}"
log "Begin ${BASE_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 for STAGE_DIR in $STAGE_LIST; do
STAGE_DIR=$(realpath "${STAGE_DIR}") STAGE_DIR=$(realpath "${STAGE_DIR}")
+5 -6
View File
@@ -7,20 +7,19 @@ bootstrap(){
local BOOTSTRAP_CMD=debootstrap local BOOTSTRAP_CMD=debootstrap
local BOOTSTRAP_ARGS=() local BOOTSTRAP_ARGS=()
#export http_proxy=${APT_PROXY} export http_proxy=${APT_PROXY}
if [ "$(dpkg --print-architecture)" != "armhf" ] && [ "$(dpkg --print-architecture)" != "arm64" ]; then if [ "$(dpkg --print-architecture)" != "armhf" ] && [ "$(dpkg --print-architecture)" != "aarch64" ]; then
BOOTSTRAP_CMD=qemu-debootstrap BOOTSTRAP_CMD=qemu-debootstrap
fi fi
BOOTSTRAP_ARGS+=(--arch arm64) BOOTSTRAP_ARGS+=(--arch armhf)
BOOTSTRAP_ARGS+=(--include gnupg)
BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--components "main,contrib,non-free")
#BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg")
BOOTSTRAP_ARGS+=("$@") BOOTSTRAP_ARGS+=("$@")
printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}"
capsh --drop=cap_setfcap -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true setarch linux32 capsh --drop=cap_setfcap -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
if [ -d "$2/debootstrap" ]; then if [ -d "$2/debootstrap" ]; then
rmdir "$2/debootstrap" rmdir "$2/debootstrap"
-1
View File
@@ -14,7 +14,6 @@ fi
on_chroot apt-key add - < files/raspberrypi.gpg.key on_chroot apt-key add - < files/raspberrypi.gpg.key
on_chroot << EOF on_chroot << EOF
dpkg --add-architecture armhf
apt-get update apt-get update
apt-get dist-upgrade -y apt-get dist-upgrade -y
EOF EOF
+3 -7
View File
@@ -1,7 +1,3 @@
deb http://deb.debian.org/debian RELEASE main contrib non-free deb http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi
deb http://deb.debian.org/debian-security/ RELEASE/updates main contrib non-free # Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb http://deb.debian.org/debian RELEASE-updates main contrib non-free #deb-src http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
#deb-src http://deb.debian.org/debian RELEASE main contrib non-free
#deb-src http://deb.debian.org/debian-security/ RELEASE/updates main contrib non-free
#deb-src http://deb.debian.org/debian RELEASE-updates main contrib non-free
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/bash -e #!/bin/bash -e
if [ ! -d "${ROOTFS_DIR}" ]; then if [ ! -d "${ROOTFS_DIR}" ]; then
bootstrap ${RELEASE} "${ROOTFS_DIR}" http://deb.debian.org/debian/ bootstrap ${RELEASE} "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/
fi fi
+4 -1
View File
@@ -56,7 +56,10 @@
# Enable audio (loads snd_bcm2835) # Enable audio (loads snd_bcm2835)
dtparam=audio=on dtparam=audio=on
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack # Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d dtoverlay=vc4-fkms-v3d
max_framebuffers=2 max_framebuffers=2
arm_64bit=1
[all]
#dtoverlay=vc4-fkms-v3d
+1
View File
@@ -0,0 +1 @@
raspi-copies-and-fills
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash -e
if [ -f "${ROOTFS_DIR}/etc/ld.so.preload" ]; then
mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled"
fi
File diff suppressed because one or more lines are too long
+2 -8
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 console-setup keyboard-configuration debconf-utils parted unzip
build-essential manpages-dev python bash-completion gdb pkg-config build-essential manpages-dev python bash-completion gdb pkg-config
python-rpi.gpio v4l-utils python-rpi.gpio v4l-utils
@@ -6,26 +6,20 @@ avahi-daemon
lua5.1 lua5.1
luajit luajit
hardlink ca-certificates curl hardlink ca-certificates curl
fake-hwclock nfs-common usbutils fake-hwclock usbutils
libraspberrypi-dev libraspberrypi-doc libfreetype6-dev libraspberrypi-dev libraspberrypi-doc libfreetype6-dev
dosfstools dosfstools
dphys-swapfile dphys-swapfile
raspberrypi-sys-mods raspberrypi-sys-mods
pi-bluetooth
apt-listchanges apt-listchanges
usb-modeswitch usb-modeswitch
libpam-chksshpwd libpam-chksshpwd
rpi-update rpi-update
libmtp-runtime libmtp-runtime
rsync
htop
man-db man-db
policykit-1 policykit-1
ssh-import-id
rng-tools rng-tools
ethtool
vl805fw vl805fw
ntfs-3g
pciutils pciutils
rpi-eeprom rpi-eeprom
raspinfo raspinfo
-1
View File
@@ -1 +0,0 @@
cifs-utils
-8
View File
@@ -13,14 +13,7 @@ install -m 755 files/rc.local "${ROOTFS_DIR}/etc/"
on_chroot << EOF on_chroot << EOF
systemctl disable hwclock.sh systemctl disable hwclock.sh
systemctl disable nfs-common
systemctl disable rpcbind systemctl disable rpcbind
if [ "${ENABLE_SSH}" == "1" ]; then
systemctl enable ssh
else
systemctl disable ssh
fi
systemctl enable regenerate_ssh_host_keys
EOF EOF
if [ "${USE_QEMU}" = "1" ]; then if [ "${USE_QEMU}" = "1" ]; then
@@ -53,4 +46,3 @@ on_chroot << EOF
usermod --pass='*' root usermod --pass='*' root
EOF EOF
rm -f "${ROOTFS_DIR}/etc/ssh/"ssh_host_*_key*
-4
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
-31
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"
-3
View File
@@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
@@ -1,2 +0,0 @@
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
+1
View File
@@ -0,0 +1 @@
openjdk-8-jre-headless
+36
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
+10
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
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash -e
echo "" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
echo ". <(burrow generate-completion)" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
+5
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
View File
@@ -0,0 +1,15 @@
#!/bin/bash -e
on_chroot << ENDCHROOT
systemctl set-default multi-user.target
ln -fs /lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
cat > /etc/systemd/system/[email protected]/autologin.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin ${FIRST_USER_NAME} --noclear %I \\\$TERM
EOF
ENDCHROOT
+1
View File
@@ -0,0 +1 @@
toilet figlet
+8
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"
+9
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'
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
echo ""
echo "======================================================="
echo "=== TYPE: "
echo "=== burrow mnemonic -i8b 256 "
echo "=== "
echo "=== to generate a new 24-word seed "
echo "======================================================="
echo ""
echo ""
+12
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
@@ -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
@@ -0,0 +1,5 @@
[Unit]
Description=Enable Overlay Filesystem Target
Requires=multi-user.target
After=multi-user.target
AllowIsolate=yes
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
/usr/bin/raspi-config nonint do_overlayfs 0
systemctl set-default multi-user.target
reboot
+2
View File
@@ -0,0 +1,2 @@
NOOBS_NAME="Raspberry Pi OS Lite (32-bit)"
NOOBS_DESCRIPTION="A port of Debian with no desktop environment"
+3 -3
View File
@@ -1,13 +1,13 @@
gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
qpdfview gtk2-engines alsa-utils qpdfview gtk2-engines alsa-utils
desktop-base desktop-base
git git
#omxplayer omxplayer
raspberrypi-artwork raspberrypi-artwork
policykit-1 policykit-1
gvfs gvfs
rfkill rfkill
chromium rpi-chromium-mods chromium-browser rpi-chromium-mods
gldriver-test gldriver-test
fonts-droid-fallback fonts-droid-fallback
fonts-liberation2 fonts-liberation2
+2 -2
View File
@@ -1,6 +1,6 @@
xserver-xorg xinit xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg-video-fbturbo
mousepad mousepad
lxde lxtask menu-xdg lxde lxtask menu-xdg
zenity xdg-utils zenity xdg-utils
gvfs-backends gvfs-fuse gvfs-backends gvfs-fuse
lightdm gnome-themes-standard gnome-icon-theme lightdm gnome-themes-standard-data gnome-icon-theme
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash -e
on_chroot << EOF
update-alternatives --install /usr/bin/x-www-browser \
x-www-browser /usr/bin/chromium-browser 86
update-alternatives --install /usr/bin/gnome-www-browser \
gnome-www-browser /usr/bin/chromium-browser 86
EOF
+1 -1
View File
@@ -2,7 +2,7 @@ python python3-pygame python-pygame python-tk
python3 python3-tk thonny python3 python3-tk thonny
python3-pgzero python3-pgzero
python-serial python3-serial python-serial python3-serial
#python-picamera python3-picamera python-picamera python3-picamera
debian-reference-en dillo debian-reference-en dillo
raspberrypi-net-mods raspberrypi-ui-mods raspberrypi-net-mods raspberrypi-ui-mods
python-pip python3-pip python-pip python3-pip
+2
View File
@@ -0,0 +1,2 @@
NOOBS_NAME="Raspberry Pi OS (32-bit)"
NOOBS_DESCRIPTION="A port of Debian with the Raspberry Pi Desktop"
+5 -5
View File
@@ -1,15 +1,15 @@
mu-editor mu-editor
#sonic-pi sonic-pi
#scratch nuscratch scratch2 scratch3 scratch nuscratch scratch2 scratch3
smartsim smartsim
#minecraft-pi python-minecraftpi python-picraft python3-picraft minecraft-pi python-minecraftpi python-picraft python3-picraft
python-sense-emu sense-emu-tools python-sense-emu-doc python-sense-emu sense-emu-tools python-sense-emu-doc
#wolfram-engine wolfram-engine
claws-mail claws-mail
greenfoot-unbundled bluej greenfoot-unbundled bluej
#nodered nodered
realvnc-vnc-viewer realvnc-vnc-viewer
python-games python-games
+4
View File
@@ -0,0 +1,4 @@
IMG_SUFFIX="-full"
if [ "${USE_QEMU}" = "1" ]; then
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
fi
+2
View File
@@ -0,0 +1,2 @@
NOOBS_NAME="Raspberry Pi OS Full (32-bit)"
NOOBS_DESCRIPTION="A port of Debian with desktop and recommended applications"