@@ -428,12 +428,16 @@ _EOF_
428428 ' 67' ' : NanoPi K1 Plus'
429429 ' 54' ' : NanoPi K2'
430430 ' 55' ' : NanoPi R2S'
431+ ' 100' ' : NanoPi R3S'
432+ ' 101' ' : NanoPi R3S LTS'
431433 ' 47' ' : NanoPi R4S'
432434 ' 76.1' ' : NanoPi R5S'
433435 ' 76.2' ' : NanoPi R5C'
434436 ' 79.1' ' : NanoPi R6S'
435437 ' 79.2' ' : NanoPi R6C'
438+ ' 102' ' : NanoPi R76S'
436439 ' 79.3' ' : NanoPC T6'
440+ ' 103' ' : NanoPi M5'
437441 ' 92' ' : NanoPi M6'
438442 ' 72.1' ' : ROCK 4 (all other variants)'
439443 ' 72.2' ' : ROCK 4 SE'
@@ -664,7 +668,7 @@ _EOF_
664668 else
665669 G_EXEC mv " $dir /.build/images/RPi/config.txt" /boot/
666670 fi
667- G_EXEC eval " echo 'root=PARTUUID=$( findmnt -Ufnro PARTUUID -M /) rootfstype=$( findmnt -Ufnro FSTYPE -M /) rootwait net.ifnames=0 logo.nologo console=serial0,115200 console=tty1' > /boot/cmdline.txt"
671+ G_EXEC eval " echo 'root=PARTUUID=$( findmnt -Ufnro PARTUUID -M /) rootfstype=$( findmnt -Ufnro FSTYPE -M /) rootwait fsck.repair=yes net.ifnames=0 logo.nologo console=serial0,115200 console=tty1' > /boot/cmdline.txt"
668672 # Boot in 64-bit mode if this is a 64-bit image
669673 [[ $userland_arch == ' arm64' ]] && G_CONFIG_INJECT ' arm_64bit=' ' arm_64bit=1' /boot/config.txt
670674
@@ -686,7 +690,8 @@ _EOF_
686690 G_EXEC mv " $dir /.build/images/U-Boot/dietpi-initramfs_cleanup" /etc/kernel/postinst.d/dietpi-initramfs_cleanup
687691 G_EXEC ln -sf /etc/kernel/post{inst,rm}.d/dietpi-initramfs_cleanup
688692
689- elif [[ $G_HW_MODEL =~ ^(12| 15| 16| 17| 40| 42| 43| 44| 45| 46| 47| 48| 52| 54| 55| 56| 57| 58| 59| 60| 62| 63| 64| 65| 66| 67| 68| 72| 73| 74| 76| 77| 78| 79| 80| 82| 83| 85| 86| 87| 88| 89| 90| 91| 92| 93| 94| 95| 96| 99)$ ]]
693+ # SBCs using Armbian build system for kernel/bootloader packages and boot.scr
694+ elif [[ $G_HW_MODEL =~ ^(12| 15| 16| 17| 40| 42| 43| 44| 45| 46| 47| 48| 52| 54| 55| 56| 57| 58| 59| 60| 62| 63| 64| 65| 66| 67| 68| 72| 73| 74| 76| 77| 78| 79| 80| 82| 83| 85| 86| 87| 88| 89| 90| 91| 92| 93| 94| 95| 96| 99| 100| 101| 102| 103)$ ]]
690695 then
691696 # Amlogic 64-bit
692697 armbian_packages=1
@@ -728,10 +733,14 @@ setenv rootuuid "true"' /boot/boot.cmd
728733 (( $G_HW_MODEL == 15 )) && G_EXEC eval ' echo ' \' ' meson_rng' \' ' > /etc/modules-load.d/dietpi-hwrng.conf'
729734
730735 # Rockchip 64-bit
731- elif [[ $G_HW_MODEL =~ ^(42| 43| 46| 47| 55| 56| 58| 68| 72| 73| 76| 77| 78| 79| 80| 82| 85| 86| 87| 90| 91| 92| 93| 94| 95)$ ]]
736+ elif [[ $G_HW_MODEL =~ ^(42| 43| 46| 47| 55| 56| 58| 68| 72| 73| 76| 77| 78| 79| 80| 82| 85| 86| 87| 90| 91| 92| 93| 94| 95| 100 | 101 | 102 | 103 )$ ]]
732737 then
738+ # Load addresses
733739 G_EXEC sed --follow-symlinks -Ei ' /^setenv (kernel|fdt)_addr_r/d' /boot/boot.cmd
734- G_CONFIG_INJECT ' setenv scriptaddr ' ' setenv scriptaddr "0x9000000"' /boot/boot.cmd
740+ case $G_HW_MODEL in
741+ 102|103) G_CONFIG_INJECT ' setenv scriptaddr ' ' setenv scriptaddr "0x48000000"' /boot/boot.cmd;; # RK3576
742+ * ) G_CONFIG_INJECT ' setenv scriptaddr ' ' setenv scriptaddr "0x9000000"' /boot/boot.cmd;;
743+ esac
735744 G_CONFIG_INJECT ' overlay_path=' ' overlay_path=rockchip' /boot/dietpiEnv.txt
736745 # Device tree
737746 case $G_HW_MODEL in
@@ -761,16 +770,19 @@ setenv rootuuid "true"' /boot/boot.cmd
761770 # Overlay prefix
762771 case $G_HW_MODEL in
763772 73) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rk3308' /boot/dietpiEnv.txt;;
764- 78) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rock-5b rock-5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
765- 80) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
766- 82) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5-plus rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
767- 85) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rock-5a rock-5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
768- 90) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=radxa-zero3 rk3568 rockchip' /boot/dietpiEnv.txt;;
769- 92) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=nanopi-m6 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
770- 93) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5-pro rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
771- 94) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5-ultra rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
772- 95) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-cm5 rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
773- 79|91) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rockchip-rk3588 rk3588' /boot/dietpiEnv.txt;;
773+ 78) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rock-5b rock-5 rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
774+ 80) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5 rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
775+ 82) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5-plus rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
776+ 85) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rock-5a rock-5 rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
777+ 90) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=radxa-zero3 rk3568 rockchip-rk3566 rockchip-rk3568 rockchip' /boot/dietpiEnv.txt;;
778+ 92) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=nanopi-m6 rockchip-rk3588-nanopi-m6 rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
779+ 93) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5-pro rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
780+ 94) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-5-ultra rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
781+ 95) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=orangepi-cm5 rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;;
782+ 79|91) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rockchip-rk3588 rk3588 rockchip' /boot/dietpiEnv.txt;; # RK3588 vendor + mainline
783+ 87|100|101) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rockchip-rk3566 rockchip-rk3568 rockchip' /boot/dietpiEnv.txt;; # RK3566 mainline
784+ 76|77) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rockchip-rk3568 rockchip' /boot/dietpiEnv.txt;; # RK3568 mainline
785+ 102|103) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rk3576 rockchip' /boot/dietpiEnv.txt;; # RK3576 vendor + mainline
774786 * ) G_CONFIG_INJECT ' overlay_prefix=' ' overlay_prefix=rockchip' /boot/dietpiEnv.txt;;
775787 esac
776788 # Overlays
@@ -782,8 +794,8 @@ setenv rootuuid "true"' /boot/boot.cmd
782794 # shellcheck disable=SC2015
783795 case $G_HW_MODEL in
784796 73) G_CONFIG_INJECT ' consoleargs=' ' consoleargs=console=ttyS0,1500000' /boot/dietpiEnv.txt;; # headless
785- 47|55|56) G_CONFIG_INJECT ' consoleargs=' ' consoleargs=console=ttyS2,1500000' /boot/dietpiEnv.txt;; # headless
786- 78|79|80|82|85|90|91|92|93|94|95) [[ $RK35XX_MAINLINE == 1 ]] && G_EXEC sed --follow-symlinks -i ' s/ttyAML0,115200/ttyS2,1500000/' /boot/dietpiEnv.txt || G_EXEC sed --follow-symlinks -i ' s/ttyAML0,115200/ttyFIQ0,1500000/' /boot/dietpiEnv.txt;; # mainline or vendor
797+ 47|55|56|100 ) G_CONFIG_INJECT ' consoleargs=' ' consoleargs=console=ttyS2,1500000' /boot/dietpiEnv.txt;; # headless
798+ 78|79|80|82|85|90|91|92|93|94|95|102|103 ) [[ $RK35XX_MAINLINE == 1 ]] && G_EXEC sed --follow-symlinks -i ' s/ttyAML0,115200/ttyS2,1500000/' /boot/dietpiEnv.txt || G_EXEC sed --follow-symlinks -i ' s/ttyAML0,115200/ttyFIQ0,1500000/' /boot/dietpiEnv.txt;; # mainline or vendor
787799 * ) G_EXEC sed --follow-symlinks -i ' s/ttyAML0,115200/ttyS2,1500000/' /boot/dietpiEnv.txt;; # mainline
788800 esac
789801
@@ -968,6 +980,12 @@ setenv rootuuid "true"' /boot/boot.cmd
968980Package: src:openbox src:obconf src:pcmanfm src:libfm src:gtk* src:lx*
969981Pin: origin archive.raspberrypi.com
970982Pin-Priority: -1
983+ _EOF_'
984+ # - FFmpeg on Forky
985+ (( $DISTRO_TARGET < 9 )) || G_EXEC eval ' cat << ' \' ' _EOF_' \' ' > /etc/apt/preferences.d/dietpi-ffmpeg
986+ Package: src:ffmpeg
987+ Pin: origin archive.raspberrypi.com
988+ Pin-Priority: -1
971989_EOF_'
972990 fi
973991
@@ -1009,12 +1027,11 @@ _EOF_'
10091027 ' whiptail' # DietPi dialogs
10101028 )
10111029
1012- # Install gdisk if root filesystem is on a GPT partition, used by DietPi-FS_partition_resize
1013- local ROOT_DEVICE=$( findmnt -Ufvnro SOURCE -M /)
1014- [[ $( blkid -s PTTYPE -o value " $( lsblk -npo PKNAME " $ROOT_DEVICE " ) " ) == ' gpt' ]] && aPACKAGES_REQUIRED_INSTALL+=(' gdisk' )
1030+ # Obtain rootfs device node
1031+ local G_ROOTFS_DEV=$( findmnt -Ufvnro SOURCE -M /)
10151032
10161033 # Install mdadm if root filesystem is on a RAID
1017- [[ $( lsblk -no TYPE " $ROOT_DEVICE " ) == ' raid' * ]] && aPACKAGES_REQUIRED_INSTALL+=(' mdadm' )
1034+ [[ $( lsblk -no TYPE " $G_ROOTFS_DEV " ) == ' raid' * ]] && aPACKAGES_REQUIRED_INSTALL+=(' mdadm' )
10181035
10191036 # Install filesystem tools required for filesystem resizing and fsck
10201037 local ae2fsprogs=(' --allow-remove-essential' ' e2fsprogs' )
@@ -1038,7 +1055,7 @@ _EOF_'
10381055 aPACKAGES_REQUIRED_INSTALL+=(' btrfs-progs' )
10391056 fi
10401057
1041- done < <( blkid -s TYPE -o value | sort -u)
1058+ done < <( findmnt -no FSTYPE --real | sort -u)
10421059
10431060 # Containers
10441061 if (( $G_HW_MODEL == 75 ))
@@ -1224,6 +1241,10 @@ _EOF_
12241241 95) model=' orangepicm5' kernel=' rk35xx' branch=' vendor' ;;
12251242 96) model=' orangepi4a' kernel=' sun55iw3' branch=' legacy' ;;
12261243 99) model=' orangepi3' kernel=' sunxi64' ;;
1244+ 100) model=' nanopi-r3s' kernel=' rockchip64' ;;
1245+ 101) model=' nanopi-r3s-lts' kernel=' rockchip64' ;;
1246+ 102) model=' nanopi-r76s' kernel=' rk35xx' branch=' vendor' ;;
1247+ 103) model=' nanopi-m5' kernel=' rk35xx' branch=' vendor' ;;
12271248 * ) : ;;
12281249 esac
12291250
@@ -1453,13 +1474,19 @@ _EOF_
14531474 G_EXEC sed --follow-symlinks -i " s/root=[^[:blank:]]*/root=PARTUUID=$( findmnt -Ufnro PARTUUID -M /) /" /boot/extlinux/extlinux.conf
14541475 G_EXEC sed --follow-symlinks -i " s/rootfstype=[^[:blank:]]*/rootfstype=$( findmnt -Ufnro FSTYPE -M /) /" /boot/extlinux/extlinux.conf
14551476
1477+ # Force fsck repair
1478+ grep -q ' fsck.repair=' /boot/extlinux/extlinux.conf || G_EXEC sed --follow-symlinks -i ' s/net.ifnames=0/fsck.repair=yes net.ifnames=0/' /boot/extlinux/extlinux.conf
1479+
14561480 # Star64
14571481 elif (( $G_HW_MODEL == 84 ))
14581482 then
14591483 G_AGI linux-image-star64 libubootenv-tool
14601484 G_EXEC sed --follow-symlinks -i " s/root=[^[:blank:]]*/root=PARTUUID=$( findmnt -Ufnro PARTUUID -M /) /" /boot/extlinux/extlinux.conf
14611485 G_EXEC sed --follow-symlinks -i " s/rootfstype=[^[:blank:]]*/rootfstype=$( findmnt -Ufnro FSTYPE -M /) /" /boot/extlinux/extlinux.conf
14621486
1487+ # Force fsck repair
1488+ grep -q ' fsck.repair=' /boot/extlinux/extlinux.conf || G_EXEC sed --follow-symlinks -i ' s/net.ifnames=0/fsck.repair=yes net.ifnames=0/' /boot/extlinux/extlinux.conf
1489+
14631490 # Sparky SBC
14641491 elif (( $G_HW_MODEL == 70 ))
14651492 then
@@ -1471,6 +1498,9 @@ _EOF_
14711498 G_EXEC dd if=u-boot " of=$BOOT_DEVICE " bs=512 skip=1 seek=1 conv=notrunc,fdatasync
14721499 G_EXEC rm u-boot
14731500
1501+ # Force fsck repair
1502+ grep -q ' fsck.repair=' /boot/uenv.txt || G_EXEC sed --follow-symlinks -i ' s/net.ifnames=0/fsck.repair=yes net.ifnames=0/' /boot/uenv.txt
1503+
14741504 # Use performance governor for stability
14751505 G_CONFIG_INJECT ' CONFIG_CPU_GOVERNOR=' ' CONFIG_CPU_GOVERNOR=performance' /boot/dietpi.txt
14761506
@@ -1567,7 +1597,7 @@ _EOF_
15671597 if [[ -f ' /boot/armbianEnv.txt' ]]
15681598 then
15691599 # Disable "predictable" network interface names
1570- G_CONFIG_INJECT ' extraargs=' ' extraargs=net.ifnames=0' /boot/armbianEnv.txt
1600+ G_CONFIG_INJECT ' extraargs=' ' extraargs=fsck.repair=yes net.ifnames=0' /boot/armbianEnv.txt
15711601
15721602 # Disable bootsplash logo, as we removed the file above: https://github.com/MichaIng/DietPi/issues/3932#issuecomment-852376681
15731603 G_CONFIG_INJECT ' bootlogo=' ' bootlogo=false' /boot/armbianEnv.txt
@@ -1621,7 +1651,7 @@ _EOF_
16211651 then
16221652 aPACKAGES_REQUIRED_INSTALL+=(' firmware-linux-free' ) # Qualcomm Atheros AR9170 WiFi
16231653 aPACKAGES_REQUIRED_INSTALL+=(' firmware-misc-nonfree' ) # MediaTek/Ralink WiFi
1624- # archive.raspberrypi.org provides firmware-nonfree packages from Bookworm backports, which have firmware-mediatek split off already
1654+ # archive.raspberrypi.com provides firmware-nonfree packages from Bookworm backports, which have firmware-mediatek split off already
16251655 (( $G_HW_MODEL > 9 )) || aPACKAGES_REQUIRED_INSTALL+=(' firmware-mediatek' )
16261656 else
16271657 aPACKAGES_REQUIRED_INSTALL+=(' firmware-ath9k-htc' ) # Qualcomm Atheros AR7010/AR9271 WiFi
@@ -2367,7 +2397,7 @@ _EOF_
23672397
23682398 # Update config
23692399 G_CONFIG_INJECT ' GRUB_CMDLINE_LINUX_DEFAULT=' ' GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"' /etc/default/grub # NB: Removing "quiet" adds ~0.5s to boot time on my 6.5s - 7.5s boot time laptop.
2370- G_CONFIG_INJECT ' GRUB_CMDLINE_LINUX=' ' GRUB_CMDLINE_LINUX="net.ifnames=0"' /etc/default/grub
2400+ G_CONFIG_INJECT ' GRUB_CMDLINE_LINUX=' ' GRUB_CMDLINE_LINUX="fsck.repair=yes net.ifnames=0"' /etc/default/grub
23712401 G_CONFIG_INJECT ' GRUB_TIMEOUT=' ' GRUB_TIMEOUT=0' /etc/default/grub
23722402 G_EXEC_DESC=' Regenerating GRUB config' G_EXEC_OUTPUT=1 G_EXEC grub-mkconfig -o /boot/grub/grub.cfg
23732403 fi
@@ -2391,7 +2421,7 @@ _EOF_
23912421 /boot/dietpi/func/dietpi-set_software apt-cache cache disable
23922422 /boot/dietpi/func/dietpi-set_software apt-cache clean
23932423
2394- (( $G_HW_MODEL == 75 )) || G_EXEC_DESC=' Enabling automated partition and file system resize for first boot' G_EXEC systemctl enable dietpi-fs_partition_resize
2424+ G_EXEC_DESC=' Enabling automated partition and file system resize for first boot' G_EXEC systemctl enable dietpi-fs_partition_resize
23952425 G_EXEC_DESC=' Enabling first boot installation process' G_EXEC systemctl enable dietpi-firstboot
23962426
23972427 G_DIETPI-NOTIFY 2 ' Clearing lost+found'
@@ -2400,11 +2430,11 @@ _EOF_
24002430 G_DIETPI-NOTIFY 2 ' Clearing DietPi logs, written during install'
24012431 rm -Rfv /var/tmp/dietpi/logs/{,.?? ,.[^.]}*
24022432
2403- if [[ -b $ROOT_DEVICE ]]
2433+ if [[ -b $G_ROOTFS_DEV ]]
24042434 then
24052435 G_DIETPI-NOTIFY 2 ' Clearing items below tmpfs mount points'
24062436 G_EXEC mkdir -p /mnt/tmp_root
2407- G_EXEC mount " $ROOT_DEVICE " /mnt/tmp_root
2437+ G_EXEC mount " $G_ROOTFS_DEV " /mnt/tmp_root
24082438 rm -Rfv /mnt/tmp_root/{dev,proc,run,sys,tmp,var/log}/{,.?? ,.[^.]}*
24092439 G_EXEC umount /mnt/tmp_root
24102440 G_EXEC rmdir /mnt/tmp_root
0 commit comments