BOOT_MB := 62
ROOT_MB := 959
+fstype := ext4
+
config.mk:
cp "config.example" "$@"
include ${config}
endif
-ifdef release
- KEYRING := keys/debian-archive-${release}-stable.gpg
-else
- release := stretch
- KEYRING := keys/debian-archive-stretch-stable.gpg
+ifndef release
+ release := bullseye
endif
+KEYRING := keys/debian-archive-${release}-stable.gpg
+KEYRING := keys/debian-archive-${release}-automatic.gpg
+KEYRING := keys/debian-archive-${release}-security-automatic.gpg
+
ifndef SOURCES
define SOURCES :=
deb http://cdn.debian.net/debian ${release} main
+deb http://security.debian.org/ ${release}/updates main
endef
endif
-fstype := ext4
-
ifdef disk
VOLUME := ${disk}
PBOOT := ${disk}1
_config: _copy
${subvol}: _config
- btrfs sub snap "${CFG_ROOT}" "$@"
+ btrfs sub snap "${CFGROOT}" "$@"
else ifdef squash
SQUASH := ${squash}
deb http://archive.raspberrypi.org/debian ${release} main
endef
- PACKAGES += firmware-brcm80211 libraspberrypi-bin libraspberrypi0 pi-bluetooth raspberrypi-bootloader raspberrypi-kernel initramfs-tools nilfs-tools
- fstype := nilfs2
+ PACKAGES += firmware-brcm80211 libraspberrypi-bin libraspberrypi0 pi-bluetooth raspberrypi-bootloader raspberrypi-kernel initramfs-tools
_target: _umount _config
_copy: _install _img_mount
_config: _copy _img_mount
_bootloader_raspi: _img_mount
- _umount: _img_mount _config _bootloader_raspi
+ _umount: _copy _config _bootloader_raspi
else
_target:
include $(addsuffix .mk, $(addprefix modules/, $(subst ${comma_},${space_},${modules})))
endif
-ifeq "${ARCH}" "amd64"
+ifeq "$(findstring linux-image, ${PACKAGES})" "linux-image"
+else ifeq "${ARCH}" "amd64"
PACKAGES += linux-image-amd64
else ifeq "${ARCH}" "i386"
PACKAGES += linux-image-686
${SYSROOT}/etc/apt/trusted.gpg.d/: ${SYSROOT} _bootstrap
mkdir -p -m 755 "$@"
cp keys/*.gpg "$@"
+ chmod 644 "$@"/*.gpg
_install: ${SYSROOT} _aptkeys _norecommends
printf '%s\n' "$${SOURCES}" |sort -u >"$${SYSROOT}/etc/apt/sources.list"
chroot "$${SYSROOT}" rm /usr/sbin/udevadm
_copy: ${SYSROOT} ${CFGROOT}
+ sync
cp -au "$${SYSROOT}/." "$${CFGROOT}/"
_config: ${CFGROOT}
_sparse: ${PBOOT} ${PROOT}
-ifdef raspi
-_format_root: ${PROOT}
- -umount "$${CFGROOT}/boot" "$${CFGROOT}" "${PROOT}"
- mkfs.nilfs2 -f -L FSROOT "$${PROOT}"
+ifeq "${fstype}" "ext4"
+ fsflag:=-F
else
+ fsflag:=-f
+endif
+
_format_root: ${PROOT}
-umount "$${CFGROOT}/boot" "$${CFGROOT}" "${PROOT}"
- mkfs.ext4 -F -L FSROOT "$${PROOT}"
-endif
+ mkfs.${fstype} ${fsflag} -L FSROOT "$${PROOT}"
_format_boot: ${PBOOT}
-umount "$${CFGROOT}/boot" "${PBOOT}"
_bootloader_iso: ${CFGROOT} ${ISOROOT}
mkdir -p "$${ISOROOT}/boot/grub/"
cp -L "$${CFGROOT}/vmlinuz" "$${CFGROOT}/initrd.img" "$${ISOROOT}"
- printf '%s\n' "set timeout=10" "default=buster" \
- "menuentry 'Debian Buster' --id 'buster' {" \
- "linux '/vmlinuz' boot=live" "initrd '/initrd.img'" "}" \
+ printf '%s\n' "insmod all_video" "set gfxmode=auto" "load_video" "insmod gfxterm" \
>"$${ISOROOT}/boot/grub/grub.cfg"
+ printf '%s\n' "set timeout=10" "default=${release}" \
+ "menuentry 'Debian ${release}' --id '${release}' {" \
+ "linux '/vmlinuz' boot=live" "initrd '/initrd.img'" "}" \
+ >>"$${ISOROOT}/boot/grub/grub.cfg"
-[ -f "$${ISOROOT}/install/initrd.gz" -a -f "$${ISOROOT}/install/linux" ] && \
printf '%s\n' "menuentry 'Install Debian' --id 'install' {" \
"linux '/install/linux'" "initrd '/install/initrd.gz'" "}" \
mount -t vfat -o loop "$${PBOOT}" "efi/"
_efi_umount: _efi_mount
+ sync
umount efi/ && rmdir efi/
.PHONY: _syslinux_mbr _grub_mbr
|| mount -o loop,offset=2M,sizelimit=${BOOT_MB}M \
-t vfat "$${VOLUME}" "$${CFGROOT}/boot"
-_umount_boot: ${CFGROOT}
+_umount_boot: ${CFGROOT} _config
+ sync
-umount "$${CFGROOT}/boot"
-_umount_root: _umount_boot
+_umount_root: _umount_boot _config
+ sync
umount "$${CFGROOT}" && rmdir "$${CFGROOT}"
_umount: _umount_boot _umount_root