.PHONY: _squash_modules _squash _isosquash _iso_image
ARCH := amd64
-BOOTSTRAP := http://cdn.debian.net/debian
+BOOTSTRAP := http://deb.debian.org/debian
PACKAGES := ${PACKAGES} apt busybox-static debian-archive-keyring init systemd
# Partition Table (2M) + Boot Partition (126M)+ Root Partition + Slack Space (1M) = 2048M
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
-endef
+ define SOURCES :=
+ deb http://deb.debian.org/debian ${release} main
+ deb https://deb.debian.org/debian-security/ ${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 btrfs-tools
- fstype := btrfs
+ PACKAGES += firmware-brcm80211 libraspberrypi-bin libraspberrypi0 pi-bluetooth raspberrypi-bootloader raspberrypi-kernel initramfs-tools
_target: _umount _config
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}" apt-get update
chroot "$${SYSROOT}" ln -sf /bin/true /usr/local/sbin/invoke-rc.d
chroot "$${SYSROOT}" ln -sf /bin/true /usr/sbin/udevadm
- chroot "$${SYSROOT}" apt-get --yes install ${PACKAGES}
+ mountpoint "$${SYSROOT}/proc" || mount -o bind /proc "$${SYSROOT}/proc"
+ chroot "$${SYSROOT}" apt-get --yes -t "${release}" install ${PACKAGES}
mkdir -p -m 755 "$${SYSROOT}/var/lib/deborphan/"
chroot "$${SYSROOT}" sh -c 'printf "%s\\n" ${PACKAGES} >/var/lib/deborphan/keep'
-chroot "$${SYSROOT}" sh -c 'apt-get --yes purge $$(deborphan -an |sed "s;^.* ;;g")'
chroot "$${SYSROOT}" apt-get --yes --auto-remove purge
-chroot "$${SYSROOT}" apt-get --yes --auto-remove upgrade
+ -umount "$${SYSROOT}/proc"
chroot "$${SYSROOT}" apt-get clean
chroot "$${SYSROOT}" rm /usr/local/sbin/invoke-rc.d
chroot "$${SYSROOT}" rm /usr/sbin/udevadm
>"$${CFGROOT}/etc/fstab"
chroot "$${CFGROOT}" update-initramfs -u
-${SQUASH}: ${CFGROOT}
+${SQUASH}: ${CFGROOT} .FORCE
-rm "$${SQUASH}"
mksquashfs "$${CFGROOT}" "$${SQUASH}" -comp xz
_sparse: ${PBOOT} ${PROOT}
-ifdef raspi
-_format_root: ${PROOT}
- -umount "$${CFGROOT}/boot" "$${CFGROOT}" "${PROOT}"
- mkfs.${fstype} -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}"
_format: _format_root _format_boot
_iso_image: ${ISOROOT}
- grub-mkrescue -o "$${ISO}" "$${ISOROOT}"
+ grub-mkrescue --compress=xz -o "$${ISO}" "$${ISOROOT}"
.PHONY: _syslinux_efi32 _syslinux_efi64 _syslinux_bios
.PHONY: _grub_efi32 _grub_efi64
grub-mkimage -p / -O x86_64-efi fat part_gpt normal linux all_video >"$${CFGROOT}/boot/EFI/BOOT/BOOTX64.EFI"
${CFGROOT}/boot/cmdline.txt: ${CFGROOT}
- printf 'root=/dev/mmcblk0p2 rootfstype=${fstype} fsck.repair=yes rootwait' >"$@"
+ printf 'root=/dev/mmcblk0p2 rootfstype=${fstype} fsck.repair=yes rootwait net.ifnames=0' >"$@"
_bootloader_raspi: ${CFGROOT} ${CFGROOT}/boot/cmdline.txt
_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'" "}" \