@@ -1,6 +1,8 @@ | |||||
#!/bin/bash -eu | |||||
#!/usr/bin/env bash | |||||
# Note: Avoid usage of arrays as MacOS users have an older version of bash (v3.x) which does not supports arrays | |||||
set -eu | |||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | |||||
DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)" | |||||
BUILD_OPTS="$*" | BUILD_OPTS="$*" | ||||
@@ -84,18 +86,12 @@ ${DOCKER} build --build-arg BASE_IMAGE=debian:bullseye -t pi-gen "${DIR}" | |||||
if [ "${CONTAINER_EXISTS}" != "" ]; then | if [ "${CONTAINER_EXISTS}" != "" ]; then | ||||
DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont" | DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont" | ||||
DOCKER_CMDLINE_PRE=( \ | |||||
--rm \ | |||||
) | |||||
DOCKER_CMDLINE_POST=( \ | |||||
--volumes-from="${CONTAINER_NAME}" \ | |||||
) | |||||
DOCKER_CMDLINE_PRE="--rm" | |||||
DOCKER_CMDLINE_POST="--volumes-from=\"${CONTAINER_NAME}\"" | |||||
else | else | ||||
DOCKER_CMDLINE_NAME="${CONTAINER_NAME}" | DOCKER_CMDLINE_NAME="${CONTAINER_NAME}" | ||||
DOCKER_CMDLINE_PRE=( \ | |||||
) | |||||
DOCKER_CMDLINE_POST=( \ | |||||
) | |||||
DOCKER_CMDLINE_PRE="" | |||||
DOCKER_CMDLINE_POST="" | |||||
fi | fi | ||||
# Check if binfmt_misc is required | # Check if binfmt_misc is required | ||||
@@ -136,6 +132,7 @@ fi | |||||
trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${DOCKER_CMDLINE_NAME}' SIGINT SIGTERM | trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${DOCKER_CMDLINE_NAME}' SIGINT SIGTERM | ||||
time ${DOCKER} run \ | time ${DOCKER} run \ | ||||
$DOCKER_CMDLINE_PRE \ | |||||
--name "${DOCKER_CMDLINE_NAME}" \ | --name "${DOCKER_CMDLINE_NAME}" \ | ||||
--privileged \ | --privileged \ | ||||
--cap-add=ALL \ | --cap-add=ALL \ | ||||
@@ -144,6 +141,7 @@ time ${DOCKER} run \ | |||||
${PIGEN_DOCKER_OPTS} \ | ${PIGEN_DOCKER_OPTS} \ | ||||
--volume "${CONFIG_FILE}":/config:ro \ | --volume "${CONFIG_FILE}":/config:ro \ | ||||
-e "GIT_HASH=${GIT_HASH}" \ | -e "GIT_HASH=${GIT_HASH}" \ | ||||
$DOCKER_CMDLINE_POST \ | |||||
pi-gen \ | pi-gen \ | ||||
bash -e -o pipefail -c " | bash -e -o pipefail -c " | ||||
dpkg-reconfigure qemu-user-static && | dpkg-reconfigure qemu-user-static && | ||||
@@ -226,9 +226,7 @@ export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi} | |||||
export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} | export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} | ||||
export FIRST_USER_PASS | export FIRST_USER_PASS | ||||
export DISABLE_FIRST_BOOT_USER_RENAME=${DISABLE_FIRST_BOOT_USER_RENAME:-0} | 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 WPA_COUNTRY | ||||
export ENABLE_SSH="${ENABLE_SSH:-0}" | export ENABLE_SSH="${ENABLE_SSH:-0}" | ||||
export PUBKEY_ONLY_SSH="${PUBKEY_ONLY_SSH:-0}" | export PUBKEY_ONLY_SSH="${PUBKEY_ONLY_SSH:-0}" | ||||
@@ -4,6 +4,6 @@ rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" | |||||
find "${ROOTFS_DIR}/var/lib/apt/lists/" -type f -delete | find "${ROOTFS_DIR}/var/lib/apt/lists/" -type f -delete | ||||
on_chroot << EOF | on_chroot << EOF | ||||
apt-get update | apt-get update | ||||
apt-get -y dist-upgrade | |||||
apt-get -y dist-upgrade --auto-remove --purge | |||||
apt-get clean | apt-get clean | ||||
EOF | EOF |
@@ -12,7 +12,6 @@ if [ "${NO_PRERUN_QCOW2}" = "0" ]; then | |||||
sed -i "s/BOOTDEV/PARTUUID=${BOOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab" | 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}/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 | fi | ||||
@@ -3,7 +3,10 @@ | |||||
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" | ||||
sed -i 's/^update_initramfs=.*/update_initramfs=all/' "${ROOTFS_DIR}/etc/initramfs-tools/update-initramfs.conf" | |||||
on_chroot << EOF | on_chroot << EOF | ||||
update-initramfs -u | |||||
if [ -x /etc/init.d/fake-hwclock ]; then | if [ -x /etc/init.d/fake-hwclock ]; then | ||||
/etc/init.d/fake-hwclock stop | /etc/init.d/fake-hwclock stop | ||||
fi | fi | ||||
@@ -53,7 +56,7 @@ rm -f "${ROOTFS_DIR}/root/.vnc/private.key" | |||||
rm -f "${ROOTFS_DIR}/etc/vnc/updateid" | rm -f "${ROOTFS_DIR}/etc/vnc/updateid" | ||||
update_issue "$(basename "${EXPORT_DIR}")" | 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" | cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE" | ||||
@@ -10,8 +10,8 @@ if [ "${NO_PRERUN_QCOW2}" = "0" ]; then | |||||
rm -rf "${ROOTFS_DIR}" | rm -rf "${ROOTFS_DIR}" | ||||
mkdir -p "${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 | # All partition sizes and starts will be aligned to this size | ||||
ALIGN="$((4 * 1024 * 1024))" | 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 | mkfs.ext4 -L rootfs -O "$ROOT_FEATURES" "$ROOT_DEV" > /dev/null | ||||
mount -v "$ROOT_DEV" "${ROOTFS_DIR}" -t ext4 | 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 | fi |
@@ -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' | # 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 |
@@ -1,7 +1,7 @@ | |||||
deb http://deb.debian.org/debian RELEASE main contrib non-free | |||||
deb http://security.debian.org/debian-security RELEASE-security main contrib non-free | |||||
deb http://deb.debian.org/debian RELEASE-updates main contrib non-free | |||||
deb http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware | |||||
deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware | |||||
deb http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware | |||||
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source' | # Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source' | ||||
#deb-src http://deb.debian.org/debian RELEASE main contrib non-free | |||||
#deb-src http://security.debian.org/debian-security RELEASE-security main contrib non-free | |||||
#deb-src http://deb.debian.org/debian RELEASE-updates main contrib non-free | |||||
#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,2 +1,6 @@ | |||||
raspberrypi-bootloader | |||||
raspberrypi-kernel | |||||
initramfs-tools | |||||
raspi-firmware | |||||
linux-image-rpi-v8 | |||||
linux-image-rpi-2712 | |||||
linux-headers-rpi-v8 | |||||
linux-headers-rpi-2712 |
@@ -0,0 +1,3 @@ | |||||
#!/bin/bash -e | |||||
sed -i 's/^update_initramfs=.*/update_initramfs=no/' "${ROOTFS_DIR}/etc/initramfs-tools/update-initramfs.conf" |
@@ -1,6 +1,6 @@ | |||||
#!/bin/bash -e | #!/bin/bash -e | ||||
if [ "$RELEASE" != "bullseye" ]; then | |||||
if [ "$RELEASE" != "bookworm" ]; then | |||||
echo "WARNING: RELEASE does not match the intended option for this branch." | echo "WARNING: RELEASE does not match the intended option for this branch." | ||||
echo " Please check the relevant README.md section." | echo " Please check the relevant README.md section." | ||||
fi | fi | ||||
@@ -1,4 +1,17 @@ | |||||
#!/bin/bash -e | #!/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 |
@@ -1,73 +1,44 @@ | |||||
# For more options and information see | # 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 | # 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=1920 | |||||
#framebuffer_height=1080 | |||||
# 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 | # Uncomment some or all of these to enable the optional hardware interfaces | ||||
#dtparam=i2c_arm=on | #dtparam=i2c_arm=on | ||||
#dtparam=i2s=on | #dtparam=i2s=on | ||||
#dtparam=spi=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) | # Enable audio (loads snd_bcm2835) | ||||
dtparam=audio=on | dtparam=audio=on | ||||
# Additional overlays and parameters are documented | |||||
# /boot/firmware/overlays/README | |||||
# Automatically load overlays for detected cameras | # Automatically load overlays for detected cameras | ||||
camera_auto_detect=1 | camera_auto_detect=1 | ||||
# Automatically load overlays for detected DSI displays | # Automatically load overlays for detected DSI displays | ||||
display_auto_detect=1 | display_auto_detect=1 | ||||
# Automatically load initramfs files, if found | |||||
auto_initramfs=1 | |||||
# Enable DRM VC4 V3D driver | # Enable DRM VC4 V3D driver | ||||
dtoverlay=vc4-kms-v3d | dtoverlay=vc4-kms-v3d | ||||
max_framebuffers=2 | 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 | # Run in 64-bit mode | ||||
arm_64bit=1 | arm_64bit=1 | ||||
# Disable compensation for displays with overscan | # Disable compensation for displays with overscan | ||||
disable_overscan=1 | disable_overscan=1 | ||||
# Run as fast as firmware / board allows | |||||
arm_boost=1 | |||||
[cm4] | [cm4] | ||||
# Enable host mode on the 2711 built-in XHCI USB controller. | # Enable host mode on the 2711 built-in XHCI USB controller. | ||||
# This line should be removed if the legacy DWC2 controller is required | # This line should be removed if the legacy DWC2 controller is required | ||||
@@ -76,8 +47,3 @@ otg_mode=1 | |||||
[all] | [all] | ||||
[pi4] | |||||
# Run as fast as firmware / board allows | |||||
arm_boost=1 | |||||
[all] |
@@ -1,3 +1,3 @@ | |||||
proc /proc proc defaults 0 0 | 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 | ROOTDEV / ext4 defaults,noatime 0 1 |
@@ -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 | console-setup keyboard-configuration debconf-utils parted | ||||
build-essential manpages-dev bash-completion gdb pkg-config | build-essential manpages-dev bash-completion gdb pkg-config | ||||
python-is-python3 | python-is-python3 | ||||
python3-rpi.gpio v4l-utils | |||||
v4l-utils | |||||
python3-libgpiod | |||||
python3-gpiozero | python3-gpiozero | ||||
pigpio python3-pigpio raspi-gpio python3-rpi.gpio | |||||
python3-spidev | |||||
python3-smbus2 | |||||
avahi-daemon | avahi-daemon | ||||
lua5.1 | lua5.1 | ||||
luajit | luajit | ||||
hardlink ca-certificates curl | |||||
ca-certificates curl | |||||
fake-hwclock nfs-common usbutils | fake-hwclock nfs-common usbutils | ||||
libraspberrypi-dev libraspberrypi-doc libfreetype6-dev | libraspberrypi-dev libraspberrypi-doc libfreetype6-dev | ||||
dosfstools | dosfstools | ||||
@@ -24,12 +28,11 @@ htop | |||||
man-db | man-db | ||||
policykit-1 | policykit-1 | ||||
ssh-import-id | ssh-import-id | ||||
rng-tools | |||||
ethtool | ethtool | ||||
ntfs-3g | ntfs-3g | ||||
pciutils | pciutils | ||||
rpi-eeprom | rpi-eeprom | ||||
raspinfo | |||||
raspi-utils | |||||
udisks2 | udisks2 | ||||
unzip zip p7zip-full | unzip zip p7zip-full | ||||
file | 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 @@ | @@ -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 | ||||
+console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot | +console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot |
@@ -1,5 +1,4 @@ | |||||
wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek | wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek | ||||
raspberrypi-net-mods | raspberrypi-net-mods | ||||
dhcpcd5 | |||||
network-manager | network-manager | ||||
net-tools | net-tools |
@@ -3,38 +3,20 @@ | |||||
install -v -d "${ROOTFS_DIR}/etc/wpa_supplicant" | install -v -d "${ROOTFS_DIR}/etc/wpa_supplicant" | ||||
install -v -m 600 files/wpa_supplicant.conf "${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 | if [ -v WPA_COUNTRY ]; then | ||||
on_chroot <<- EOF | on_chroot <<- EOF | ||||
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_wifi_country "${WPA_COUNTRY}" | SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_wifi_country "${WPA_COUNTRY}" | ||||
EOF | EOF | ||||
fi | 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 | # Disable wifi on 5GHz models if WPA_COUNTRY is not set | ||||
mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/" | mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/" | ||||
if [ -n "$WPA_COUNTRY" ]; then | if [ -n "$WPA_COUNTRY" ]; then | ||||
echo 0 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan" | echo 0 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan" | ||||
echo 0 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan" | echo 0 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan" | ||||
echo 0 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-1001100000.mmc:wlan" | |||||
else | else | ||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan" | echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan" | ||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan" | echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan" | ||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-1001100000.mmc:wlan" | |||||
fi | fi |
@@ -1,5 +1,5 @@ | |||||
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-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 | desktop-base | ||||
git | git | ||||
policykit-1 | policykit-1 | ||||
@@ -1,7 +1,8 @@ | |||||
xserver-xorg xinit | xserver-xorg xinit | ||||
mousepad | mousepad | ||||
eom | |||||
lxde lxtask menu-xdg | lxde lxtask menu-xdg | ||||
zenity xdg-utils | zenity xdg-utils | ||||
gvfs-backends gvfs-fuse | gvfs-backends gvfs-fuse | ||||
lightdm gnome-themes-standard gnome-icon-theme | |||||
lightdm gnome-themes-extra-data gnome-icon-theme | |||||
gnome-keyring | gnome-keyring |
@@ -1,5 +0,0 @@ | |||||
#!/bin/bash -e | |||||
on_chroot << EOF | |||||
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_boot_wait 1 | |||||
EOF |
@@ -2,21 +2,16 @@ python3-pygame | |||||
python3-tk thonny | python3-tk thonny | ||||
python3-pgzero | python3-pgzero | ||||
python3-serial | python3-serial | ||||
python3-picamera | |||||
debian-reference-en dillo | debian-reference-en dillo | ||||
raspberrypi-net-mods raspberrypi-ui-mods | raspberrypi-net-mods raspberrypi-ui-mods | ||||
python3-pip | python3-pip | ||||
python3-numpy | python3-numpy | ||||
pypy | |||||
alacarte rc-gui sense-hat | alacarte rc-gui sense-hat | ||||
tree | tree | ||||
libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr | libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr | ||||
geany | geany | ||||
piclone | piclone | ||||
pigpio python3-pigpio raspi-gpio python3-rpi.gpio | |||||
python3-spidev | |||||
python3-twython | python3-twython | ||||
python3-smbus | |||||
python3-flask | python3-flask | ||||
pprompt | pprompt | ||||
piwiz | piwiz | ||||
@@ -24,4 +19,3 @@ rp-prefapps | |||||
ffmpeg | ffmpeg | ||||
vlc | vlc | ||||
rpi-imager | rpi-imager | ||||
rpi-wayland |
@@ -0,0 +1,5 @@ | |||||
#!/bin/bash -e | |||||
on_chroot << EOF | |||||
SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_wayland W2 | |||||
EOF |
@@ -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 |
@@ -0,0 +1,3 @@ | |||||
#!/bin/bash -e | |||||
sed -i 's/^.*HandlePowerKey=.*$/HandlePowerKey=ignore/' "${ROOTFS_DIR}/etc/systemd/logind.conf" |