Merge branch 'master' into arm64

This commit is contained in:
Serge Schneider 2023-09-27 16:01:28 +01:00
commit c318daf364
31 changed files with 107 additions and 142 deletions

View File

@ -195,9 +195,9 @@ The following environment variables are supported:
stays activated. `FIRST_USER_PASS` must be set for this to work. Please be aware of the implied
security risk of defining a default username and password for your devices.
* `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset)
* `WPA_COUNTRY` (Default: unset)
If these are set, they are use to configure `wpa_supplicant.conf`, so that the Raspberry Pi can automatically connect to a wireless network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wireless network will be configured. If set, `WPA_PASSWORD` must be between 8 and 63 characters. `WPA_COUNTRY` is a 2-letter ISO/IEC 3166 country Code, i.e. `GB`
Sets the default WLAN regulatory domain and unblocks WLAN interfaces. This should be a 2-letter ISO/IEC 3166 country Code, i.e. `GB`
* `ENABLE_SSH` (Default: `0`)

View File

@ -226,9 +226,7 @@ export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi}
export FIRST_USER_NAME=${FIRST_USER_NAME:-pi}
export FIRST_USER_PASS
export DISABLE_FIRST_BOOT_USER_RENAME=${DISABLE_FIRST_BOOT_USER_RENAME:-0}
export RELEASE=${RELEASE:-bullseye} # Don't forget to update stage0/prerun.sh
export WPA_ESSID
export WPA_PASSWORD
export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh
export WPA_COUNTRY
export ENABLE_SSH="${ENABLE_SSH:-0}"
export PUBKEY_ONLY_SSH="${PUBKEY_ONLY_SSH:-0}"

View File

@ -4,6 +4,6 @@ rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache"
find "${ROOTFS_DIR}/var/lib/apt/lists/" -type f -delete
on_chroot << EOF
apt-get update
apt-get -y dist-upgrade
apt-get -y dist-upgrade --auto-remove --purge
apt-get clean
EOF

View File

@ -12,7 +12,6 @@ if [ "${NO_PRERUN_QCOW2}" = "0" ]; then
sed -i "s/BOOTDEV/PARTUUID=${BOOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab"
sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab"
sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/boot/cmdline.txt"
sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/boot/firmware/cmdline.txt"
fi

View File

@ -3,7 +3,10 @@
IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img"
INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info"
sed -i 's/^update_initramfs=.*/update_initramfs=all/' "${ROOTFS_DIR}/etc/initramfs-tools/update-initramfs.conf"
on_chroot << EOF
update-initramfs -u
if [ -x /etc/init.d/fake-hwclock ]; then
/etc/init.d/fake-hwclock stop
fi
@ -53,7 +56,7 @@ rm -f "${ROOTFS_DIR}/root/.vnc/private.key"
rm -f "${ROOTFS_DIR}/etc/vnc/updateid"
update_issue "$(basename "${EXPORT_DIR}")"
install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/issue.txt"
install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/firmware/issue.txt"
cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE"

View File

@ -10,8 +10,8 @@ if [ "${NO_PRERUN_QCOW2}" = "0" ]; then
rm -rf "${ROOTFS_DIR}"
mkdir -p "${ROOTFS_DIR}"
BOOT_SIZE="$((256 * 1024 * 1024))"
ROOT_SIZE=$(du --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot --block-size=1 | cut -f 1)
BOOT_SIZE="$((512 * 1024 * 1024))"
ROOT_SIZE=$(du --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
ALIGN="$((4 * 1024 * 1024))"
@ -59,9 +59,9 @@ if [ "${NO_PRERUN_QCOW2}" = "0" ]; then
mkfs.ext4 -L rootfs -O "$ROOT_FEATURES" "$ROOT_DEV" > /dev/null
mount -v "$ROOT_DEV" "${ROOTFS_DIR}" -t ext4
mkdir -p "${ROOTFS_DIR}/boot"
mount -v "$BOOT_DEV" "${ROOTFS_DIR}/boot" -t vfat
mkdir -p "${ROOTFS_DIR}/boot/firmware"
mount -v "$BOOT_DEV" "${ROOTFS_DIR}/boot/firmware" -t vfat
rsync -aHAXx --exclude /var/cache/apt/archives --exclude /boot "${EXPORT_ROOTFS_DIR}/" "${ROOTFS_DIR}/"
rsync -rtx "${EXPORT_ROOTFS_DIR}/boot/" "${ROOTFS_DIR}/boot/"
rsync -aHAXx --exclude /var/cache/apt/archives --exclude /boot/firmware "${EXPORT_ROOTFS_DIR}/" "${ROOTFS_DIR}/"
rsync -rtx "${EXPORT_ROOTFS_DIR}/boot/firmware/" "${ROOTFS_DIR}/boot/firmware/"
fi

View File

@ -1,4 +1,26 @@
UNRELEASED:
* Based on Debian bookworm release
* Support for Raspberry Pi 5
* Desktop now runs on the Wayfire Wayland compositing window manager on Raspberry Pi 4 and 5 platforms; on X11 using the openbox window manager on older platforms
* lxpanel replaced with new wf-panel-pi application when running Wayland; existing lxpanel plugins migrated; gpu performance and power plugins added
* pcmanfm modified to use Wayland backend when running on Wayland
* PipeWire used instead of PulseAudio as audio control subsystem; various changes made to volume control plugin to support this
* NetworkManager used instead of dhcpcd as networking interface; various changes made to networking plugin to support this
* Firefox browser added as alternative to Chromium; selection of default browser added to Raspberry Pi Configuration tool
* WayVNC VNC server used instead of RealVNC when running on Wayland
* All customisation and configuration applications modified to customise Wayfire environment as appropriate
* grim used as screenshot tool instead of scrot when running on Wayland
* eom image viewer used instead of gpicview
* evince document viewer used instead of qpdfview
* Chromium web browser updated to version 116
* VLC media player updated to version 3.0.18
* Magnifier program not available when running Wayland; Wayfire includes screen zoom capabilities
* CustomPC and Wireframe removed from Bookshelf
* Numerous small changes and bug fixes
* Switched from raspberrypi-kernel to Debian-based kernel packaging (linux-image-rpi-*)
* Switched from raspberrypi-bootloader to Debian based firmware packaging (raspi-firmware)
* /boot mount point moved to /boot/firmware
2023-05-03:
* 64-bit Mathematica added to rp-prefapps
* Bug fix - occasional segfault in CPU temperature plugin
* Bug fix - X server crash when changing screen orientation

View File

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

View File

@ -1,2 +1,9 @@
raspberrypi-bootloader
raspberrypi-kernel
initramfs-tools
raspi-firmware
linux-image-rpi-v6
linux-image-rpi-v7
linux-image-rpi-v7l
linux-image-rpi-v8
linux-headers-rpi-v6
linux-headers-rpi-v7
linux-headers-rpi-v7l

3
stage0/02-firmware/02-run.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash -e
sed -i 's/^update_initramfs=.*/update_initramfs=no/' "${ROOTFS_DIR}/etc/initramfs-tools/update-initramfs.conf"

View File

@ -1,6 +1,6 @@
#!/bin/bash -e
if [ "$RELEASE" != "bullseye" ]; then
if [ "$RELEASE" != "bookworm" ]; then
echo "WARNING: RELEASE does not match the intended option for this branch."
echo " Please check the relevant README.md section."
fi

View File

@ -1,4 +1,17 @@
#!/bin/bash -e
install -m 644 files/cmdline.txt "${ROOTFS_DIR}/boot/"
install -m 644 files/config.txt "${ROOTFS_DIR}/boot/"
mkdir -p "${ROOTFS_DIR}/boot/firmware"
if ! [ -L "${ROOTFS_DIR}/boot/overlays" ]; then
ln -s firmware/overlays "${ROOTFS_DIR}/boot/overlays"
fi
install -m 644 files/cmdline.txt "${ROOTFS_DIR}/boot/firmware/"
if ! [ -L "${ROOTFS_DIR}/boot/cmdline.txt" ]; then
ln -s firmware/cmdline.txt "${ROOTFS_DIR}/boot/cmdline.txt"
fi
install -m 644 files/config.txt "${ROOTFS_DIR}/boot/firmware/"
if ! [ -L "${ROOTFS_DIR}/boot/config.txt" ]; then
ln -s firmware/config.txt "${ROOTFS_DIR}/boot/config.txt"
fi

View File

@ -1,73 +1,44 @@
# For more options and information see
# http://rpf.io/configtxt
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=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
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Additional overlays and parameters are documented
# /boot/firmware/overlays/README
# Automatically load overlays for detected cameras
camera_auto_detect=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Automatically load initramfs files, if found
auto_initramfs=1
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan
disable_overscan=1
# Run as fast as firmware / board allows
arm_boost=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
@ -76,8 +47,3 @@ otg_mode=1
[all]
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
[all]

View File

@ -1,3 +1,3 @@
proc /proc proc defaults 0 0
BOOTDEV /boot vfat defaults 0 2
BOOTDEV /boot/firmware vfat defaults 0 2
ROOTDEV / ext4 defaults,noatime 0 1

View File

@ -1,13 +1,17 @@
ssh less fbset sudo psmisc strace ed ncdu crda
ssh less fbset sudo psmisc strace ed ncdu
console-setup keyboard-configuration debconf-utils parted
build-essential manpages-dev bash-completion gdb pkg-config
python-is-python3
python3-rpi.gpio v4l-utils
v4l-utils
python3-libgpiod
python3-gpiozero
pigpio python3-pigpio raspi-gpio python3-rpi.gpio
python3-spidev
python3-smbus2
avahi-daemon
lua5.1
luajit
hardlink ca-certificates curl
ca-certificates curl
fake-hwclock nfs-common usbutils
libraspberrypi-dev libraspberrypi-doc libfreetype6-dev
dosfstools
@ -24,12 +28,11 @@ htop
man-db
policykit-1
ssh-import-id
rng-tools
ethtool
ntfs-3g
pciutils
rpi-eeprom
raspinfo
raspi-utils
udisks2
unzip zip p7zip-full
file

View File

@ -1,4 +1,3 @@
cifs-utils
libcamera-apps-lite
mkvtoolnix
python3-picamera2

View File

@ -1,5 +1,5 @@
--- stage2.orig/rootfs/boot/cmdline.txt
+++ stage2/rootfs/boot/cmdline.txt
--- stage2.orig/rootfs/boot/firmware/cmdline.txt
+++ stage2/rootfs/boot/firmware/cmdline.txt
@@ -1 +1 @@
-console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 fsck.repair=yes rootwait
+console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot

View File

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

View File

@ -3,32 +3,12 @@
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
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_netconf 1
EOF
if [ -v WPA_COUNTRY ]; then
on_chroot <<- EOF
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_wifi_country "${WPA_COUNTRY}"
EOF
fi
if [ -v WPA_ESSID ] && [ -v WPA_PASSWORD ]; then
on_chroot <<EOF
set -o pipefail
wpa_passphrase "${WPA_ESSID}" "${WPA_PASSWORD}" | tee -a "/etc/wpa_supplicant/wpa_supplicant.conf"
EOF
elif [ -v WPA_ESSID ]; then
cat >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" << EOL
network={
ssid="${WPA_ESSID}"
key_mgmt=NONE
}
EOL
fi
# Disable wifi on 5GHz models if WPA_COUNTRY is not set
mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/"
if [ -n "$WPA_COUNTRY" ]; then

View File

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

View File

@ -1,11 +1,12 @@
gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
qpdfview gtk2-engines alsa-utils
evince gtk2-engines alsa-utils
desktop-base
git
policykit-1
gvfs
rfkill
chromium-browser rpi-chromium-mods libwidevinecdm0
firefox rpi-firefox-mods
gldriver-test
fonts-droid-fallback
fonts-liberation2
@ -13,5 +14,6 @@ obconf
arandr
libcamera-tools
libcamera-apps
python3-picamera2
python3-pyqt5
python3-opengl

View File

@ -1,7 +1,8 @@
xserver-xorg xinit
mousepad
eom
lxde lxtask menu-xdg
zenity xdg-utils
gvfs-backends gvfs-fuse
lightdm gnome-themes-standard gnome-icon-theme
lightdm gnome-themes-extra-data gnome-icon-theme
gnome-keyring

View File

@ -1,5 +0,0 @@
#!/bin/bash -e
on_chroot << EOF
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_boot_wait 1
EOF

View File

@ -6,16 +6,12 @@ debian-reference-en dillo
raspberrypi-net-mods raspberrypi-ui-mods
python3-pip
python3-numpy
pypy
alacarte rc-gui sense-hat
tree
libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr
geany
piclone
pigpio python3-pigpio raspi-gpio python3-rpi.gpio
python3-spidev
python3-twython
python3-smbus
python3-flask
pprompt
piwiz
@ -23,4 +19,3 @@ rp-prefapps
ffmpeg
vlc
rpi-imager
rpi-wayland

View File

@ -1,22 +0,0 @@
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

View File

@ -1,6 +1,6 @@
#!/bin/sh -e
BOOKSHELF_URL="https://magpi.raspberrypi.org/bookshelf.xml"
BOOKSHELF_URL="https://magpi.raspberrypi.com/bookshelf.xml"
GUIDE_URL="$(curl -s "$BOOKSHELF_URL" | awk -F '[<>]' "/<TITLE>Raspberry Pi Beginner's Guide 4th Edition<\/TITLE>/ {f=1; next} f==1 && /PDF/ {print \$3; exit}")"
OUTPUT="$(basename "$GUIDE_URL" | cut -f1 -d'?')"

View File

@ -0,0 +1,5 @@
#!/bin/bash -e
on_chroot << EOF
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_wayland W2
EOF

View File

@ -0,0 +1,3 @@
#!/bin/bash -e
sed -i 's/^.*HandlePowerKey=.*$/HandlePowerKey=ignore/' "${ROOTFS_DIR}/etc/systemd/logind.conf"

View File

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

View File

@ -7,7 +7,7 @@ python3-sense-emu sense-emu-tools python-sense-emu-doc
wolfram-engine
claws-mail
greenfoot-unbundled bluej-unbundled
#greenfoot-unbundled bluej-unbundled
realvnc-vnc-viewer
code-the-classics

View File

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