Compare commits
9 Commits
Author | SHA1 | Date |
---|---|---|
Serge Schneider | d3553f5ec4 | |
Serge Schneider | 0cab554f7d | |
Serge Schneider | 75123fd64e | |
Serge Schneider | 0f41e41c8c | |
Serge Schneider | a58e722bee | |
Serge Schneider | c640efa6e1 | |
Serge Schneider | d4049eeffb | |
Serge Schneider | 906c587fcd | |
Serge Schneider | 99399d30fc |
52
README.md
52
README.md
|
@ -1,16 +1,7 @@
|
||||||
# Burrow Pi Image
|
# pi-gen
|
||||||
|
|
||||||
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:
|
_Tool used to create the raspberrypi.org Raspbian images_
|
||||||
|
|
||||||
* 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
|
||||||
|
|
||||||
|
@ -38,21 +29,13 @@ environment variables.
|
||||||
|
|
||||||
The following environment variables are supported:
|
The following environment variables are supported:
|
||||||
|
|
||||||
* `IMG_NAME` (Default: `RudefoxBurrow`)
|
* `IMG_NAME` **required** (Default: unset)
|
||||||
|
|
||||||
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
|
||||||
|
@ -100,23 +83,15 @@ 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_CA.UTF-8" )
|
* `LOCALE_DEFAULT` (Default: "en_GB.UTF-8" )
|
||||||
|
|
||||||
Default system locale.
|
Default system locale.
|
||||||
|
|
||||||
* `TARGET_HOSTNAME` (Default: "burrow" )
|
* `TARGET_HOSTNAME` (Default: "raspberrypi" )
|
||||||
|
|
||||||
Setting the hostname to the specified value.
|
Setting the hostname to the specified value.
|
||||||
|
|
||||||
* `KEYBOARD_MODEL` (Default: "Generic 101-key PC" )
|
* `KEYBOARD_KEYMAP` (Default: "gb" )
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -139,11 +114,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: "rudefox" )
|
* `FIRST_USER_NAME` (Default: "pi" )
|
||||||
|
|
||||||
Username for the first user
|
Username for the first user
|
||||||
|
|
||||||
* `FIRST_USER_PASS` (Default: "burrow")
|
* `FIRST_USER_PASS` (Default: "raspberry")
|
||||||
|
|
||||||
Password for the first user
|
Password for the first user
|
||||||
|
|
||||||
|
@ -155,17 +130,14 @@ 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[0-2]`)
|
* `STAGE_LIST` (Default: `stage*`)
|
||||||
|
|
||||||
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
|
||||||
APT_PROXY=http://172.17.10.10:3142
|
IMG_NAME='Raspbian'
|
||||||
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.
|
||||||
|
|
|
@ -48,6 +48,12 @@ 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)"}
|
||||||
|
|
||||||
|
|
21
build.sh
21
build.sh
|
@ -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}
|
||||||
|
|
||||||
export IMG_NAME="${IMG_NAME:-RasbianBurrow}"
|
if [ -z "${IMG_NAME}" ]; then
|
||||||
export RUDEFOX_REPO_USERNAME="${RUDEFOX_REPO_USERNAME:-anonymous}"
|
echo "IMG_NAME not set" 1>&2
|
||||||
export RUDEFOX_REPO_PASSWORD="${RUDEFOX_REPO_PASSWORD:-default}"
|
exit 1
|
||||||
export RUDEFOX_BURROW_VERSION="${RUDEFOX_BURROW_VERSION:-latest}"
|
fi
|
||||||
|
|
||||||
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,20 +162,19 @@ 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:-burrow}
|
export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi}
|
||||||
|
|
||||||
export FIRST_USER_NAME=${FIRST_USER_NAME:-rudefox}
|
export FIRST_USER_NAME=${FIRST_USER_NAME:-pi}
|
||||||
export FIRST_USER_PASS=${FIRST_USER_PASS:-burrow}
|
export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry}
|
||||||
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_CA.UTF-8}"
|
export LOCALE_DEFAULT="${LOCALE_DEFAULT:-en_GB.UTF-8}"
|
||||||
|
|
||||||
export KEYBOARD_MODEL="${KEYBOARD_MODEL:-Generic 101-key PC}"
|
export KEYBOARD_KEYMAP="${KEYBOARD_KEYMAP:-gb}"
|
||||||
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}"
|
||||||
|
@ -230,7 +229,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[0-2]}
|
STAGE_LIST=${STAGE_LIST:-${BASE_DIR}/stage*}
|
||||||
|
|
||||||
for STAGE_DIR in $STAGE_LIST; do
|
for STAGE_DIR in $STAGE_LIST; do
|
||||||
STAGE_DIR=$(realpath "${STAGE_DIR}")
|
STAGE_DIR=$(realpath "${STAGE_DIR}")
|
||||||
|
|
|
@ -7,19 +7,20 @@ 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)" != "aarch64" ]; then
|
if [ "$(dpkg --print-architecture)" != "armhf" ] && [ "$(dpkg --print-architecture)" != "arm64" ]; then
|
||||||
BOOTSTRAP_CMD=qemu-debootstrap
|
BOOTSTRAP_CMD=qemu-debootstrap
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BOOTSTRAP_ARGS+=(--arch armhf)
|
BOOTSTRAP_ARGS+=(--arch arm64)
|
||||||
|
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[@]}"
|
||||||
|
|
||||||
setarch linux32 capsh --drop=cap_setfcap -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
|
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"
|
||||||
|
|
|
@ -14,6 +14,7 @@ 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
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
deb http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi
|
deb http://deb.debian.org/debian RELEASE main contrib non-free
|
||||||
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
|
deb http://deb.debian.org/debian-security/ RELEASE/updates main contrib non-free
|
||||||
#deb-src http://raspbian.raspberrypi.org/raspbian/ RELEASE main contrib non-free rpi
|
deb http://deb.debian.org/debian RELEASE-updates main contrib non-free
|
||||||
|
# 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,5 +1,5 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
if [ ! -d "${ROOTFS_DIR}" ]; then
|
if [ ! -d "${ROOTFS_DIR}" ]; then
|
||||||
bootstrap ${RELEASE} "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/
|
bootstrap ${RELEASE} "${ROOTFS_DIR}" http://deb.debian.org/debian/
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -56,10 +56,7 @@
|
||||||
# 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 +0,0 @@
|
||||||
raspi-copies-and-fills
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/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
|
@ -1,4 +1,4 @@
|
||||||
less fbset sudo psmisc strace ed ncdu crda vim
|
ssh less fbset sudo psmisc strace ed ncdu crda
|
||||||
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,20 +6,26 @@ avahi-daemon
|
||||||
lua5.1
|
lua5.1
|
||||||
luajit
|
luajit
|
||||||
hardlink ca-certificates curl
|
hardlink ca-certificates curl
|
||||||
fake-hwclock usbutils
|
fake-hwclock nfs-common 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
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
cifs-utils
|
|
@ -13,7 +13,14 @@ 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
|
||||||
|
@ -46,3 +53,4 @@ on_chroot << EOF
|
||||||
usermod --pass='*' root
|
usermod --pass='*' root
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
rm -f "${ROOTFS_DIR}/etc/ssh/"ssh_host_*_key*
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek
|
||||||
|
raspberrypi-net-mods
|
||||||
|
dhcpcd5
|
||||||
|
net-tools
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/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"
|
|
@ -0,0 +1,3 @@
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
|
|
@ -0,0 +1,2 @@
|
||||||
|
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
||||||
|
update_config=1
|
|
@ -1 +0,0 @@
|
||||||
openjdk-8-jre-headless
|
|
|
@ -1,36 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/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"
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
echo "" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
|
|
||||||
echo "unset HISTFILE" >> "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.bashrc"
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1 +0,0 @@
|
||||||
toilet figlet
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/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"
|
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
THIS_SCRIPT="header"
|
|
||||||
MOTD_DISABLE=""
|
|
||||||
|
|
||||||
toilet -f standard -F metal Burrow
|
|
||||||
|
|
||||||
printf '\nWelcome to RudeFox Burrow!\n'
|
|
||||||
printf '\n'
|
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "======================================================="
|
|
||||||
echo "=== TYPE: "
|
|
||||||
echo "=== seedgen "
|
|
||||||
echo "=== "
|
|
||||||
echo "=== to generate a new 24-word seed "
|
|
||||||
echo "======================================================="
|
|
||||||
echo ""
|
|
||||||
echo ""
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1,10 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Enable Overlay Filesystem
|
|
||||||
After=multi-user.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/bin/enable_overlayfs.sh
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=enable-overlayfs.target
|
|
|
@ -1,5 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Enable Overlay Filesystem Target
|
|
||||||
Requires=multi-user.target
|
|
||||||
After=multi-user.target
|
|
||||||
AllowIsolate=yes
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
/usr/bin/raspi-config nonint do_overlayfs 0
|
|
||||||
systemctl set-default multi-user.target
|
|
||||||
reboot
|
|
|
@ -1,2 +0,0 @@
|
||||||
NOOBS_NAME="Raspberry Pi OS Lite (32-bit)"
|
|
||||||
NOOBS_DESCRIPTION="A port of Debian with no desktop environment"
|
|
|
@ -1,13 +1,13 @@
|
||||||
gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
|
gstreamer1.0-x 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-browser rpi-chromium-mods
|
chromium rpi-chromium-mods
|
||||||
gldriver-test
|
gldriver-test
|
||||||
fonts-droid-fallback
|
fonts-droid-fallback
|
||||||
fonts-liberation2
|
fonts-liberation2
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg-video-fbturbo
|
xserver-xorg xinit
|
||||||
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-data gnome-icon-theme
|
lightdm gnome-themes-standard gnome-icon-theme
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/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
|
|
|
@ -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
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
NOOBS_NAME="Raspberry Pi OS (32-bit)"
|
|
||||||
NOOBS_DESCRIPTION="A port of Debian with the Raspberry Pi Desktop"
|
|
|
@ -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
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
IMG_SUFFIX="-full"
|
|
||||||
if [ "${USE_QEMU}" = "1" ]; then
|
|
||||||
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
|
|
||||||
fi
|
|
|
@ -1,2 +0,0 @@
|
||||||
NOOBS_NAME="Raspberry Pi OS Full (32-bit)"
|
|
||||||
NOOBS_DESCRIPTION="A port of Debian with desktop and recommended applications"
|
|
Loading…
Reference in New Issue