Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
2e5d13e1b9 | ||
|
f621f9e279 |
68
.github/workflows/build.yml
vendored
68
.github/workflows/build.yml
vendored
@ -1,68 +0,0 @@
|
|||||||
name: Build images
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- showpiece
|
|
||||||
tags:
|
|
||||||
- 'v*'
|
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
|
|
||||||
build_images:
|
|
||||||
name: Build images
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 120
|
|
||||||
strategy:
|
|
||||||
fail-fast: true
|
|
||||||
env:
|
|
||||||
DEPLOY: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: https://github.com/actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Apply patches
|
|
||||||
run: ./runtime-patches.sh
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get update &&
|
|
||||||
sudo apt-get install -y qemu-user-static quilt debootstrap libarchive-tools arch-test binfmt-support
|
|
||||||
|
|
||||||
- name: Setup binfmt_misc
|
|
||||||
run: |
|
|
||||||
ls /proc/sys/fs/binfmt_misc/ || true
|
|
||||||
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc || true
|
|
||||||
sudo update-binfmts --enable qemu-aarch64
|
|
||||||
|
|
||||||
- name: Run build process
|
|
||||||
run: |
|
|
||||||
sudo ./build.sh &&
|
|
||||||
sudo mv deploy/*-arm64-standalone.img deploy/showpieceos-arm64-standalone.img &&
|
|
||||||
sudo mv deploy/*-arm64-client.img deploy/showpieceos-arm64-client.img
|
|
||||||
|
|
||||||
- name: Compress images
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
run: sudo ./compress-images.sh
|
|
||||||
|
|
||||||
- name: Publish client
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
uses: https://github.com/softprops/action-gh-release@v2
|
|
||||||
with:
|
|
||||||
tag_name: ${{ github.ref_name }}
|
|
||||||
name: ${{ github.ref_name }}
|
|
||||||
files: deploy/*-client.img.gz
|
|
||||||
|
|
||||||
- name: Publish standalone
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
uses: https://github.com/softprops/action-gh-release@v2
|
|
||||||
with:
|
|
||||||
tag_name: ${{ github.ref_name }}
|
|
||||||
name: ${{ github.ref_name }}
|
|
||||||
files: deploy/*-standalone.img.gz
|
|
||||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,8 @@
|
|||||||
deploy/*
|
deploy/*
|
||||||
work/*
|
work/*
|
||||||
|
config
|
||||||
postrun.sh
|
postrun.sh
|
||||||
|
SKIP
|
||||||
|
SKIP_IMAGES
|
||||||
.pc
|
.pc
|
||||||
*-pc
|
*-pc
|
||||||
|
@ -22,7 +22,7 @@ To install the required dependencies for `pi-gen` you should run:
|
|||||||
```bash
|
```bash
|
||||||
apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \
|
apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \
|
||||||
dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file git curl bc \
|
dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file git curl bc \
|
||||||
gpg pigz xxd arch-test
|
gpg pigz xxd arch-test bmap-tools
|
||||||
```
|
```
|
||||||
|
|
||||||
The file `depends` contains a list of tools needed. The format of this
|
The file `depends` contains a list of tools needed. The format of this
|
||||||
@ -443,7 +443,7 @@ To resolve this, ensure that the following files are available (install them if
|
|||||||
|
|
||||||
```
|
```
|
||||||
/lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko
|
/lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko
|
||||||
/usr/bin/qemu-aarch64-static
|
/usr/bin/qemu-arm-static
|
||||||
```
|
```
|
||||||
|
|
||||||
You may also need to load the module by hand - run `modprobe binfmt_misc`.
|
You may also need to load the module by hand - run `modprobe binfmt_misc`.
|
||||||
|
@ -82,7 +82,16 @@ fi
|
|||||||
# Modify original build-options to allow config file to be mounted in the docker container
|
# Modify original build-options to allow config file to be mounted in the docker container
|
||||||
BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')"
|
BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')"
|
||||||
|
|
||||||
${DOCKER} build --build-arg BASE_IMAGE=debian:bookworm -t pi-gen "${DIR}"
|
# Check the arch of the machine we're running on. If it's 64-bit, use a 32-bit base image instead
|
||||||
|
case "$(uname -m)" in
|
||||||
|
x86_64|aarch64)
|
||||||
|
BASE_IMAGE=i386/debian:bookworm
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
BASE_IMAGE=debian:bookworm
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}"
|
||||||
|
|
||||||
if [ "${CONTAINER_EXISTS}" != "" ]; then
|
if [ "${CONTAINER_EXISTS}" != "" ]; then
|
||||||
DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont"
|
DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont"
|
||||||
@ -105,10 +114,10 @@ case $(uname -m) in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Check if qemu-aarch64-static and /proc/sys/fs/binfmt_misc are present
|
# Check if qemu-arm-static and /proc/sys/fs/binfmt_misc are present
|
||||||
if [[ "${binfmt_misc_required}" == "1" ]]; then
|
if [[ "${binfmt_misc_required}" == "1" ]]; then
|
||||||
if ! qemu_arm=$(which qemu-aarch64-static) ; then
|
if ! qemu_arm=$(which qemu-arm-static) ; then
|
||||||
echo "qemu-aarch64-static not found (please install qemu-user-static)"
|
echo "qemu-arm-static not found (please install qemu-user-static)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
|
if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
|
||||||
@ -119,13 +128,13 @@ if [[ "${binfmt_misc_required}" == "1" ]]; then
|
|||||||
fi
|
fi
|
||||||
echo "binfmt_misc mounted"
|
echo "binfmt_misc mounted"
|
||||||
fi
|
fi
|
||||||
if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-aarch64* ; then
|
if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-arm* ; then
|
||||||
# Register qemu-aarch64 for binfmt_misc
|
# Register qemu-arm for binfmt_misc
|
||||||
reg="echo ':qemu-aarch64-rpi:M::"\
|
reg="echo ':qemu-arm-rpi:M::"\
|
||||||
"\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:"\
|
"\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:"\
|
||||||
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\
|
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\
|
||||||
"${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register"
|
"${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register"
|
||||||
echo "Registering qemu-aarch64 for binfmt_misc..."
|
echo "Registering qemu-arm for binfmt_misc..."
|
||||||
sudo bash -c "${reg}" 2>/dev/null || true
|
sudo bash -c "${reg}" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
2
build.sh
2
build.sh
@ -175,7 +175,7 @@ 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 PI_GEN_RELEASE=${PI_GEN_RELEASE:-Raspberry Pi reference}
|
export PI_GEN_RELEASE=${PI_GEN_RELEASE:-Raspberry Pi reference}
|
||||||
|
|
||||||
export ARCH=arm64
|
export ARCH=armhf
|
||||||
export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh
|
export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh
|
||||||
export IMG_NAME="${IMG_NAME:-raspios-$RELEASE-$ARCH}"
|
export IMG_NAME="${IMG_NAME:-raspios-$RELEASE-$ARCH}"
|
||||||
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for img in "deploy/"*.img; do
|
|
||||||
gzip -4 -v -k "$img"
|
|
||||||
done
|
|
22
config
22
config
@ -1,22 +0,0 @@
|
|||||||
IMG_NAME="showpieceos-bookworm-arm64"
|
|
||||||
PI_GEN_RELEASE="Showpiece OS Bookworm"
|
|
||||||
RELEASE="bookworm"
|
|
||||||
DEPLOY_COMPRESSION="none"
|
|
||||||
COMPRESSION_LEVEL=0
|
|
||||||
LOCALE_DEFAULT="en_US.UTF-8"
|
|
||||||
TARGET_HOSTNAME="showpiece"
|
|
||||||
KEYBOARD_KEYMAP="us"
|
|
||||||
KEYBOARD_LAYOUT="English (US)"
|
|
||||||
TIMEZONE_DEFAULT="America/Chicago"
|
|
||||||
FIRST_USER_NAME="pi"
|
|
||||||
FIRST_USER_PASS="letmein"
|
|
||||||
DISABLE_FIRST_BOOT_USER_RENAME=1
|
|
||||||
WPA_COUNTRY=US
|
|
||||||
ENABLE_SSH=0
|
|
||||||
STAGE_LIST=""
|
|
||||||
for d in stage*; do
|
|
||||||
if [ -d "$d" ] && [ ! -f "$d/SKIP" ]; then
|
|
||||||
STAGE_LIST+="$d "
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
STAGE_LIST="$(echo "$STAGE_LIST" | xargs)"
|
|
@ -3,6 +3,7 @@
|
|||||||
IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img"
|
IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img"
|
||||||
INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info"
|
INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info"
|
||||||
SBOM_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.sbom"
|
SBOM_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.sbom"
|
||||||
|
BMAP_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.bmap"
|
||||||
|
|
||||||
on_chroot << EOF
|
on_chroot << EOF
|
||||||
update-initramfs -k all -c
|
update-initramfs -k all -c
|
||||||
@ -100,6 +101,12 @@ zerofree "${ROOT_DEV}"
|
|||||||
|
|
||||||
unmount_image "${IMG_FILE}"
|
unmount_image "${IMG_FILE}"
|
||||||
|
|
||||||
|
if hash bmaptool 2>/dev/null; then
|
||||||
|
bmaptool create \
|
||||||
|
-o "${BMAP_FILE}" \
|
||||||
|
"${IMG_FILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
mkdir -p "${DEPLOY_DIR}"
|
mkdir -p "${DEPLOY_DIR}"
|
||||||
|
|
||||||
rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*"
|
rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*"
|
||||||
@ -128,4 +135,7 @@ esac
|
|||||||
if [ -f "${SBOM_FILE}" ]; then
|
if [ -f "${SBOM_FILE}" ]; then
|
||||||
xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/image_$(basename "${SBOM_FILE}").xz"
|
xz -c "${SBOM_FILE}" > "$DEPLOY_DIR/image_$(basename "${SBOM_FILE}").xz"
|
||||||
fi
|
fi
|
||||||
|
if [ -f "${BMAP_FILE}" ]; then
|
||||||
|
xz -c "${BMAP_FILE}" > "$DEPLOY_DIR/image_$(basename "${BMAP_FILE}").xz"
|
||||||
|
fi
|
||||||
cp "$INFO_FILE" "$DEPLOY_DIR/"
|
cp "$INFO_FILE" "$DEPLOY_DIR/"
|
||||||
|
@ -13,7 +13,7 @@ BOOT_SIZE="$((512 * 1024 * 1024))"
|
|||||||
ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1)
|
ROOT_SIZE=$(du -x --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot/firmware --block-size=1 | cut -f 1)
|
||||||
|
|
||||||
# All partition sizes and starts will be aligned to this size
|
# All partition sizes and starts will be aligned to this size
|
||||||
ALIGN="$((4 * 1024 * 1024))"
|
ALIGN="$((8 * 1024 * 1024))"
|
||||||
# Add this much space to the calculated file size. This allows for
|
# Add this much space to the calculated file size. This allows for
|
||||||
# some overhead (since actual space usage is usually rounded up to the
|
# some overhead (since actual space usage is usually rounded up to the
|
||||||
# filesystem block size) and gives some free space on the resulting
|
# filesystem block size) and gives some free space on the resulting
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
{
|
{
|
||||||
"description": "NOOBS_DESCRIPTION",
|
"description": "NOOBS_DESCRIPTION",
|
||||||
|
"feature_level": 35120124,
|
||||||
"kernel": "KERNEL",
|
"kernel": "KERNEL",
|
||||||
"name": "NOOBS_NAME",
|
"name": "NOOBS_NAME",
|
||||||
"password": "raspberry",
|
"password": "raspberry",
|
||||||
"release_date": "UNRELEASED",
|
"release_date": "UNRELEASED",
|
||||||
|
"supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041,0092,0093,2082",
|
||||||
"supported_models": [
|
"supported_models": [
|
||||||
"Pi Zero 2",
|
"Pi Model",
|
||||||
|
"Pi 2",
|
||||||
|
"Pi Zero",
|
||||||
"Pi 3",
|
"Pi 3",
|
||||||
"Pi 4",
|
|
||||||
"Pi Compute Module 3",
|
"Pi Compute Module 3",
|
||||||
"Pi Compute Module 4"
|
"Pi 4"
|
||||||
],
|
],
|
||||||
"url": "http://www.raspbian.org/",
|
"url": "http://www.raspbian.org/",
|
||||||
"username": "pi",
|
"username": "pi",
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Patches to run before building showpieceos
|
|
||||||
# Allows for non-destructive deletion of files
|
|
||||||
|
|
||||||
rm stage2/EXPORT_IMAGE
|
|
@ -9,16 +9,15 @@ bootstrap(){
|
|||||||
|
|
||||||
export http_proxy=${APT_PROXY}
|
export http_proxy=${APT_PROXY}
|
||||||
|
|
||||||
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+=(--exclude=info,ifupdown)
|
BOOTSTRAP_ARGS+=(--exclude=info,ifupdown)
|
||||||
BOOTSTRAP_ARGS+=(--include=ca-certificates)
|
BOOTSTRAP_ARGS+=(--include=ca-certificates)
|
||||||
BOOTSTRAP_ARGS+=("$@")
|
BOOTSTRAP_ARGS+=("$@")
|
||||||
printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}"
|
printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}"
|
||||||
|
|
||||||
capsh $CAPSH_ARG -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
|
setarch linux32 capsh $CAPSH_ARG -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
|
||||||
|
|
||||||
if [ -d "$2/debootstrap" ] && ! rmdir "$2/debootstrap"; then
|
if [ -d "$2/debootstrap" ] && ! rmdir "$2/debootstrap"; then
|
||||||
cp "$2/debootstrap/debootstrap.log" "${STAGE_WORK_DIR}"
|
cp "$2/debootstrap/debootstrap.log" "${STAGE_WORK_DIR}"
|
||||||
@ -101,7 +100,7 @@ on_chroot() {
|
|||||||
mount -t tmpfs tmpfs "${ROOTFS_DIR}/tmp"
|
mount -t tmpfs tmpfs "${ROOTFS_DIR}/tmp"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
capsh $CAPSH_ARG "--chroot=${ROOTFS_DIR}/" -- -e "$@"
|
setarch linux32 capsh $CAPSH_ARG "--chroot=${ROOTFS_DIR}/" -- -e "$@"
|
||||||
}
|
}
|
||||||
export -f on_chroot
|
export -f on_chroot
|
||||||
|
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
deb http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware
|
deb [ arch=armhf ] http://raspbian.raspberrypi.com/raspbian/ RELEASE main contrib non-free rpi
|
||||||
deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware
|
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
|
||||||
deb http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware
|
#deb-src http://raspbian.raspberrypi.com/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 non-free-firmware
|
|
||||||
#deb-src http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware
|
|
||||||
#deb-src http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
initramfs-tools
|
initramfs-tools
|
||||||
raspi-firmware
|
raspi-firmware
|
||||||
|
linux-image-rpi-v6
|
||||||
|
linux-image-rpi-v7
|
||||||
|
linux-image-rpi-v7l
|
||||||
linux-image-rpi-v8
|
linux-image-rpi-v8
|
||||||
linux-image-rpi-2712
|
linux-headers-rpi-v6
|
||||||
linux-headers-rpi-v8
|
linux-headers-rpi-v7
|
||||||
linux-headers-rpi-2712
|
linux-headers-rpi-v7l
|
||||||
|
@ -6,5 +6,5 @@ if [ "$RELEASE" != "bookworm" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
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.com/raspbian/
|
||||||
fi
|
fi
|
||||||
|
@ -30,9 +30,6 @@ max_framebuffers=2
|
|||||||
# Use the kernel's default instead.
|
# Use the kernel's default instead.
|
||||||
disable_fw_kms_setup=1
|
disable_fw_kms_setup=1
|
||||||
|
|
||||||
# Run in 64-bit mode
|
|
||||||
arm_64bit=1
|
|
||||||
|
|
||||||
# Disable compensation for displays with overscan
|
# Disable compensation for displays with overscan
|
||||||
disable_overscan=1
|
disable_overscan=1
|
||||||
|
|
||||||
|
1
stage2/00-copies-and-fills/01-packages
Normal file
1
stage2/00-copies-and-fills/01-packages
Normal file
@ -0,0 +1 @@
|
|||||||
|
raspi-copies-and-fills
|
6
stage2/00-copies-and-fills/02-run.sh
Executable file
6
stage2/00-copies-and-fills/02-run.sh
Executable 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
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
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
|
||||||
evince gtk2-engines alsa-utils
|
evince gtk2-engines alsa-utils
|
||||||
desktop-base
|
desktop-base
|
||||||
git
|
git
|
||||||
@ -10,8 +10,6 @@ firefox rpi-firefox-mods
|
|||||||
gldriver-test
|
gldriver-test
|
||||||
fonts-droid-fallback
|
fonts-droid-fallback
|
||||||
fonts-liberation2
|
fonts-liberation2
|
||||||
fonts-noto
|
|
||||||
fonts-noto-color-emoji
|
|
||||||
obconf
|
obconf
|
||||||
raindrop
|
raindrop
|
||||||
libcamera-tools
|
libcamera-tools
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
xserver-xorg xinit
|
xserver-xorg-video-fbdev xserver-xorg xinit
|
||||||
x11-xserver-utils
|
|
||||||
mousepad
|
mousepad
|
||||||
eom
|
eom
|
||||||
vim
|
|
||||||
lxde lxtask menu-xdg
|
lxde lxtask menu-xdg
|
||||||
zenity xdg-utils
|
zenity xdg-utils
|
||||||
gvfs-backends gvfs-fuse
|
gvfs-backends gvfs-fuse
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
install -d -o 1000 -g 1000 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart"
|
|
||||||
install -m 644 files/kiosk.desktop "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart/"
|
|
||||||
chown -R 1000:1000 "${ROOTFS_DIR}"/home/"${FIRST_USER_NAME}"/.config
|
|
||||||
mkdir -p "${ROOTFS_DIR}/tmp"
|
|
@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=Chromium
|
|
||||||
Exec=chromium-browser --profile-directory="showpiece-browser" --kiosk https://showpiece.sanin.dev/
|
|
||||||
StartupNotify=false
|
|
||||||
Terminal=false
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
echo "Setting default wallpaper"
|
|
||||||
for conf in "${ROOTFS_DIR}/etc/xdg/pcmanfm/LXDE-pi/desktop-items-"*.conf; do
|
|
||||||
sed -E 's|/usr/share/rpd-wallpaper/.+$|/usr/share/rpd-wallpaper/RPiSystem.png|' -i "$conf"
|
|
||||||
done
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
echo "Setting custom cmdline"
|
|
||||||
sed -i 's/$/ video=HDMI-A-2:1920x1080M@60/' "${ROOTFS_DIR}/boot/firmware/cmdline.txt"
|
|
@ -1,4 +1,4 @@
|
|||||||
IMG_SUFFIX="-client"
|
IMG_SUFFIX=""
|
||||||
if [ "${USE_QEMU}" = "1" ]; then
|
if [ "${USE_QEMU}" = "1" ]; then
|
||||||
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
|
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
|
||||||
fi
|
fi
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
apt-transport-https
|
|
||||||
gnupg2
|
|
||||||
software-properties-common
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#change to "debian" if necessary:
|
|
||||||
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
|
|
||||||
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
|
|
||||||
$(lsb_release -cs) stable" | \
|
|
||||||
tee /etc/apt/sources.list.d/docker.list
|
|
||||||
apt update
|
|
@ -1,3 +0,0 @@
|
|||||||
docker-ce
|
|
||||||
docker-compose-plugin
|
|
||||||
cgroupfs-mount
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
systemctl enable docker
|
|
||||||
systemctl start docker
|
|
||||||
gpasswd -a pi docker
|
|
||||||
newgrp docker
|
|
@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece"
|
|
||||||
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece/config"
|
|
||||||
install -m 644 files/docker-compose.yml "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece/"
|
|
||||||
install -m 644 files/config.json5 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/showpiece/config/"
|
|
||||||
install -d -o 1000 -g 1000 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart"
|
|
||||||
install -m 644 files/kiosk.desktop "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config/autostart/"
|
|
||||||
chown -R 1000:1000 "${ROOTFS_DIR}"/home/"${FIRST_USER_NAME}"/.config
|
|
||||||
mkdir -p "${ROOTFS_DIR}/tmp"
|
|
||||||
echo "$FIRST_USER_NAME" > "${ROOTFS_DIR}/tmp/first_username"
|
|
@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
USERNAME=$(cat /tmp/first_username)
|
|
||||||
COMPOSEFILE="/home/$USERNAME/.config/showpiece/docker-compose.yml"
|
|
||||||
|
|
||||||
echo "@reboot docker compose --file '$COMPOSEFILE' up -d && chromium --kiosk 'http://localhost:8080/?w=1080'" >> /tmp/user.crontab
|
|
||||||
echo "40 3 * * * docker compose --file '$COMPOSEFILE' pull && docker compose --file '$COMPOSEFILE' up -d" >> /tmp/user.crontab
|
|
||||||
|
|
||||||
crontab -u "$USERNAME" /tmp/user.crontab
|
|
||||||
|
|
||||||
rm /tmp/first_username
|
|
||||||
rm /tmp/user.crontab
|
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
// Port for the viewer
|
|
||||||
"port": 8080,
|
|
||||||
// Port for the control panel
|
|
||||||
// (use a different port to restrict access to this interface)
|
|
||||||
"controlport": 8080,
|
|
||||||
// (optional) provide weather data to modules that support it
|
|
||||||
"weather": {
|
|
||||||
// Provide an OpenWeatherMap API key
|
|
||||||
// https://openweathermap.org/price
|
|
||||||
// "key": "not0a0real0key00281f631aef6ad3a1",
|
|
||||||
// "city": "chicago"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
services:
|
|
||||||
showpiece:
|
|
||||||
container_name: showpiece
|
|
||||||
image: corysanin/showpiece:latest
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
- ./config:/usr/src/showpiece/config
|
|
@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=Chromium
|
|
||||||
Exec=chromium-browser --profile-directory="showpiece-browser" --kiosk http://localhost:8080/?w=1080
|
|
||||||
StartupNotify=false
|
|
||||||
Terminal=false
|
|
@ -1,4 +0,0 @@
|
|||||||
IMG_SUFFIX="-standalone"
|
|
||||||
if [ "${USE_QEMU}" = "1" ]; then
|
|
||||||
export IMG_SUFFIX="${IMG_SUFFIX}-qemu"
|
|
||||||
fi
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
if [ ! -d "${ROOTFS_DIR}" ]; then
|
|
||||||
copy_previous
|
|
||||||
fi
|
|
Loading…
x
Reference in New Issue
Block a user