@@ -9,7 +9,7 @@ if [[ -f '/boot/dietpi/func/dietpi-globals' ]]
99then
1010 . /boot/dietpi/func/dietpi-globals
1111else
12- curl -sSf " https://raw.githubusercontent.com/${G_GITOWNER:= MichaIng} /DietPi/${G_GITBRANCH:= master} /dietpi/func/dietpi-globals" -o /tmp/dietpi-globals || Error_Exit ' Failed to download DietPi-Globals'
12+ curl -sSf " https://raw.githubusercontent.com/${G_GITOWNER:= MichaIng} /DietPi/${G_GITBRANCH:= master} /dietpi/func/dietpi-globals" -o /tmp/dietpi-globals || { echo ' Failed to download DietPi-Globals, aborting ... ' ; exit 1 ; }
1313 # shellcheck disable=SC1091
1414 . /tmp/dietpi-globals
1515 G_EXEC rm /tmp/dietpi-globals
1818 case $debian_version in
1919 ' 12.' * |' bookworm/sid' ) G_DISTRO=7;;
2020 ' 13.' * |' trixie/sid' ) G_DISTRO=8;;
21- * ) Error_Exit " Unsupported distro version \" $debian_version \" . Aborting ... " ;;
21+ * ) Error_Exit " Unsupported distro version \" $debian_version \" " ;;
2222 esac
2323 # Ubuntu ships with /etc/debian_version from Debian testing, hence we assume one version lower.
2424 grep -q ' ^ID=ubuntu' /etc/os-release && (( G_DISTRO-- ))
25- (( $G_DISTRO < 7 )) && Error_Exit ' Unsupported Ubuntu version. Aborting ... '
25+ (( $G_DISTRO < 7 )) && Error_Exit ' Unsupported Ubuntu version'
2626fi
2727case $G_HW_ARCH_NAME in
2828 ' armv6l' ) export G_HW_ARCH=1;;
2929 ' armv7l' ) export G_HW_ARCH=2;;
3030 ' aarch64' ) export G_HW_ARCH=3;;
3131 ' x86_64' ) export G_HW_ARCH=10;;
3232 ' riscv64' ) export G_HW_ARCH=11;;
33- * ) Error_Exit " Unsupported host system architecture \" $G_HW_ARCH_NAME \" detected. Aborting ... " ;;
33+ * ) Error_Exit " Unsupported host system architecture \" $G_HW_ARCH_NAME \" detected" ;;
3434esac
3535readonly G_PROGRAM_NAME=' DietPi-Build'
3636G_CHECK_ROOT_USER
7777 ' --sign' ) shift ; SIGN_PASS=$1 ;;
7878 ' --test-kernel' ) TEST_KERNEL=1;;
7979 ' --test-uboot' ) TEST_UBOOT=1;;
80- * ) Error_Exit " Invalid input \" $1 \" . Aborting ... " ;;
80+ * ) Error_Exit " Invalid input \" $1 \" " ;;
8181 esac
8282 shift
8383done
@@ -99,6 +99,7 @@ case $HW_MODEL in
9999 12) iname=' OdroidC2' HW_ARCH=3 partition_start=4 root_size=1148;;
100100 15) iname=' OdroidN2' HW_ARCH=3 partition_start=4 root_size=1148;;
101101 16) iname=' OdroidC4' HW_ARCH=3 partition_start=4 root_size=1148;;
102+ 17) iname=' OdroidHC4' HW_ARCH=3 partition_start=4 root_size=1148;;
102103 20) iname=' VM' HW_ARCH=${HW_ARCH:- 10} root_size=1200;;
103104 21) iname=' NativePC' HW_ARCH=10 root_size=1663;;
104105 40) iname=' PINEA64' HW_ARCH=3 partition_start=4 root_size=1020;;
@@ -147,10 +148,10 @@ case $HW_MODEL in
147148 ' 79.2' ) iname=' NanoPiR6C' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
148149 ' 79.3' ) iname=' NanoPCT6' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
149150 80) iname=' OrangePi5' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
150- 81) iname=' VisionFive2' HW_ARCH=11 root_size=639 ;;
151+ 81) iname=' VisionFive2' HW_ARCH=11 root_size=800 ;;
151152 82) iname=' OrangePi5Plus' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
152153 83) iname=' OrangePiZero3' HW_ARCH=3 partition_start=4 root_size=1148;;
153- 84) iname=' Star64' HW_ARCH=11 root_size=639 ;;
154+ 84) iname=' Star64' HW_ARCH=11 root_size=800 ;;
154155 85) iname=' ROCK5A' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
155156 86) iname=' ASUSTB2' HW_ARCH=3 partition_start=16 root_size=1200;;
156157 87) iname=' OrangePi3B' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
@@ -165,38 +166,38 @@ case $HW_MODEL in
165166 96) iname=' OrangePi4A' HW_ARCH=3 partition_start=4 root_size=1000;;
166167 97) iname=' OrangePiRV' HW_ARCH=11 partition_start=4 root_size=1000;;
167168 98) iname=' OrangePiRV2' HW_ARCH=11 partition_start=4 root_size=1000;;
168- * ) Error_Exit " Invalid hardware model \" $HW_MODEL \" passed. Aborting ... " ;;
169+ * ) Error_Exit " Invalid hardware model \" $HW_MODEL \" passed" ;;
169170esac
170171
171- [[ $VARIANT =~ ^(| iso| vbox| vmx| esxi| hyperv| utm| proxmox| all)$ ]] || Error_Exit " Invalid variant \" $VARIANT \" passed, aborting ... "
172+ [[ $VARIANT =~ ^(| iso| vbox| vmx| esxi| hyperv| utm| proxmox| all)$ ]] || Error_Exit " Invalid variant \" $VARIANT \" passed"
172173
173- [[ $EDITION =~ ^(| Amiberry| AlloGUI| all)$ ]] || Error_Exit " Invalid edition \" $EDITION \" passed. Aborting ... "
174+ [[ $EDITION =~ ^(| Amiberry| AlloGUI| all)$ ]] || Error_Exit " Invalid edition \" $EDITION \" passed"
174175
175176# Check for valid target architecture and set variables accordingly
176- repo= ' https://deb.debian.org/debian/ '
177+ mirrors=()
177178keyring=' /usr/share/keyrings/debian-archive-keyring.gpg'
178179case $HW_ARCH in
179- 1) arch=' armv6l' iarch=' ARMv6' parch=' armhf' repo= ' http://raspbian.raspberrypi.com/raspbian/ ' keyring=' /usr/share/keyrings/raspbian-archive-keyring.gpg' ;;
180+ 1) arch=' armv6l' iarch=' ARMv6' parch=' armhf' mirrors=( ' http://raspbian.raspberrypi.com/raspbian' ) keyring=' /usr/share/keyrings/raspbian-archive-keyring.gpg' ;;
180181 2) arch=' armv7l' iarch=' ARMv7' parch=' armhf' ;;
181182 3) arch=' aarch64' iarch=' ARMv8' parch=' arm64' ;;
182183 10) arch=' x86_64' iarch=' x86_64' parch=' amd64' ;;
183184 11) arch=' riscv64' iarch=' RISC-V' parch=' riscv64' DISTRO=8;; # RISC-V architecture is available on Trixie only.
184- * ) Error_Exit " Invalid architecture \" $HW_ARCH \" passed. Aborting ... " ;;
185+ * ) Error_Exit " Invalid architecture \" $HW_ARCH \" passed" ;;
185186esac
186187
187188# Check for valid target distro version
188189case $DISTRO in
189190 6) distro=' bullseye' ;;
190191 7) distro=' bookworm' ;;
191192 8) distro=' trixie' ;;
192- * ) Error_Exit " Invalid distro \" $DISTRO \" passed. Aborting ... " ;;
193+ * ) Error_Exit " Invalid distro \" $DISTRO \" passed" ;;
193194esac
194195
195196# Check for valid partition table type and set variables accordingly
196197case $PTTYPE in
197198 ' msdos' ) [[ $HW_MODEL == 21 ]] && iname+=' -BIOS' ;;
198199 ' gpt' ) [[ $HW_ARCH == 10 ]] && efi_size=64 iname+=' -UEFI' ;;
199- * ) Error_Exit " Invalid partition table type \" $PTTYPE \" passed. Aborting ... " ;;
200+ * ) Error_Exit " Invalid partition table type \" $PTTYPE \" passed" ;;
200201esac
201202
202203# Check for valid root filesystem type and set variables accordingly
@@ -205,19 +206,19 @@ case $FSTYPE in
205206 ' ext4' ) apackages+=(' e2fsprogs' ) afs_opts=(' -e' ' remount-ro' ) afsck=(' e2fsck' ' -fyD' ) aresize=(' resize2fs' );;
206207 ' f2fs' ) fsname=' F2FS' apackages+=(' f2fs-tools' ) afsck=(' fsck.f2fs' ' -f' ) aresize=(' resize.f2fs' ); uname -r | grep -q ' -azure$' && apackages+=(' linux-modules-extra-azure' );;
207208 ' btrfs' ) fsname=' Btrfs' apackages+=(' btrfs-progs' ) afsck=(' btrfs' ' check' ' --repair' ) aresize=(' btrfs' ' filesystem' ' resize' ' max' ); (( root_size+= 128 )) ;;
208- * ) Error_Exit " Invalid root filesystem type \" $FSTYPE \" passed. Aborting ... " ;;
209+ * ) Error_Exit " Invalid root filesystem type \" $FSTYPE \" passed" ;;
209210esac
210211
211212# Validate target Git owner and branch
212- G_CHECK_URL " https://github.com/$GITOWNER /DietPi/tree/$GITBRANCH " || Error_Exit " Failed to access Git branch \" $GITBRANCH \" . Aborting ... "
213+ G_CHECK_URL " https://github.com/$GITOWNER /DietPi/tree/$GITBRANCH " || Error_Exit " Failed to access Git branch \" $GITBRANCH \" "
213214
214215# Generate image name and define CLONING_TOOL for dietpi-installer
215216OUTPUT_IMG_NAME=" DietPi_$iname -$iarch -${distro^} "
216217[[ $fsname ]] && OUTPUT_IMG_NAME+=" _$fsname "
217218CLONING_TOOL=' dd'
218219if [[ $VARIANT == ' iso' ]]
219220then
220- [[ $HW_ARCH == 10 ]] || Error_Exit " Unsupported variant \" $VARIANT \" (installer image) for architecture \" $HW_ARCH \" passed. Aborting ... "
221+ [[ $HW_ARCH == 10 ]] || Error_Exit " Unsupported variant \" $VARIANT \" (installer image) for architecture \" $HW_ARCH \" passed"
221222 CLONING_TOOL=' Clonezilla'
222223 OUTPUT_IMG_NAME+=' _Installer'
223224fi
@@ -391,8 +392,8 @@ _EOF_
391392# debootstrap
392393# #########################################
393394packages=' apt,bash-completion,ca-certificates,cron,curl,fdisk,gpg,htop,iputils-ping,locales,mawk,nano,parted,procps,psmisc,sudo,systemd-sysv,tzdata,udev,wget,whiptail,'
394- (( $DISTRO > 7 )) && packages+=' 7zip,' || packages+=' p7zip,'
395395[[ $HW_MODEL == 75 ]] && packages+=' iproute2' || packages+=' console-setup,dropbear,ethtool,fake-hwclock,ifupdown,isc-dhcp-client,kmod,rfkill,systemd-timesyncd,usbutils'
396+ [[ $HW_MODEL =~ ^(20| 75)$ ]] || packages+=' ,iw,wireless-tools,wpasupplicant,wireless-regdb'
396397# Add temporary tmpfs mounts to prevent certain files created by debootstrap being written to disk
397398# - tmpfs mounts have 1777 mode by default.
398399G_EXEC mount -m -t tmpfs tmpfs rootfs/dev
@@ -402,7 +403,7 @@ G_EXEC mount -m -t tmpfs tmpfs rootfs/var/lib/apt/lists
402403G_EXEC mount -m -t tmpfs tmpfs rootfs/var/log
403404# - "--skip=check/empty" to ignore /etc/fstab, boot and tmpfs mounts we added above
404405# - "--skip=check/qemu" to skip arch test, which requires the "arch-test" package. We however assure emulation support our end.
405- G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --mode=root --format=dir --skip=check/empty,check/qemu --variant=minbase --include=" $packages " --arch=" $parch " --keyring=" $keyring " " $distro " ./rootfs " $repo "
406+ G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --mode=root --format=dir --skip=check/empty,check/qemu --variant=apt --include=" $packages " --arch=" $parch " --keyring=" $keyring " " $distro " ./rootfs " ${mirrors[@]} "
406407G_EXEC umount rootfs/dev rootfs/run rootfs/var/cache/apt rootfs/var/lib/apt/lists rootfs/var/log
407408
408409# #########################################
@@ -494,7 +495,7 @@ G_EXEC losetup -d "$FP_LOOP"
494495# Do not pack and upload raw VM image if not explicitly requested
495496[[ $VARIANT =~ ^(| iso| all)$ ]] || SKIP_ARCHIVE=1 UPLOAD_SCRIPT=' '
496497# Do not add trailing FAT partition for VM, container and ISO installer images, and if there is a boot FAT partition already
497- [[ $HW_MODEL == 20 || $HW_MODEL == 75 || $VARIANT == ' iso' || ( $boot_size -gt 0 && $boot_fstype == ' vfat' ) ]] && ADD_DOS_PART=0
498+ [[ $HW_MODEL =~ ^(20 | 75)$ || $VARIANT == ' iso' || ( $boot_size -gt 0 && $boot_fstype == ' vfat' ) ]] && ADD_DOS_PART=0
498499export FP_ROOT_DEV CLONING_TOOL OUTPUT_IMG_NAME MOUNT_IT=' Off' SKIP_FIRSTBOOT_RESIZE=1
499500IMAGER_ARGS=(" $OUTPUT_IMG_NAME .img" )
500501(( $SKIP_ARCHIVE )) && IMAGER_ARGS+=(' --skip-archive' )
@@ -503,7 +504,7 @@ IMAGER_ARGS=("$OUTPUT_IMG_NAME.img")
503504[[ $HW_MODEL == [1245] ]] && IMAGER_ARGS+=(' --configs-to-boot' )
504505[[ $SIGN_PASS ]] && IMAGER_ARGS+=(' --sign' " $SIGN_PASS " )
505506# Raspberry Pi Imager info
506- [[ $HW_MODEL == [1-5] && $DISTRO == 8 ]] && IMAGER_ARGS+=(' --raw-hash-size' )
507+ [[ $HW_MODEL == [1-5] && $DISTRO == 7 ]] && IMAGER_ARGS+=(' --raw-hash-size' )
507508
508509# ###### IMG/ISO ##########################
509510if [[ ! $EDITION || $EDITION == ' all' ]]
0 commit comments