From d9b4a4a985fe5a015c0a774c9c75f21a2491c0c3 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 4 Oct 2021 15:40:35 +0100 Subject: [PATCH 01/48] Switch to bullseye --- Dockerfile | 2 +- README.md | 2 +- build-docker.sh | 4 +-- build.sh | 2 +- stage2/01-sys-tweaks/00-packages | 6 ++-- stage3/00-install-packages/00-packages | 1 - stage4/00-install-packages/00-packages | 20 ++++++------ stage4/00-install-packages/01-packages | 44 +++++++++++++------------- stage5/00-install-extras/00-packages | 4 +-- 9 files changed, 40 insertions(+), 45 deletions(-) diff --git a/Dockerfile b/Dockerfile index 837e430..e7fc561 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG BASE_IMAGE=debian:buster +ARG BASE_IMAGE=debian:bullseye FROM ${BASE_IMAGE} ENV DEBIAN_FRONTEND noninteractive diff --git a/README.md b/README.md index 62938e9..b4b40bd 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ The following environment variables are supported: that the network block device is not disconnected correctly after the Docker process has ended abnormally. In that case see [Disconnect an image if something went wrong](#Disconnect-an-image-if-something-went-wrong) -* `RELEASE` (Default: buster) +* `RELEASE` (Default: bullseye) The release version to build images against. Valid values are jessie, stretch buster, bullseye, and testing. diff --git a/build-docker.sh b/build-docker.sh index 01fd517..85200e4 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -78,10 +78,10 @@ BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" # 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:buster + BASE_IMAGE=i386/debian:bullseye ;; *) - BASE_IMAGE=debian:buster + BASE_IMAGE=debian:bullseye ;; esac ${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}" diff --git a/build.sh b/build.sh index f70c6fb..423d62e 100755 --- a/build.sh +++ b/build.sh @@ -207,7 +207,7 @@ export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi} export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} -export RELEASE=${RELEASE:-buster} +export RELEASE=${RELEASE:-bullseye} export WPA_ESSID export WPA_PASSWORD export WPA_COUNTRY diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index a1f4b59..4af7c43 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -1,8 +1,7 @@ ssh less fbset sudo psmisc strace ed ncdu crda console-setup keyboard-configuration debconf-utils parted unzip -build-essential manpages-dev python bash-completion gdb pkg-config -python-rpi.gpio v4l-utils -python-gpiozero +build-essential manpages-dev python3 bash-completion gdb pkg-config +python3-rpi.gpio v4l-utils python3-gpiozero avahi-daemon lua5.1 @@ -26,7 +25,6 @@ policykit-1 ssh-import-id rng-tools ethtool -vl805fw ntfs-3g pciutils rpi-eeprom diff --git a/stage3/00-install-packages/00-packages b/stage3/00-install-packages/00-packages index eac74ea..460aedd 100644 --- a/stage3/00-install-packages/00-packages +++ b/stage3/00-install-packages/00-packages @@ -3,7 +3,6 @@ qpdfview gtk2-engines alsa-utils desktop-base git omxplayer -raspberrypi-artwork policykit-1 gvfs rfkill diff --git a/stage4/00-install-packages/00-packages b/stage4/00-install-packages/00-packages index 85a9f80..e76d411 100644 --- a/stage4/00-install-packages/00-packages +++ b/stage4/00-install-packages/00-packages @@ -1,11 +1,11 @@ -python python3-pygame python-pygame python-tk -python3 python3-tk thonny +python3-pygame +python3-tk thonny python3-pgzero -python-serial python3-serial -python-picamera python3-picamera +python3-serial +python3-picamera debian-reference-en dillo raspberrypi-net-mods raspberrypi-ui-mods -python-pip python3-pip +python3-pip python3-numpy pypy alacarte rc-gui sense-hat @@ -13,11 +13,11 @@ tree libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr geany piclone -wiringpi pigpio python-pigpio python3-pigpio raspi-gpio python3-rpi.gpio -python-spidev python3-spidev -python-twython python3-twython -python-smbus python3-smbus -python-flask python3-flask +pigpio python3-pigpio raspi-gpio python3-rpi.gpio +python3-spidev +python3-twython +python3-smbus +python3-flask pprompt piwiz rp-prefapps diff --git a/stage4/00-install-packages/01-packages b/stage4/00-install-packages/01-packages index fdf5e73..5441d9d 100644 --- a/stage4/00-install-packages/01-packages +++ b/stage4/00-install-packages/01-packages @@ -1,22 +1,22 @@ -python-automationhat python3-automationhat -python-blinkt python3-blinkt -python-cap1xxx python3-cap1xxx -python-drumhat python3-drumhat -python-envirophat python3-envirophat -python-explorerhat python3-explorerhat -python-fourletterphat python3-fourletterphat -python-microdotphat python3-microdotphat -python-mote python3-mote -python-motephat python3-motephat -python-phatbeat python3-phatbeat -python-pianohat python3-pianohat -python-piglow python3-piglow -python-rainbowhat python3-rainbowhat -python-scrollphat python3-scrollphat -python-scrollphathd python3-scrollphathd -python-sn3218 python3-sn3218 -python-skywriter python3-skywriter -python-touchphat python3-touchphat -python-buttonshim python3-buttonshim -python-unicornhathd python3-unicornhathd -python-pantilthat python3-pantilthat +python3-automationhat +python3-blinkt +python3-cap1xxx +python3-drumhat +python3-envirophat +python3-explorerhat +python3-fourletterphat +python3-microdotphat +python3-mote +python3-motephat +python3-phatbeat +python3-pianohat +python3-piglow +python3-rainbowhat +python3-scrollphat +python3-scrollphathd +python3-sn3218 +python3-skywriter +python3-touchphat +python3-buttonshim +python3-unicornhathd +python3-pantilthat diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages index 38c5c8d..1b9d488 100644 --- a/stage5/00-install-extras/00-packages +++ b/stage5/00-install-extras/00-packages @@ -3,8 +3,7 @@ sonic-pi scratch nuscratch scratch3 smartsim -minecraft-pi python-minecraftpi python-picraft python3-picraft -python-sense-emu sense-emu-tools python-sense-emu-doc +python3-sense-emu sense-emu-tools python-sense-emu-doc wolfram-engine claws-mail @@ -12,5 +11,4 @@ greenfoot-unbundled bluej nodered realvnc-vnc-viewer -python-games code-the-classics From b23d0b144df1aeb87814b7ea84f27eaa30392955 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 5 Oct 2021 15:22:16 +0100 Subject: [PATCH 02/48] Use raspi-config to disable predictable network interface names --- stage1/01-sys-tweaks/00-packages | 1 + stage1/02-net-tweaks/00-run.sh | 4 +++- stage1/03-install-packages/00-packages | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 stage1/01-sys-tweaks/00-packages diff --git a/stage1/01-sys-tweaks/00-packages b/stage1/01-sys-tweaks/00-packages new file mode 100644 index 0000000..9e91ea1 --- /dev/null +++ b/stage1/01-sys-tweaks/00-packages @@ -0,0 +1 @@ +raspi-config diff --git a/stage1/02-net-tweaks/00-run.sh b/stage1/02-net-tweaks/00-run.sh index 4943cab..95dfbdc 100755 --- a/stage1/02-net-tweaks/00-run.sh +++ b/stage1/02-net-tweaks/00-run.sh @@ -3,4 +3,6 @@ echo "${TARGET_HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname" echo "127.0.1.1 ${TARGET_HOSTNAME}" >> "${ROOTFS_DIR}/etc/hosts" -ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link" +on_chroot << EOF + SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_net_names 1 +EOF diff --git a/stage1/03-install-packages/00-packages b/stage1/03-install-packages/00-packages index e8c148c..73edcc9 100644 --- a/stage1/03-install-packages/00-packages +++ b/stage1/03-install-packages/00-packages @@ -1 +1 @@ -libraspberrypi-bin libraspberrypi0 raspi-config +libraspberrypi-bin libraspberrypi0 From 7c45f4e11f882495856abee521b3624cc5e1e004 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 5 Oct 2021 15:25:17 +0100 Subject: [PATCH 03/48] stage3: install libcamera-tools and libcamera-apps --- stage3/00-install-packages/00-packages | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stage3/00-install-packages/00-packages b/stage3/00-install-packages/00-packages index 460aedd..25d2542 100644 --- a/stage3/00-install-packages/00-packages +++ b/stage3/00-install-packages/00-packages @@ -12,3 +12,5 @@ fonts-droid-fallback fonts-liberation2 obconf arandr +libcamera-tools +libcamera-apps From 456aa2e50b08ff71e96e139aafcb6f52f57b729f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 5 Oct 2021 15:26:16 +0100 Subject: [PATCH 04/48] bootstrap: do not install the info package --- scripts/common | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/common b/scripts/common index 300d30b..5b0df12 100644 --- a/scripts/common +++ b/scripts/common @@ -16,6 +16,7 @@ bootstrap(){ BOOTSTRAP_ARGS+=(--arch armhf) BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") + BOOTSTRAP_ARGS+=(--exclude=info) BOOTSTRAP_ARGS+=("$@") printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" From d0eed3b76f0983dea8e9333007dd5e46caf3ba1e Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 5 Oct 2021 15:51:43 +0100 Subject: [PATCH 05/48] Update config.txt Disable overscan Enable camera_auto_detect Switch all models to KMS Enable arm_boost on pi 4 Enable host mode on built-in USB controller on CM4 --- stage1/00-boot-files/files/config.txt | 28 +++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/stage1/00-boot-files/files/config.txt b/stage1/00-boot-files/files/config.txt index 548f4ac..0e8f1b0 100644 --- a/stage1/00-boot-files/files/config.txt +++ b/stage1/00-boot-files/files/config.txt @@ -5,10 +5,6 @@ # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 -# uncomment this if your display has a black border of unused pixels visible -# and your display can output without overscan -#disable_overscan=1 - # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 @@ -56,10 +52,26 @@ # Enable audio (loads snd_bcm2835) dtparam=audio=on -[pi4] -# Enable DRM VC4 V3D driver on top of the dispmanx display stack -dtoverlay=vc4-fkms-v3d +# Automatically load overlays for detected cameras +camera_auto_detect=1 + +# Enable DRM VC4 V3D driver +dtoverlay=vc4-kms-v3d max_framebuffers=2 +# Disable compensation for displays with overscan +disable_overscan=1 + +[cm4] +# Enable host mode on the 2711 built-in XHCI USB controller. +# This line should be removed if the legacy DWC2 controller is required +# (e.g. for USB device mode) or if USB support is not required. +otg_mode=1 + +[all] + +[pi4] +# Run as fast as firmware / board allows +arm_boost=1 + [all] -#dtoverlay=vc4-fkms-v3d From ac246e300bdd55005ab811bcd817f1221b328fd7 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 5 Oct 2021 15:54:05 +0100 Subject: [PATCH 06/48] Use raspi-config to toggle boot_wait --- stage2/02-net-tweaks/01-run.sh | 7 ++++--- stage2/02-net-tweaks/files/wait.conf | 3 --- stage3/01-tweaks/00-run.sh | 4 +++- 3 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 stage2/02-net-tweaks/files/wait.conf diff --git a/stage2/02-net-tweaks/01-run.sh b/stage2/02-net-tweaks/01-run.sh index d82381b..837e861 100755 --- a/stage2/02-net-tweaks/01-run.sh +++ b/stage2/02-net-tweaks/01-run.sh @@ -1,11 +1,12 @@ #!/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/" +on_chroot << EOF + SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_boot_wait 0 +EOF + if [ -v WPA_COUNTRY ]; then echo "country=${WPA_COUNTRY}" >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" fi diff --git a/stage2/02-net-tweaks/files/wait.conf b/stage2/02-net-tweaks/files/wait.conf deleted file mode 100644 index 595cc2d..0000000 --- a/stage2/02-net-tweaks/files/wait.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Service] -ExecStart= -ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w diff --git a/stage3/01-tweaks/00-run.sh b/stage3/01-tweaks/00-run.sh index 5da7c1a..79b749e 100755 --- a/stage3/01-tweaks/00-run.sh +++ b/stage3/01-tweaks/00-run.sh @@ -1,3 +1,5 @@ #!/bin/bash -e -rm -f "${ROOTFS_DIR}/etc/systemd/system/dhcpcd.service.d/wait.conf" +on_chroot << EOF + SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_boot_wait 1 +EOF From 5a4b7ec0679dc85efc5abfa65a9a33a3e3cb1273 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 5 Oct 2021 15:54:27 +0100 Subject: [PATCH 07/48] Update release notes --- .../00-release/files/release_notes.txt | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 6e9db37..d883488 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,52 @@ UNRELEASED: + * Based on Debian version 11 (bullseye) + * Desktop components (lxpanel and all plugins, libfm, pcmanfm) now built against GTK+3 + * Applications (piwiz, pipanel, rc_gui, lxinput) now built against GTK+3 + * PiXflat GTK+3 theme updated with numerous changes to support the above + * GTK+3 : toolbar icon size setting added + * GTK+3 : ability to request client-side decoration on windows added + * GTK+3 : setting for indent for frame labels in custom style added + * mutter window manager used instead of openbox on devices with 2GB or more of RAM + * mutter : title bar icon behaviour and appearance modified to match openbox + * mutter : additional keyboard shortcuts added + * mutter : various performance enhancements + * mutter compatibility added to screen magnifier + * Numerous changes to Appearance Settings application to support GTK+3 and mutter + * Updater plugin added to lxpanel to detect and install software updates + * File manager view options simplified to either list or icons, with separate menu option for thumbnails + * New file manager toolbar icons + * KMS used as default display driver + * Modifications to HDMI audio output selection to support the above + * xcompmgr enabled when openbox is running under KMS + * New default camera subsystem based on libcamera + * New camera demo applications (libcamera-still and libcamera-vid) have replaced raspistill and raspivid + * Legacy camera subsystem removed from 64-bit RPi OS (still available on 32-bit) + * Chromium upgraded to version 92.0.4515.98 + * VLC media player upgraded to version 3.0.16 + * Spurious drive removal warning after use of SD card copier removed + * Bookshelf application now includes Custom PC magazine + * Various translation updates - Italian, Korean, Polish, German, Armenian + * Startup wizard now installs Japanese fonts if needed + * Progress and information dialog boxes for lxpanel plugins now common to lxpanel, rather than in individual plugins + * Icon handling code for lxpanel plugins now common to lxpanel + * Package with 4K version of Raspberry Pi wallpaper added to Recommended Software + * Python Games and Minecraft removed from Recommended Software - neither is compatible with bullseye + * Bluetooth pairing and connection dialogs updated for compatibility with more devices + * Bluetooth devices always disconnected before removal to speed up removal process + * Bluetooth pairing dialog now only shows devices which offer services which are usable by Pi + * Separate Bluetooth unpair dialog removed - unpair now an option for each individual device + * Bug fix - mutter : header bar colours not updating when theme is changed + * Bug fix - GTK+3 : tooltips being displayed incorrectly at bottom of screen + * Bug fix - lxpanel : crash when using keyboard shortcut to enable magnifier when magnifier not installed + * Bug fix - lxpanel : lockup in Bluetooth plugin when connecting to certain devices + * Bug fix - lxpanel : discoverable mode icon could get out of sync with underlying Bluetooth system state + * Bug fix - piwiz : missing cities in timezone list + * Bug fix - piwiz : country-specific language packages not being installed + * Bug fix - bookshelf : now waits for longer between packets before timing out + * Bug fix - accented characters now displayed correctly in localisation dialogs + * Raspberry Pi firmware 46f356dcecc5204ca9a8cef7e6894e083b231bc7 + * Linux kernel 5.10.60 +2021-05-07: * Chromium upgraded to version 88.0.4324.187 * NuScratch upgraded to version 20210507 * Node-RED upgraded to version 1.3.4 From b542f68d68155006d63d4bc3d9a41fd5107e8b6d Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 7 Oct 2021 10:08:16 +0100 Subject: [PATCH 08/48] stage2: install python-is-python3 --- stage2/01-sys-tweaks/00-packages | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index 4af7c43..55f8451 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -1,6 +1,7 @@ ssh less fbset sudo psmisc strace ed ncdu crda console-setup keyboard-configuration debconf-utils parted unzip -build-essential manpages-dev python3 bash-completion gdb pkg-config +build-essential manpages-dev bash-completion gdb pkg-config +python-is-python3 python3-rpi.gpio v4l-utils python3-gpiozero avahi-daemon From 93beb9fb743dbc2a956c7d49111623759fe7906a Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 15 Oct 2021 16:04:41 +0100 Subject: [PATCH 09/48] stage2: install libcamera-apps-lite --- stage2/01-sys-tweaks/00-packages-nr | 1 + 1 file changed, 1 insertion(+) diff --git a/stage2/01-sys-tweaks/00-packages-nr b/stage2/01-sys-tweaks/00-packages-nr index 5acef54..83a1e0c 100644 --- a/stage2/01-sys-tweaks/00-packages-nr +++ b/stage2/01-sys-tweaks/00-packages-nr @@ -1 +1,2 @@ cifs-utils +libcamera-apps-lite From 6d363779bae70cf027ef5eead3d6fa4d6f603bee Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 29 Oct 2021 10:21:08 +0100 Subject: [PATCH 10/48] Automatically load overlays for detected DSI displays --- stage1/00-boot-files/files/config.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stage1/00-boot-files/files/config.txt b/stage1/00-boot-files/files/config.txt index 0e8f1b0..6e072cb 100644 --- a/stage1/00-boot-files/files/config.txt +++ b/stage1/00-boot-files/files/config.txt @@ -55,6 +55,9 @@ dtparam=audio=on # Automatically load overlays for detected cameras camera_auto_detect=1 +# Automatically load overlays for detected DSI displays +display_auto_detect=1 + # Enable DRM VC4 V3D driver dtoverlay=vc4-kms-v3d max_framebuffers=2 From 85bc296d16abc116c51e8fc84fcb712189efe4e5 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 29 Oct 2021 10:24:13 +0100 Subject: [PATCH 11/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index d883488..9de6b24 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -44,8 +44,8 @@ UNRELEASED: * Bug fix - piwiz : country-specific language packages not being installed * Bug fix - bookshelf : now waits for longer between packets before timing out * Bug fix - accented characters now displayed correctly in localisation dialogs - * Raspberry Pi firmware 46f356dcecc5204ca9a8cef7e6894e083b231bc7 - * Linux kernel 5.10.60 + * Raspberry Pi firmware 0c4fc71befd228419a225c84d316cabbda8633a7 + * Linux kernel 5.10.63 2021-05-07: * Chromium upgraded to version 88.0.4324.187 * NuScratch upgraded to version 20210507 From 288b21fc27e128ea6b330777aca68e0061ebf4fe Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 29 Oct 2021 20:37:45 +0100 Subject: [PATCH 12/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 9de6b24..516f7f7 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -44,7 +44,7 @@ UNRELEASED: * Bug fix - piwiz : country-specific language packages not being installed * Bug fix - bookshelf : now waits for longer between packets before timing out * Bug fix - accented characters now displayed correctly in localisation dialogs - * Raspberry Pi firmware 0c4fc71befd228419a225c84d316cabbda8633a7 + * Raspberry Pi firmware e2bab29767e51c683a312df20014e3277275b8a6 * Linux kernel 5.10.63 2021-05-07: * Chromium upgraded to version 88.0.4324.187 From 68fee340f95eb630a706e2dbf75615c6be4e980b Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 8 Nov 2021 08:44:36 +0000 Subject: [PATCH 13/48] Do not use qcow2 images by default --- README.md | 2 +- build.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b4b40bd..b859309 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ The following environment variables are supported: but you should use something else for a customized version. Export files in stages may add suffixes to `IMG_NAME`. -* `USE_QCOW2`(Default: `1` ) +* `USE_QCOW2` **EXPERIMENTAL** (Default: `0` ) Instead of using traditional way of building the rootfs of every stage in single subdirectories and copying over the previous one to the next one, diff --git a/build.sh b/build.sh index 423d62e..bcfdeb6 100755 --- a/build.sh +++ b/build.sh @@ -99,7 +99,7 @@ run_stage(){ STAGE_WORK_DIR="${WORK_DIR}/${STAGE}" ROOTFS_DIR="${STAGE_WORK_DIR}"/rootfs - if [ "${USE_QCOW2}" = "1" ]; then + if [ "${USE_QCOW2}" = "1" ]; then if [ ! -f SKIP ]; then load_qimage fi @@ -109,7 +109,7 @@ run_stage(){ unmount "${WORK_DIR}/${STAGE}" fi fi - + if [ ! -f SKIP_IMAGES ]; then if [ -f "${STAGE_DIR}/EXPORT_IMAGE" ]; then EXPORT_DIRS="${EXPORT_DIRS} ${STAGE_DIR}" @@ -253,7 +253,7 @@ source "${SCRIPT_DIR}/common" source "${SCRIPT_DIR}/dependencies_check" export NO_PRERUN_QCOW2="${NO_PRERUN_QCOW2:-1}" -export USE_QCOW2="${USE_QCOW2:-1}" +export USE_QCOW2="${USE_QCOW2:-0}" export BASE_QCOW2_SIZE=${BASE_QCOW2_SIZE:-12G} source "${SCRIPT_DIR}/qcow2_handling" if [ "${USE_QCOW2}" = "1" ]; then From 1e0c20690cb6915c85ebb0e598614198be9d253f Mon Sep 17 00:00:00 2001 From: marcone <48169102+marcone@users.noreply.github.com> Date: Sat, 6 Nov 2021 18:23:40 -0700 Subject: [PATCH 14/48] Fix imagetool example The long option name is "--image-name", not "--image" --- imagetool.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imagetool.sh b/imagetool.sh index e8467e1..002b50b 100755 --- a/imagetool.sh +++ b/imagetool.sh @@ -25,7 +25,7 @@ Usage: -p, --mount-point mount point for image This tool will use /dev/nbd1 as default for mounting an image. If you want to use another device, execute like this: - NBD_DEV=/dev/nbd2 ./$progname --mount --image --mount-point + NBD_DEV=/dev/nbd2 ./$progname --mount --image-name --mount-point HEREDOC } From 27983073c97bbf2851a8c36ff6450ec9b33ee4a0 Mon Sep 17 00:00:00 2001 From: myxxmikeyxx Date: Wed, 10 Nov 2021 08:13:28 -0500 Subject: [PATCH 15/48] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b859309..08b2c13 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ The following environment variables are supported: * `RELEASE` (Default: bullseye) - The release version to build images against. Valid values are jessie, stretch + The release version to build images against. Valid values are jessie, stretch, buster, bullseye, and testing. * `APT_PROXY` (Default: unset) From 9e5228553f7433d22f9fead87198e777a5dec7c4 Mon Sep 17 00:00:00 2001 From: XECDesign Date: Wed, 10 Nov 2021 18:20:11 +0000 Subject: [PATCH 16/48] Remove omxplayer --- stage3/00-install-packages/00-packages | 1 - 1 file changed, 1 deletion(-) diff --git a/stage3/00-install-packages/00-packages b/stage3/00-install-packages/00-packages index 25d2542..97828ba 100644 --- a/stage3/00-install-packages/00-packages +++ b/stage3/00-install-packages/00-packages @@ -2,7 +2,6 @@ gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-g qpdfview gtk2-engines alsa-utils desktop-base git -omxplayer policykit-1 gvfs rfkill From 6117b9bb6193e377d6bf99d5d94c889525bc1a34 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 12 Nov 2021 10:16:27 +0000 Subject: [PATCH 17/48] Add user to render group --- stage2/01-sys-tweaks/01-run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stage2/01-sys-tweaks/01-run.sh b/stage2/01-sys-tweaks/01-run.sh index c1836f9..bb3e11a 100755 --- a/stage2/01-sys-tweaks/01-run.sh +++ b/stage2/01-sys-tweaks/01-run.sh @@ -52,7 +52,7 @@ on_chroot < Date: Thu, 2 Dec 2021 12:37:19 +0000 Subject: [PATCH 18/48] Update chromium install --- stage3/00-install-packages/00-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stage3/00-install-packages/00-packages b/stage3/00-install-packages/00-packages index 97828ba..e04dbd7 100644 --- a/stage3/00-install-packages/00-packages +++ b/stage3/00-install-packages/00-packages @@ -5,7 +5,7 @@ git policykit-1 gvfs rfkill -chromium-browser rpi-chromium-mods +chromium-browser rpi-chromium-mods libwidevinecdm0 gldriver-test fonts-droid-fallback fonts-liberation2 From 3fb5442494dc28e66c92567a58850d56c03a495a Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 6 Dec 2021 10:06:28 +0000 Subject: [PATCH 19/48] Update release notes --- .../00-release/files/release_notes.txt | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 516f7f7..aaaa185 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,38 @@ UNRELEASED: + * rc_gui - add combo box to allow resolution to be set for VNC connections + * rc_gui - camera interface switch removed + * lxpanel - remove appearance settings from preferences dialog; instead add menu option to open general Appearance Settings application + * lxpanel - add ellipses to menu items which open dialogs + * lxinput - read current mouse acceleration directly from xinput + * lxinput - use device IDs rather than names to cope with devices changing when powered-down + * lxinput - remove redundant changes to openbox config file + * plymouth - set KillMode to mixed to suppress warning message + * raspi-config - add option to switch composite video + * raspi-config - add option to switch to legacy camera mode + * raspi-config - add option to set resolution for headless connections + * raspberrypi-ui-mods - disable mutter when VNC server is running and fall back to openbox + * pipanel - add command-line option to open on arbitrary tab + * lxplug-network - suppress ’scan received’ logging message + * raspberrypi-ui-mods - set hover colour for taskbar items based on taskbar colour, not system highlight colour + * Legacy camera applications and libraries reinstalled + * Bug fix - lxinput - lxsession config file not being written on first attempt + * Bug fix - lxinput - set timer for file write to prevent slider slowing down + * Bug fix - lxinput - write values to gsettings as well as xinput and xsettings to take effect within mutter + * Bug fix - lxinput - fix failure to parse and write non-English numeric formats + * Bug fix - arandr - various fixes to parsing of non-standard EDID blocks to enable model and serial to be correctly extracted + * Bug fix - arandr - refresh rate calculated to 3 decimal places for monitors which require it + * Bug fix - arandr - enable setting of left and right orientation + * Bug fix - arandr - add compatibility with new touchscreen driver + * Bug fix - arandr - apply settings correctly to DSI and composite displays + * Bug fix - lxplug-magnifier - fix crash when opening preferences without required magnifier package installed + * Bug fix - piwiz - launch screen reader install prompt as a new process to prevent audio lockups crashing wizard + * Bug fix - lxpanel - not loading some plugins (cpufreq, minimise all windows) due to icon loading code not compatible with GTK+3 + * Bug fix - gtk+3 - disabled new GDK touch events to enable double-clicks to be detected on touchscreen + * Bug fix - xrdp - included backports from bookworm version of xrdp and xorgxrdp to restore window frames with mutter over xrdp connections + * Update various translations + * Raspberry Pi firmware + * Linux kernel +2021-10-30: * Based on Debian version 11 (bullseye) * Desktop components (lxpanel and all plugins, libfm, pcmanfm) now built against GTK+3 * Applications (piwiz, pipanel, rc_gui, lxinput) now built against GTK+3 From 351024d3c363979011832076e9524593bba32aa0 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 6 Dec 2021 16:03:29 +0000 Subject: [PATCH 20/48] stage2: Install udisks2 --- export-noobs/00-release/files/release_notes.txt | 1 + stage2/01-sys-tweaks/00-packages | 1 + 2 files changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index aaaa185..bdc05e2 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -30,6 +30,7 @@ UNRELEASED: * Bug fix - gtk+3 - disabled new GDK touch events to enable double-clicks to be detected on touchscreen * Bug fix - xrdp - included backports from bookworm version of xrdp and xorgxrdp to restore window frames with mutter over xrdp connections * Update various translations + * udisks2 added to lite image * Raspberry Pi firmware * Linux kernel 2021-10-30: diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index 55f8451..d22a961 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -30,3 +30,4 @@ ntfs-3g pciutils rpi-eeprom raspinfo +udisks2 From f04a4143e92d8e4997d4fcbc7485f99459f0bb31 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 22 Dec 2021 15:45:12 +0000 Subject: [PATCH 21/48] Install mkvtoolnix for mkvmerge --- export-noobs/00-release/files/release_notes.txt | 1 + stage2/01-sys-tweaks/00-packages-nr | 1 + 2 files changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index bdc05e2..914e7cf 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -31,6 +31,7 @@ UNRELEASED: * Bug fix - xrdp - included backports from bookworm version of xrdp and xorgxrdp to restore window frames with mutter over xrdp connections * Update various translations * udisks2 added to lite image + * mkvtoolnix added to lite image * Raspberry Pi firmware * Linux kernel 2021-10-30: diff --git a/stage2/01-sys-tweaks/00-packages-nr b/stage2/01-sys-tweaks/00-packages-nr index 83a1e0c..6bdb600 100644 --- a/stage2/01-sys-tweaks/00-packages-nr +++ b/stage2/01-sys-tweaks/00-packages-nr @@ -1,2 +1,3 @@ cifs-utils libcamera-apps-lite +mkvtoolnix From 786af7c5a4a7e4cc29b45596d9aa9dc9ba830453 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 22 Dec 2021 15:47:54 +0000 Subject: [PATCH 22/48] stage3: install gnome-keyring --- export-noobs/00-release/files/release_notes.txt | 1 + stage3/00-install-packages/00-packages-nr | 1 + 2 files changed, 2 insertions(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 914e7cf..b912d1c 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -32,6 +32,7 @@ UNRELEASED: * Update various translations * udisks2 added to lite image * mkvtoolnix added to lite image + * gnome-keyring added to desktop images * Raspberry Pi firmware * Linux kernel 2021-10-30: diff --git a/stage3/00-install-packages/00-packages-nr b/stage3/00-install-packages/00-packages-nr index ffc324b..75fa2a1 100644 --- a/stage3/00-install-packages/00-packages-nr +++ b/stage3/00-install-packages/00-packages-nr @@ -4,3 +4,4 @@ lxde lxtask menu-xdg zenity xdg-utils gvfs-backends gvfs-fuse lightdm gnome-themes-standard-data gnome-icon-theme +gnome-keyring From 23f75d665521e8ac2e9a5fcbde405dce80820715 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 10 Jan 2022 12:41:48 +0000 Subject: [PATCH 23/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index b912d1c..b681a06 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -33,8 +33,8 @@ UNRELEASED: * udisks2 added to lite image * mkvtoolnix added to lite image * gnome-keyring added to desktop images - * Raspberry Pi firmware - * Linux kernel + * Raspberry Pi firmware cfdbadea5f74c16b7ed5d3b4866092a054e3c3bf + * Linux kernel 5.10.89 2021-10-30: * Based on Debian version 11 (bullseye) * Desktop components (lxpanel and all plugins, libfm, pcmanfm) now built against GTK+3 From cc8f695b9a935717bc96a0d1c74d5d28c3dae92a Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 12 Jan 2022 10:21:47 +0000 Subject: [PATCH 24/48] Add 7z and zip support https://github.com/RPi-Distro/repo/issues/266#issuecomment-1010713450 --- export-noobs/00-release/files/release_notes.txt | 1 + stage2/01-sys-tweaks/00-packages | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index b681a06..88d9000 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -32,6 +32,7 @@ UNRELEASED: * Update various translations * udisks2 added to lite image * mkvtoolnix added to lite image + * 7z and zip support added to lite image * gnome-keyring added to desktop images * Raspberry Pi firmware cfdbadea5f74c16b7ed5d3b4866092a054e3c3bf * Linux kernel 5.10.89 diff --git a/stage2/01-sys-tweaks/00-packages b/stage2/01-sys-tweaks/00-packages index d22a961..7656f03 100644 --- a/stage2/01-sys-tweaks/00-packages +++ b/stage2/01-sys-tweaks/00-packages @@ -1,5 +1,5 @@ ssh less fbset sudo psmisc strace ed ncdu crda -console-setup keyboard-configuration debconf-utils parted unzip +console-setup keyboard-configuration debconf-utils parted build-essential manpages-dev bash-completion gdb pkg-config python-is-python3 python3-rpi.gpio v4l-utils @@ -31,3 +31,4 @@ pciutils rpi-eeprom raspinfo udisks2 +unzip zip p7zip-full From 231487d9d602771b081e8fd819732dd22f5bac3a Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 13 Jan 2022 15:39:22 +0000 Subject: [PATCH 25/48] Use trusted.gpg.d instead of apt-key --- stage0/00-configure-apt/00-run.sh | 2 +- stage0/00-configure-apt/01-packages | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 stage0/00-configure-apt/01-packages diff --git a/stage0/00-configure-apt/00-run.sh b/stage0/00-configure-apt/00-run.sh index d10a49f..4d0ac92 100755 --- a/stage0/00-configure-apt/00-run.sh +++ b/stage0/00-configure-apt/00-run.sh @@ -12,7 +12,7 @@ else rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" fi -on_chroot apt-key add - < files/raspberrypi.gpg.key +cat files/raspberrypi.gpg.key | gpg --dearmor > "${ROOTFS_DIR}/etc/apt/trusted.gpg.d/raspberrypi-archive-stable.gpg" on_chroot << EOF apt-get update apt-get dist-upgrade -y diff --git a/stage0/00-configure-apt/01-packages b/stage0/00-configure-apt/01-packages new file mode 100644 index 0000000..f5e3789 --- /dev/null +++ b/stage0/00-configure-apt/01-packages @@ -0,0 +1 @@ +raspberrypi-archive-keyring From 6d2d36e7f2ce37abe77b58cf883dbd0ed124e8b7 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 14 Jan 2022 09:11:46 +0000 Subject: [PATCH 26/48] Don't try to use qemu-debootstrap Fixes #563 --- scripts/common | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/common b/scripts/common index 5b0df12..af4c1f3 100644 --- a/scripts/common +++ b/scripts/common @@ -9,10 +9,6 @@ bootstrap(){ export http_proxy=${APT_PROXY} - if [ "$(dpkg --print-architecture)" != "armhf" ] && [ "$(dpkg --print-architecture)" != "aarch64" ]; then - BOOTSTRAP_CMD=qemu-debootstrap - fi - BOOTSTRAP_ARGS+=(--arch armhf) BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") From 40f67ce4bac65cb8f92a4a9ac72b05bc36ccedeb Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 14 Jan 2022 09:12:38 +0000 Subject: [PATCH 27/48] Install ca-certificates during bootstrap Fixes #424 --- scripts/common | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/common b/scripts/common index af4c1f3..e476f0f 100644 --- a/scripts/common +++ b/scripts/common @@ -13,6 +13,7 @@ bootstrap(){ BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") BOOTSTRAP_ARGS+=(--exclude=info) + BOOTSTRAP_ARGS+=(--include=ca-certificates) BOOTSTRAP_ARGS+=("$@") printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" From f01430c9d8f67a4b9719cc00e74a2079d3834d5d Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 20 Jan 2022 15:31:16 +0000 Subject: [PATCH 28/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 88d9000..039cb22 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -34,8 +34,8 @@ UNRELEASED: * mkvtoolnix added to lite image * 7z and zip support added to lite image * gnome-keyring added to desktop images - * Raspberry Pi firmware cfdbadea5f74c16b7ed5d3b4866092a054e3c3bf - * Linux kernel 5.10.89 + * Raspberry Pi firmware c6d56567ff6ef17fd85159770f22abcf2c5953ed + * Linux kernel 5.10.92 2021-10-30: * Based on Debian version 11 (bullseye) * Desktop components (lxpanel and all plugins, libfm, pcmanfm) now built against GTK+3 From 0b4874f75ae0a7907b334358403c87fd5750fe54 Mon Sep 17 00:00:00 2001 From: simonliedl Date: Wed, 19 Jan 2022 16:16:51 +0100 Subject: [PATCH 29/48] Fix docker build with debian bullseye image - Fix missing sfdisk which is not included anymore in bullseye container - Fix problem with binfmt_misc not being mounted inside docker although present on host --- Dockerfile | 2 +- build-docker.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e7fc561..479e708 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get -y update && \ git vim parted \ quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \ libarchive-tools libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\ - binfmt-support ca-certificates qemu-utils kpartx \ + binfmt-support ca-certificates qemu-utils kpartx fdisk \ && rm -rf /var/lib/apt/lists/* COPY . /pi-gen/ diff --git a/build-docker.sh b/build-docker.sh index 85200e4..2dc55c1 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -98,6 +98,8 @@ if [ "${CONTAINER_EXISTS}" != "" ]; then --volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \ pi-gen \ bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && + # binfmt_misc is sometimes not mounted with debian bullseye image + (mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc || true) && cd /pi-gen; ./build.sh ${BUILD_OPTS} && rsync -av work/*/build.log deploy/" & wait "$!" @@ -112,6 +114,8 @@ else -e "GIT_HASH=${GIT_HASH}" \ pi-gen \ bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && + # binfmt_misc is sometimes not mounted with debian bullseye image + (mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc || true) && cd /pi-gen; ./build.sh ${BUILD_OPTS} && rsync -av work/*/build.log deploy/" & wait "$!" From c393ef105eae82448d31194c28f54b71e1f83da7 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 2 Feb 2022 14:01:30 +0000 Subject: [PATCH 30/48] Strip trailing spaces --- README.md | 12 ++++++------ build-docker.sh | 2 +- build.sh | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 08b2c13..e1676bb 100644 --- a/README.md +++ b/README.md @@ -328,7 +328,7 @@ maintenance and allows for more easy customization. - **Stage 5** - The Raspbian Full image. More development tools, an email client, learning tools like Scratch, specialized packages - like sonic-pi, office productivity, etc. + like sonic-pi, office productivity, etc. ### Stage specification @@ -380,8 +380,8 @@ Example: ```bash root@build-machine:~/$ lsblk | grep nbd -nbd1 43:32 0 10G 0 disk -├─nbd1p1 43:33 0 10G 0 part +nbd1 43:32 0 10G 0 disk +├─nbd1p1 43:33 0 10G 0 part └─nbd1p1 253:0 0 10G 0 part root@build-machine:~/$ ps xa | grep qemu-nbd @@ -405,7 +405,7 @@ It can happen, that your build stops in case of an error. Normally `./build.sh` A typical message indicating that there are some orphaned device mapper entries is this: ``` -Failed to set NBD socket +Failed to set NBD socket Disconnect client, due to: Unexpected end-of-file before all bytes were read ``` @@ -428,10 +428,10 @@ If that happens go through the following steps: or sudo ./imagetool.sh --cleanup ``` - + Note: The `imagetool.sh` command will cleanup any /dev/nbdX that is not connected to a running `qemu-nbd` daemon. Be careful if you use network block devices for other tasks utilizing NBDs on your build machine as well. -Now you should be able to start a new build without running into troubles again. Most of the time, especially when using Docker build, you will only need no. 3 to get everything up and running again. +Now you should be able to start a new build without running into troubles again. Most of the time, especially when using Docker build, you will only need no. 3 to get everything up and running again. # Troubleshooting diff --git a/build-docker.sh b/build-docker.sh index 2dc55c1..a7f18f1 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -48,7 +48,7 @@ fi CONTAINER_NAME=${CONTAINER_NAME:-pigen_work} CONTINUE=${CONTINUE:-0} PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-0} -PIGEN_DOCKER_OPTS=${PIGEN_DOCKER_OPTS:-""} +PIGEN_DOCKER_OPTS=${PIGEN_DOCKER_OPTS:-""} if [ -z "${IMG_NAME}" ]; then echo "IMG_NAME not set in 'config'" 1>&2 diff --git a/build.sh b/build.sh index bcfdeb6..6f6a0d2 100755 --- a/build.sh +++ b/build.sh @@ -133,7 +133,7 @@ run_stage(){ done fi - if [ "${USE_QCOW2}" = "1" ]; then + if [ "${USE_QCOW2}" = "1" ]; then unload_qimage else # make sure we are not umounting during export-image stage @@ -369,7 +369,7 @@ for EXPORT_DIR in ${EXPORT_DIRS}; do else run_stage - fi + fi if [ "${USE_QEMU}" != "1" ]; then if [ -e "${EXPORT_DIR}/EXPORT_NOOBS" ]; then # shellcheck source=/dev/null From 8862e4d9ff15b44daa8563872fc928a3317e33dc Mon Sep 17 00:00:00 2001 From: Romain Bazile Date: Wed, 2 Feb 2022 14:10:24 +0100 Subject: [PATCH 31/48] Add check and warning for a space presence in the base path --- README.md | 18 ++++++++++++++++++ build.sh | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/README.md b/README.md index e1676bb..893a5cc 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,24 @@ qemu-utils kpartx The file `depends` contains a list of tools needed. The format of this package is `[:]`. +## Getting started with building your images + +Getting started is as simple as cloning this repository on your build machine. You +can do so with: + +```bash +git clone -–depth 1 https://github.com/RPI-Distro/pi-gen.git +``` + +Using `--depth 1` with `git clone` will create a shallow clone, only containing +the latest revision of the repository. Do not do this on your development machine. + +Also, be careful to clone the repository to a base path **NOT** containing spaces. +This configuration is not supported by debootstrap and will lead to `pi-gen` not +running. + +After cloning the repository, you can move to the next step and start configuring +your build. ## Config diff --git a/build.sh b/build.sh index 6f6a0d2..f743e2a 100755 --- a/build.sh +++ b/build.sh @@ -155,6 +155,14 @@ if [ "$(id -u)" != "0" ]; then fi BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +if [[ $BASE_DIR = *" "* ]]; then + echo "There is a space in the base path of pi-gen" + echo "This is not a valid setup supported by debootstrap." + echo "Please remove the spaces, or move pi-gen directory to a base path without spaces" 1>&2 + exit 1 +fi + export BASE_DIR if [ -f config ]; then From 724820051c400f9554d7fa311e7fc378bf598282 Mon Sep 17 00:00:00 2001 From: bwisn Date: Tue, 1 Feb 2022 14:42:00 +0100 Subject: [PATCH 32/48] Add gpg dependency --- Dockerfile | 2 +- README.md | 2 +- depends | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 479e708..69fd86c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get -y update && \ git vim parted \ quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \ libarchive-tools libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\ - binfmt-support ca-certificates qemu-utils kpartx fdisk \ + binfmt-support ca-certificates qemu-utils kpartx fdisk gpg \ && rm -rf /var/lib/apt/lists/* COPY . /pi-gen/ diff --git a/README.md b/README.md index 893a5cc..cda0255 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To install the required dependencies for `pi-gen` you should run: ```bash 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 \ -qemu-utils kpartx +qemu-utils kpartx gpg ``` The file `depends` contains a list of tools needed. The format of this diff --git a/depends b/depends index eeb2490..654531a 100644 --- a/depends +++ b/depends @@ -19,3 +19,4 @@ lsmod:kmod bc qemu-nbd:qemu-utils kpartx +gpg From b3f6852c3efed9805a3e8a5eeb3454f0fd1a397d Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Thu, 3 Feb 2022 15:50:48 +0000 Subject: [PATCH 33/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 039cb22..c580c2d 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,4 +1,7 @@ UNRELEASED: + * +2022-01-28: + * Policykit CVE-2021-4034 fix * rc_gui - add combo box to allow resolution to be set for VNC connections * rc_gui - camera interface switch removed * lxpanel - remove appearance settings from preferences dialog; instead add menu option to open general Appearance Settings application @@ -14,7 +17,7 @@ UNRELEASED: * pipanel - add command-line option to open on arbitrary tab * lxplug-network - suppress ’scan received’ logging message * raspberrypi-ui-mods - set hover colour for taskbar items based on taskbar colour, not system highlight colour - * Legacy camera applications and libraries reinstalled + * Legacy camera applications and libraries reinstalled (32-bit only) * Bug fix - lxinput - lxsession config file not being written on first attempt * Bug fix - lxinput - set timer for file write to prevent slider slowing down * Bug fix - lxinput - write values to gsettings as well as xinput and xsettings to take effect within mutter From c63a3aedf95988b25156794894e512d05b3dc92d Mon Sep 17 00:00:00 2001 From: jannik Date: Wed, 16 Feb 2022 11:01:14 +0100 Subject: [PATCH 34/48] fix dash in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cda0255..c19e02e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Getting started is as simple as cloning this repository on your build machine. Y can do so with: ```bash -git clone -–depth 1 https://github.com/RPI-Distro/pi-gen.git +git clone --depth 1 https://github.com/RPI-Distro/pi-gen.git ``` Using `--depth 1` with `git clone` will create a shallow clone, only containing From b1d54c82fec27414ee5200bdc2069a56ede8a1af Mon Sep 17 00:00:00 2001 From: Romain Bazile Date: Tue, 22 Feb 2022 11:30:46 +0100 Subject: [PATCH 35/48] Provide information to build the 64 bit image in the README (#596) Fixes #595 --- README.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c19e02e..beba5c2 100644 --- a/README.md +++ b/README.md @@ -454,7 +454,22 @@ Now you should be able to start a new build without running into troubles again. # Troubleshooting ## `64 Bit Systems` -Please note there is currently an issue when compiling with a 64 Bit OS. See https://github.com/RPi-Distro/pi-gen/issues/271 +Please note there is currently an issue when compiling with a 64 Bit OS. See +https://github.com/RPi-Distro/pi-gen/issues/271 + +A 64 bit image can be generated from the `arm64` branch in this repository. Just +replace the command from [this section](#getting-started-with-building-your-images) +by the one below, and follow the rest of the documentation: +```bash +git clone --depth 1 --branch arm64 https://github.com/RPI-Distro/pi-gen.git +``` + +If you want to generate a 64 bits image from a Raspberry Pi running a 32 bits +version, you need to add `arm_64bit=1` to your `config.txt` file and reboot your +machine. This will restart your machine with a 64 bits kernel. This will only +work from a Raspberry Pi with a 64-bit capable processor (i.e. Raspberry Pi Zero +2, Raspberry Pi 3 or Raspberry Pi 4). + ## `binfmt_misc` From b2bd87c512e7b73bb00b55bf11f914d8b44c4f7b Mon Sep 17 00:00:00 2001 From: jannik Date: Tue, 22 Feb 2022 19:01:25 +0100 Subject: [PATCH 36/48] Add more binfmt errors and hints to README --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index beba5c2..44d8413 100644 --- a/README.md +++ b/README.md @@ -478,11 +478,16 @@ possible to make use of `pi-gen` on an x86_64 system, even though it will be run ARM binaries. This requires support from the [`binfmt_misc`](https://en.wikipedia.org/wiki/Binfmt_misc) kernel module. -You may see the following error: +You may see one of the following errors: ``` update-binfmts: warning: Couldn't load the binfmt_misc module. ``` +``` +W: Failure trying to run: chroot "/pi-gen/work/test/stage0/rootfs" /bin/true +and/or +chroot: failed to run command '/bin/true': Exec format error +``` To resolve this, ensure that the following files are available (install them if necessary): @@ -492,3 +497,5 @@ To resolve this, ensure that the following files are available (install them if ``` You may also need to load the module by hand - run `modprobe binfmt_misc`. + +If you are using WSL to build you may have to enable the service `sudo update-binfmts --enable` \ No newline at end of file From 1ad53be314dbc73d7117dbd610a982c90e115f37 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 23 Feb 2022 18:32:32 +0000 Subject: [PATCH 37/48] Add flush option to boot partition https://github.com/raspberrypi/linux/issues/4844 --- stage1/01-sys-tweaks/files/fstab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stage1/01-sys-tweaks/files/fstab b/stage1/01-sys-tweaks/files/fstab index f16e3fb..89f7bcb 100644 --- a/stage1/01-sys-tweaks/files/fstab +++ b/stage1/01-sys-tweaks/files/fstab @@ -1,3 +1,3 @@ proc /proc proc defaults 0 0 -BOOTDEV /boot vfat defaults 0 2 +BOOTDEV /boot vfat defaults.flush 0 2 ROOTDEV / ext4 defaults,noatime 0 1 From c5a906b676647c2334ddb595435ebbbe869bff15 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Wed, 23 Feb 2022 18:36:02 +0000 Subject: [PATCH 38/48] Fix whitespace --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44d8413..a8431fa 100644 --- a/README.md +++ b/README.md @@ -498,4 +498,4 @@ To resolve this, ensure that the following files are available (install them if You may also need to load the module by hand - run `modprobe binfmt_misc`. -If you are using WSL to build you may have to enable the service `sudo update-binfmts --enable` \ No newline at end of file +If you are using WSL to build you may have to enable the service `sudo update-binfmts --enable` From a120c4128ece237754af9e8bef6679d6a51f73ec Mon Sep 17 00:00:00 2001 From: Phil Elwell <8911409+pelwell@users.noreply.github.com> Date: Mon, 28 Feb 2022 09:58:08 +0000 Subject: [PATCH 39/48] Fix fstab flush option raspberrypi/linux#4844 --- stage1/01-sys-tweaks/files/fstab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stage1/01-sys-tweaks/files/fstab b/stage1/01-sys-tweaks/files/fstab index 89f7bcb..2159c1c 100644 --- a/stage1/01-sys-tweaks/files/fstab +++ b/stage1/01-sys-tweaks/files/fstab @@ -1,3 +1,3 @@ proc /proc proc defaults 0 0 -BOOTDEV /boot vfat defaults.flush 0 2 +BOOTDEV /boot vfat defaults,flush 0 2 ROOTDEV / ext4 defaults,noatime 0 1 From 5d044ba71b7eba33860fdbf222a9a29ae42691e9 Mon Sep 17 00:00:00 2001 From: Romain Bazile Date: Tue, 1 Mar 2022 17:23:42 +0100 Subject: [PATCH 40/48] Addition of a `DEPLOY_COMPRESSION` option to the configuration (#592) --- Dockerfile | 2 +- README.md | 25 ++++++++++++++++++++++--- build.sh | 14 ++++++++++++-- depends | 1 + export-image/04-finalise/01-run.sh | 25 ++++++++++++++++++------- export-noobs/prerun.sh | 6 +----- 6 files changed, 55 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 69fd86c..2a5d8fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get -y update && \ git vim parted \ quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \ libarchive-tools libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\ - binfmt-support ca-certificates qemu-utils kpartx fdisk gpg \ + binfmt-support ca-certificates qemu-utils kpartx fdisk gpg pigz\ && rm -rf /var/lib/apt/lists/* COPY . /pi-gen/ diff --git a/README.md b/README.md index a8431fa..3cab6ec 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To install the required dependencies for `pi-gen` you should run: ```bash 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 \ -qemu-utils kpartx gpg +qemu-utils kpartx gpg pigz ``` The file `depends` contains a list of tools needed. The format of this @@ -116,9 +116,28 @@ The following environment variables are supported: Output directory for target system images and NOOBS bundles. - * `DEPLOY_ZIP` (Default: `1`) + * `DEPLOY_COMPRESSION` (Default: `zip`) - Setting to `0` will deploy the actual image (`.img`) instead of a zipped image (`.zip`). + Set to: + * `none` to deploy the actual image (`.img`). + * `zip` to deploy a zipped image (`.zip`). + * `gz` to deploy a gzipped image (`.img.gz`). + * `xz` to deploy a xzipped image (`.img.xz`). + + + * `DEPLOY_ZIP` (Deprecated) + + This option has been deprecated in favor of `DEPLOY_COMPRESSION`. + + If `DEPLOY_ZIP=0` is still present in your config file, the behavior is the + same as with `DEPLOY_COMPRESSION=none`. + + * `COMPRESSION_LEVEL` (Default: `6`) + + Compression level to be used when using `zip`, `gz` or `xz` for + `DEPLOY_COMPRESSION`. From 0 to 9 (refer to the tool man page for more + information on this. Usually 0 is no compression but very fast, up to 9 with + the best compression but very slow ). * `USE_QEMU` (Default: `"0"`) diff --git a/build.sh b/build.sh index f743e2a..4b75e79 100755 --- a/build.sh +++ b/build.sh @@ -203,12 +203,22 @@ fi export USE_QEMU="${USE_QEMU:-0}" export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}" export IMG_FILENAME="${IMG_FILENAME:-"${IMG_DATE}-${IMG_NAME}"}" -export ZIP_FILENAME="${ZIP_FILENAME:-"image_${IMG_DATE}-${IMG_NAME}"}" +export ARCHIVE_FILENAME="${ARCHIVE_FILENAME:-"image_${IMG_DATE}-${IMG_NAME}"}" export SCRIPT_DIR="${BASE_DIR}/scripts" export WORK_DIR="${WORK_DIR:-"${BASE_DIR}/work/${IMG_NAME}"}" export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"} -export DEPLOY_ZIP="${DEPLOY_ZIP:-1}" + +# DEPLOY_ZIP was deprecated in favor of DEPLOY_COMPRESSION +# This preserve the old behavior with DEPLOY_ZIP=0 where no archive was created +if [ -z "${DEPLOY_COMPRESSION}" ] && [ "${DEPLOY_ZIP:-1}" = "0" ]; then + echo "DEPLOY_ZIP has been deprecated in favor of DEPLOY_COMPRESSION" + echo "Similar behavior to DEPLOY_ZIP=0 can be obtained with DEPLOY_COMPRESSION=none" + echo "Please update your config file" + DEPLOY_COMPRESSION=none +fi +export DEPLOY_COMPRESSION=${DEPLOY_COMPRESSION:-zip} +export COMPRESSION_LEVEL=${COMPRESSION_LEVEL:-6} export LOG_FILE="${WORK_DIR}/build.log" export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi} diff --git a/depends b/depends index 654531a..db88171 100644 --- a/depends +++ b/depends @@ -20,3 +20,4 @@ bc qemu-nbd:qemu-utils kpartx gpg +pigz diff --git a/export-image/04-finalise/01-run.sh b/export-image/04-finalise/01-run.sh index d7ace58..c104366 100755 --- a/export-image/04-finalise/01-run.sh +++ b/export-image/04-finalise/01-run.sh @@ -78,7 +78,7 @@ cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE" mkdir -p "${DEPLOY_DIR}" -rm -f "${DEPLOY_DIR}/${ZIP_FILENAME}${IMG_SUFFIX}.zip" +rm -f "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.*" rm -f "${DEPLOY_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" mv "$INFO_FILE" "$DEPLOY_DIR/" @@ -95,11 +95,22 @@ else make_bootable_image "${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.qcow2" "$IMG_FILE" fi -if [ "${DEPLOY_ZIP}" == "1" ]; then +case "${DEPLOY_COMPRESSION}" in +zip) pushd "${STAGE_WORK_DIR}" > /dev/null - zip "${DEPLOY_DIR}/${ZIP_FILENAME}${IMG_SUFFIX}.zip" \ - "$(basename "${IMG_FILE}")" + zip -"${COMPRESSION_LEVEL}" \ + "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.zip" "$(basename "${IMG_FILE}")" popd > /dev/null -else - mv "$IMG_FILE" "$DEPLOY_DIR/" -fi + ;; +gz) + pigz --force -"${COMPRESSION_LEVEL}" "$IMG_FILE" --stdout > \ + "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.img.gz" + ;; +xz) + xz --compress --force --threads 0 --memlimit-compress=50% -"${COMPRESSION_LEVEL}" \ + --stdout "$IMG_FILE" > "${DEPLOY_DIR}/${ARCHIVE_FILENAME}${IMG_SUFFIX}.img.xz" + ;; +none | *) + cp "$IMG_FILE" "$DEPLOY_DIR/" +;; +esac diff --git a/export-noobs/prerun.sh b/export-noobs/prerun.sh index d97508a..97dd094 100755 --- a/export-noobs/prerun.sh +++ b/export-noobs/prerun.sh @@ -3,11 +3,7 @@ NOOBS_DIR="${STAGE_WORK_DIR}/${IMG_NAME}${IMG_SUFFIX}" mkdir -p "${STAGE_WORK_DIR}" -if [ "${DEPLOY_ZIP}" == "1" ]; then - IMG_FILE="${WORK_DIR}/export-image/${IMG_FILENAME}${IMG_SUFFIX}.img" -else - IMG_FILE="${DEPLOY_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" -fi +IMG_FILE="${WORK_DIR}/export-image/${IMG_FILENAME}${IMG_SUFFIX}.img" unmount_image "${IMG_FILE}" From 95ac3cfb3b223dad058c1aee1d8b6e3f5e5b5935 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 18 Mar 2022 15:03:23 +0000 Subject: [PATCH 41/48] Remove default password --- README.md | 4 ++-- build.sh | 2 +- stage1/01-sys-tweaks/00-run.sh | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3cab6ec..2ef35e8 100644 --- a/README.md +++ b/README.md @@ -179,9 +179,9 @@ The following environment variables are supported: Username for the first user - * `FIRST_USER_PASS` (Default: "raspberry") + * `FIRST_USER_PASS` (Default: unset) - Password for the first user + Password for the first user. If unset, the account is locked. * `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset) diff --git a/build.sh b/build.sh index 4b75e79..014035c 100755 --- a/build.sh +++ b/build.sh @@ -224,7 +224,7 @@ export LOG_FILE="${WORK_DIR}/build.log" export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi} export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} -export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} +export FIRST_USER_PASS export RELEASE=${RELEASE:-bullseye} export WPA_ESSID export WPA_PASSWORD diff --git a/stage1/01-sys-tweaks/00-run.sh b/stage1/01-sys-tweaks/00-run.sh index 9c380ec..0f761bd 100755 --- a/stage1/01-sys-tweaks/00-run.sh +++ b/stage1/01-sys-tweaks/00-run.sh @@ -8,7 +8,10 @@ on_chroot << EOF if ! id -u ${FIRST_USER_NAME} >/dev/null 2>&1; then adduser --disabled-password --gecos "" ${FIRST_USER_NAME} fi -echo "${FIRST_USER_NAME}:${FIRST_USER_PASS}" | chpasswd + +if [ -n "${FIRST_USER_PASS}" ]; then + echo "${FIRST_USER_NAME}:${FIRST_USER_PASS}" | chpasswd +fi echo "root:root" | chpasswd EOF From b0316ae8706e3abe0d4bd2bdf1cda976a6e2e6a7 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 18 Mar 2022 17:03:26 +0000 Subject: [PATCH 42/48] Enable userconf-pi on first boot --- export-image/01-user-rename/00-packages | 1 + export-image/01-user-rename/01-run.sh | 5 +++++ export-image/{01-set-sources => 02-set-sources}/01-run.sh | 0 export-image/{02-network => 03-network}/01-run.sh | 0 export-image/{02-network => 03-network}/files/resolv.conf | 0 export-image/{03-set-partuuid => 04-set-partuuid}/00-run.sh | 0 export-image/{04-finalise => 05-finalise}/01-run.sh | 0 7 files changed, 6 insertions(+) create mode 100644 export-image/01-user-rename/00-packages create mode 100755 export-image/01-user-rename/01-run.sh rename export-image/{01-set-sources => 02-set-sources}/01-run.sh (100%) rename export-image/{02-network => 03-network}/01-run.sh (100%) rename export-image/{02-network => 03-network}/files/resolv.conf (100%) rename export-image/{03-set-partuuid => 04-set-partuuid}/00-run.sh (100%) rename export-image/{04-finalise => 05-finalise}/01-run.sh (100%) diff --git a/export-image/01-user-rename/00-packages b/export-image/01-user-rename/00-packages new file mode 100644 index 0000000..e8b69fc --- /dev/null +++ b/export-image/01-user-rename/00-packages @@ -0,0 +1 @@ +userconf-pi diff --git a/export-image/01-user-rename/01-run.sh b/export-image/01-user-rename/01-run.sh new file mode 100755 index 0000000..8a5617b --- /dev/null +++ b/export-image/01-user-rename/01-run.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +on_chroot << EOF + SUDO_USER="${FIRST_USER_NAME}" rename-user -f -s +EOF diff --git a/export-image/01-set-sources/01-run.sh b/export-image/02-set-sources/01-run.sh similarity index 100% rename from export-image/01-set-sources/01-run.sh rename to export-image/02-set-sources/01-run.sh diff --git a/export-image/02-network/01-run.sh b/export-image/03-network/01-run.sh similarity index 100% rename from export-image/02-network/01-run.sh rename to export-image/03-network/01-run.sh diff --git a/export-image/02-network/files/resolv.conf b/export-image/03-network/files/resolv.conf similarity index 100% rename from export-image/02-network/files/resolv.conf rename to export-image/03-network/files/resolv.conf diff --git a/export-image/03-set-partuuid/00-run.sh b/export-image/04-set-partuuid/00-run.sh similarity index 100% rename from export-image/03-set-partuuid/00-run.sh rename to export-image/04-set-partuuid/00-run.sh diff --git a/export-image/04-finalise/01-run.sh b/export-image/05-finalise/01-run.sh similarity index 100% rename from export-image/04-finalise/01-run.sh rename to export-image/05-finalise/01-run.sh From 09ebc77e6b6dac3892ab09242fe39eec892abe93 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 21 Mar 2022 11:48:11 +0000 Subject: [PATCH 43/48] stage4: Install rpi-imager --- stage4/00-install-packages/00-packages | 1 + 1 file changed, 1 insertion(+) diff --git a/stage4/00-install-packages/00-packages b/stage4/00-install-packages/00-packages index e76d411..4e9519f 100644 --- a/stage4/00-install-packages/00-packages +++ b/stage4/00-install-packages/00-packages @@ -23,3 +23,4 @@ piwiz rp-prefapps ffmpeg vlc +rpi-imager From 1b635daf30b70dd43a3b6ba15da222a35b9b1666 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 21 Mar 2022 11:48:20 +0000 Subject: [PATCH 44/48] stage4: Install rpi-wayland --- stage4/00-install-packages/00-packages | 1 + 1 file changed, 1 insertion(+) diff --git a/stage4/00-install-packages/00-packages b/stage4/00-install-packages/00-packages index 4e9519f..7854596 100644 --- a/stage4/00-install-packages/00-packages +++ b/stage4/00-install-packages/00-packages @@ -24,3 +24,4 @@ rp-prefapps ffmpeg vlc rpi-imager +rpi-wayland From f1f6722ba445ba07d6929b9b4a1f6dbb811cd03f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 28 Mar 2022 19:44:24 +0100 Subject: [PATCH 45/48] Update release notes --- .../00-release/files/release_notes.txt | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index c580c2d..ccfe5af 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,28 @@ UNRELEASED: - * + * Default “pi” user has been removed; the first-boot wizard enforces the creation of a new user account + * rename-user script added to allow existing users to be renamed by temporarily rebooting to cut-down first-boot wizard + * Overscan now managed by xrandr under KMS, can be set independently for both monitors, and takes effect on the fly rather than requiring reboot + * piwiz - first-boot wizard now runs in a separate session as a different user with different graphics + * piwiz - first-boot wizard now has automatic pairing for discoverable Bluetooth mice and keyboards + * lxinput - keyboard delay and repeat settings now persist across reboots under mutter + * raspi-config / rc_gui - removed pixel doubling option when KMS driver in use + * raspi-config - removed composition manager option when legacy driver in use + * arandr - restored support for interlaced displays + * mutter - implemented more intuitive window and application cycling behaviour + * pi-greeter - rebuilt for GTK3 + * Bug fix - graphical corruption in system tray icons + * Bug fix - desktop items vanishing when dragged + * Bug fix - terminal windows not focussed correctly when launched + * Bug fix - crash after multiple update checks in updater plugin + * Bug fix - Raspberry Pi keyboard auto-detect by wizard was broken in previous release + * Bug fix - spurious “connected” dialog box shown when reconnecting to Bluetooth LE devices on boot + * Support for experimental Wayland backend added - can be enabled as an advanced option in raspi-config + * Various small bug fixes and graphical tweaks + * Chromium upgraded to version 98.0.4758.106 + * FFmpeg HW acceleration improved + * OpenJDK 17 now defaults to 'client' JVM for ARMv6 compatibility + * Raspberry Pi firmware 69277bc713133a54a1d20554d79544da1ae2b6ca + * Linux kernel 5.15.30 2022-01-28: * Policykit CVE-2021-4034 fix * rc_gui - add combo box to allow resolution to be set for VNC connections From f651a43337fd203a4a29f1898e8814324eb2545d Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 29 Mar 2022 10:59:14 +0100 Subject: [PATCH 46/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index ccfe5af..5a0696e 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -2,6 +2,7 @@ UNRELEASED: * Default “pi” user has been removed; the first-boot wizard enforces the creation of a new user account * rename-user script added to allow existing users to be renamed by temporarily rebooting to cut-down first-boot wizard * Overscan now managed by xrandr under KMS, can be set independently for both monitors, and takes effect on the fly rather than requiring reboot + * GTK3 switch control now used in place of paired radio buttons throughout * piwiz - first-boot wizard now runs in a separate session as a different user with different graphics * piwiz - first-boot wizard now has automatic pairing for discoverable Bluetooth mice and keyboards * lxinput - keyboard delay and repeat settings now persist across reboots under mutter From 226b479f8d32919c9fe36dd5b4c20c02682f8180 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 4 Apr 2022 12:40:32 +0100 Subject: [PATCH 47/48] stage1: install systemd-timesyncd systemd no longer depends on systemd-timesyncd, so we need to include it here --- stage1/03-install-packages/00-packages | 1 + 1 file changed, 1 insertion(+) diff --git a/stage1/03-install-packages/00-packages b/stage1/03-install-packages/00-packages index 73edcc9..a3d2fb6 100644 --- a/stage1/03-install-packages/00-packages +++ b/stage1/03-install-packages/00-packages @@ -1 +1,2 @@ libraspberrypi-bin libraspberrypi0 +systemd-timesyncd From 3385618efbd428bc14a13b7195d44978689d343a Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Fri, 8 Apr 2022 15:26:37 +0100 Subject: [PATCH 48/48] Update release notes --- export-noobs/00-release/files/release_notes.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/export-noobs/00-release/files/release_notes.txt b/export-noobs/00-release/files/release_notes.txt index 5a0696e..331d8d9 100644 --- a/export-noobs/00-release/files/release_notes.txt +++ b/export-noobs/00-release/files/release_notes.txt @@ -1,5 +1,7 @@ UNRELEASED: - * Default “pi” user has been removed; the first-boot wizard enforces the creation of a new user account + * +2022-04-04: + * Default "pi” user has been removed; the first-boot wizard enforces the creation of a new user account * rename-user script added to allow existing users to be renamed by temporarily rebooting to cut-down first-boot wizard * Overscan now managed by xrandr under KMS, can be set independently for both monitors, and takes effect on the fly rather than requiring reboot * GTK3 switch control now used in place of paired radio buttons throughout @@ -16,7 +18,7 @@ UNRELEASED: * Bug fix - terminal windows not focussed correctly when launched * Bug fix - crash after multiple update checks in updater plugin * Bug fix - Raspberry Pi keyboard auto-detect by wizard was broken in previous release - * Bug fix - spurious “connected” dialog box shown when reconnecting to Bluetooth LE devices on boot + * Bug fix - spurious "connected” dialog box shown when reconnecting to Bluetooth LE devices on boot * Support for experimental Wayland backend added - can be enabled as an advanced option in raspi-config * Various small bug fixes and graphical tweaks * Chromium upgraded to version 98.0.4758.106