@@ -9,7 +9,7 @@ if [[ -f '/boot/dietpi/func/dietpi-globals' ]]
9
9
then
10
10
. /boot/dietpi/func/dietpi-globals
11
11
else
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 ; }
13
13
# shellcheck disable=SC1091
14
14
. /tmp/dietpi-globals
15
15
G_EXEC rm /tmp/dietpi-globals
18
18
case $debian_version in
19
19
' 12.' * |' bookworm/sid' ) G_DISTRO=7;;
20
20
' 13.' * |' trixie/sid' ) G_DISTRO=8;;
21
- * ) Error_Exit " Unsupported distro version \" $debian_version \" . Aborting ... " ;;
21
+ * ) Error_Exit " Unsupported distro version \" $debian_version \" " ;;
22
22
esac
23
23
# Ubuntu ships with /etc/debian_version from Debian testing, hence we assume one version lower.
24
24
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'
26
26
fi
27
27
case $G_HW_ARCH_NAME in
28
28
' armv6l' ) export G_HW_ARCH=1;;
29
29
' armv7l' ) export G_HW_ARCH=2;;
30
30
' aarch64' ) export G_HW_ARCH=3;;
31
31
' x86_64' ) export G_HW_ARCH=10;;
32
32
' 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" ;;
34
34
esac
35
35
readonly G_PROGRAM_NAME=' DietPi-Build'
36
36
G_CHECK_ROOT_USER
77
77
' --sign' ) shift ; SIGN_PASS=$1 ;;
78
78
' --test-kernel' ) TEST_KERNEL=1;;
79
79
' --test-uboot' ) TEST_UBOOT=1;;
80
- * ) Error_Exit " Invalid input \" $1 \" . Aborting ... " ;;
80
+ * ) Error_Exit " Invalid input \" $1 \" " ;;
81
81
esac
82
82
shift
83
83
done
@@ -99,6 +99,7 @@ case $HW_MODEL in
99
99
12) iname=' OdroidC2' HW_ARCH=3 partition_start=4 root_size=1148;;
100
100
15) iname=' OdroidN2' HW_ARCH=3 partition_start=4 root_size=1148;;
101
101
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;;
102
103
20) iname=' VM' HW_ARCH=${HW_ARCH:- 10} root_size=1200;;
103
104
21) iname=' NativePC' HW_ARCH=10 root_size=1663;;
104
105
40) iname=' PINEA64' HW_ARCH=3 partition_start=4 root_size=1020;;
@@ -147,10 +148,10 @@ case $HW_MODEL in
147
148
' 79.2' ) iname=' NanoPiR6C' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
148
149
' 79.3' ) iname=' NanoPCT6' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
149
150
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 ;;
151
152
82) iname=' OrangePi5Plus' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
152
153
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 ;;
154
155
85) iname=' ROCK5A' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
155
156
86) iname=' ASUSTB2' HW_ARCH=3 partition_start=16 root_size=1200;;
156
157
87) iname=' OrangePi3B' HW_ARCH=3 PTTYPE=' gpt' partition_start=16 root_size=1200;;
@@ -165,38 +166,38 @@ case $HW_MODEL in
165
166
96) iname=' OrangePi4A' HW_ARCH=3 partition_start=4 root_size=1000;;
166
167
97) iname=' OrangePiRV' HW_ARCH=11 partition_start=4 root_size=1000;;
167
168
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" ;;
169
170
esac
170
171
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"
172
173
173
- [[ $EDITION =~ ^(| Amiberry| AlloGUI| all)$ ]] || Error_Exit " Invalid edition \" $EDITION \" passed. Aborting ... "
174
+ [[ $EDITION =~ ^(| Amiberry| AlloGUI| all)$ ]] || Error_Exit " Invalid edition \" $EDITION \" passed"
174
175
175
176
# Check for valid target architecture and set variables accordingly
176
- repo= ' https://deb.debian.org/debian/ '
177
+ mirrors=()
177
178
keyring=' /usr/share/keyrings/debian-archive-keyring.gpg'
178
179
case $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' ;;
180
181
2) arch=' armv7l' iarch=' ARMv7' parch=' armhf' ;;
181
182
3) arch=' aarch64' iarch=' ARMv8' parch=' arm64' ;;
182
183
10) arch=' x86_64' iarch=' x86_64' parch=' amd64' ;;
183
184
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" ;;
185
186
esac
186
187
187
188
# Check for valid target distro version
188
189
case $DISTRO in
189
190
6) distro=' bullseye' ;;
190
191
7) distro=' bookworm' ;;
191
192
8) distro=' trixie' ;;
192
- * ) Error_Exit " Invalid distro \" $DISTRO \" passed. Aborting ... " ;;
193
+ * ) Error_Exit " Invalid distro \" $DISTRO \" passed" ;;
193
194
esac
194
195
195
196
# Check for valid partition table type and set variables accordingly
196
197
case $PTTYPE in
197
198
' msdos' ) [[ $HW_MODEL == 21 ]] && iname+=' -BIOS' ;;
198
199
' 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" ;;
200
201
esac
201
202
202
203
# Check for valid root filesystem type and set variables accordingly
@@ -205,19 +206,19 @@ case $FSTYPE in
205
206
' ext4' ) apackages+=(' e2fsprogs' ) afs_opts=(' -e' ' remount-ro' ) afsck=(' e2fsck' ' -fyD' ) aresize=(' resize2fs' );;
206
207
' f2fs' ) fsname=' F2FS' apackages+=(' f2fs-tools' ) afsck=(' fsck.f2fs' ' -f' ) aresize=(' resize.f2fs' ); uname -r | grep -q ' -azure$' && apackages+=(' linux-modules-extra-azure' );;
207
208
' 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" ;;
209
210
esac
210
211
211
212
# 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 \" "
213
214
214
215
# Generate image name and define CLONING_TOOL for dietpi-installer
215
216
OUTPUT_IMG_NAME=" DietPi_$iname -$iarch -${distro^} "
216
217
[[ $fsname ]] && OUTPUT_IMG_NAME+=" _$fsname "
217
218
CLONING_TOOL=' dd'
218
219
if [[ $VARIANT == ' iso' ]]
219
220
then
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"
221
222
CLONING_TOOL=' Clonezilla'
222
223
OUTPUT_IMG_NAME+=' _Installer'
223
224
fi
@@ -391,8 +392,8 @@ _EOF_
391
392
# debootstrap
392
393
# #########################################
393
394
packages=' 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,'
395
395
[[ $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'
396
397
# Add temporary tmpfs mounts to prevent certain files created by debootstrap being written to disk
397
398
# - tmpfs mounts have 1777 mode by default.
398
399
G_EXEC mount -m -t tmpfs tmpfs rootfs/dev
@@ -402,7 +403,7 @@ G_EXEC mount -m -t tmpfs tmpfs rootfs/var/lib/apt/lists
402
403
G_EXEC mount -m -t tmpfs tmpfs rootfs/var/log
403
404
# - "--skip=check/empty" to ignore /etc/fstab, boot and tmpfs mounts we added above
404
405
# - "--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[@]} "
406
407
G_EXEC umount rootfs/dev rootfs/run rootfs/var/cache/apt rootfs/var/lib/apt/lists rootfs/var/log
407
408
408
409
# #########################################
@@ -494,7 +495,7 @@ G_EXEC losetup -d "$FP_LOOP"
494
495
# Do not pack and upload raw VM image if not explicitly requested
495
496
[[ $VARIANT =~ ^(| iso| all)$ ]] || SKIP_ARCHIVE=1 UPLOAD_SCRIPT=' '
496
497
# 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
498
499
export FP_ROOT_DEV CLONING_TOOL OUTPUT_IMG_NAME MOUNT_IT=' Off' SKIP_FIRSTBOOT_RESIZE=1
499
500
IMAGER_ARGS=(" $OUTPUT_IMG_NAME .img" )
500
501
(( $SKIP_ARCHIVE )) && IMAGER_ARGS+=(' --skip-archive' )
@@ -503,7 +504,7 @@ IMAGER_ARGS=("$OUTPUT_IMG_NAME.img")
503
504
[[ $HW_MODEL == [1245] ]] && IMAGER_ARGS+=(' --configs-to-boot' )
504
505
[[ $SIGN_PASS ]] && IMAGER_ARGS+=(' --sign' " $SIGN_PASS " )
505
506
# 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' )
507
508
508
509
# ###### IMG/ISO ##########################
509
510
if [[ ! $EDITION || $EDITION == ' all' ]]
0 commit comments