Skip to content

Commit 959486f

Browse files
authored
Merge branch 'dev' into copilot/add-tui-menu-dietpi-servarr-to-ram
2 parents 3f85d0f + 394a5fe commit 959486f

25 files changed

+708
-396
lines changed

.build/images/Quartz64/quartz64_defconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,10 @@ CONFIG_MMC_SDHCI_OF_DWCMSHC=y
425425
CONFIG_MMC_SDHCI_PLTFM=y
426426
CONFIG_MMC_SPI=y
427427
CONFIG_MODULES=y
428+
CONFIG_MODULE_COMPRESS=y
429+
CONFIG_MODULE_COMPRESS_ALL=y
428430
CONFIG_MODULE_COMPRESS_XZ=y
431+
CONFIG_MODULE_DECOMPRESS=y
429432
CONFIG_MODULE_UNLOAD=y
430433
CONFIG_MOTORCOMM_PHY=y
431434
CONFIG_MPL3115=m

.build/images/dietpi-build

Lines changed: 85 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -93,90 +93,102 @@ done
9393
partition_start=1
9494
efi_size=0
9595
boot_size=0
96-
root_size=1200
96+
root_size=
9797
boot_fstype='fat32'
9898
case $HW_MODEL in
9999
0) iname='RPi' HW_ARCH=${HW_ARCH:-1} boot_size=128 root_size=895;;
100100
1) iname='RPi1' HW_ARCH=1 boot_size=128 root_size=895;;
101101
2) iname='RPi2' HW_ARCH=2 boot_size=128 root_size=895;;
102102
4) iname='RPi234' HW_ARCH=3 boot_size=128 root_size=1000;;
103103
5) iname='RPi5' HW_ARCH=3 boot_size=128 root_size=1000;;
104-
10) iname='OdroidC1' HW_ARCH=2 partition_start=4 boot_size=128 root_size=800 boot_fstype='fat16';;
105-
11) iname='OdroidXU4' HW_ARCH=2 partition_start=4 root_size=800;;
106-
12) iname='OdroidC2' HW_ARCH=3 partition_start=4 root_size=1148;;
107-
15) iname='OdroidN2' HW_ARCH=3 partition_start=4 root_size=1148;;
108-
16) iname='OdroidC4' HW_ARCH=3 partition_start=4 root_size=1148;;
109-
17) iname='OdroidHC4' HW_ARCH=3 partition_start=4 root_size=1148;;
104+
10) iname='OdroidC1' HW_ARCH=2 partition_start=4 boot_size=128 root_size='meson' boot_fstype='fat16';;
105+
11) iname='OdroidXU4' HW_ARCH=2 partition_start=4 root_size='meson';;
106+
12) iname='OdroidC2' HW_ARCH=3 partition_start=4 root_size='meson64';;
107+
15) iname='OdroidN2' HW_ARCH=3 partition_start=4 root_size='meson64';;
108+
16) iname='OdroidC4' HW_ARCH=3 partition_start=4 root_size='meson64';;
109+
17) iname='OdroidHC4' HW_ARCH=3 partition_start=4 root_size='meson64';;
110110
20) iname='VM' HW_ARCH=${HW_ARCH:-10} root_size=1200;;
111-
21) iname='NativePC' HW_ARCH=10 root_size=1663;;
112-
40) iname='PINEA64' HW_ARCH=3 partition_start=4 root_size=1020;;
113-
42) iname='ROCKPro64' HW_ARCH=3 partition_start=16 root_size=1200;;
114-
43) iname='ROCK64' HW_ARCH=3 partition_start=16 root_size=1200;;
115-
44) iname='Pinebook' HW_ARCH=3 partition_start=4 root_size=1020;;
116-
45) iname='PINEH64' HW_ARCH=3 partition_start=4 root_size=1020;;
117-
46) iname='PinebookPro' HW_ARCH=3 partition_start=16 root_size=1200;;
118-
47) iname='NanoPiR4S' HW_ARCH=3 partition_start=16 root_size=1200;;
119-
48) iname='NanoPiR1' HW_ARCH=2 partition_start=4 root_size=1000;;
120-
'49.1') iname='Quartz64A' HW_ARCH=3 partition_start=16 root_size=1000;;
121-
'49.2') iname='Quartz64B' HW_ARCH=3 partition_start=16 root_size=1000;;
122-
'49.3') iname='SOQuartz' HW_ARCH=3 partition_start=16 root_size=1000;;
123-
52) iname='ASUSTB' HW_ARCH=2 partition_start=4 root_size=800;;
124-
54) iname='NanoPiK2' HW_ARCH=3 partition_start=4 root_size=1148;;
125-
55) iname='NanoPiR2S' HW_ARCH=3 partition_start=16 root_size=1200;;
126-
56) iname='NanoPiNEO3' HW_ARCH=3 partition_start=16 root_size=1200;;
127-
57) iname='NanoPiNEOPlus2' HW_ARCH=3 partition_start=4 root_size=1000;;
128-
58) iname='NanoPiM4V2' HW_ARCH=3 partition_start=16 root_size=1200;;
129-
59) iname='ZeroPi' HW_ARCH=2 partition_start=4 root_size=1000;;
130-
60) iname='NanoPiNEO' HW_ARCH=2 partition_start=4 root_size=1000;;
131-
63) iname='NanoPiM1' HW_ARCH=2 partition_start=4 root_size=1000;;
132-
64) iname='NanoPiNEOAir' HW_ARCH=2 partition_start=4 root_size=1000;;
133-
'65.1') iname='NanoPiNEO2' HW_ARCH=3 partition_start=4 root_size=1020;;
134-
'65.2') iname='NanoPiNEO2Black' HW_ARCH=3 partition_start=4 root_size=1020;;
135-
66) iname='NanoPiM1Plus' HW_ARCH=2 partition_start=4 root_size=1000;;
136-
67) iname='NanoPiK1Plus' HW_ARCH=3 partition_start=4 root_size=1020;;
137-
'68.1') iname='NanoPiM4' HW_ARCH=3 partition_start=16 root_size=1200;;
138-
'68.2') iname='NanoPCT4' HW_ARCH=3 partition_start=16 root_size=1200;;
139-
'68.3') iname='NanoPiNEO4' HW_ARCH=3 partition_start=16 root_size=1200;;
140-
'72.1') iname='ROCKPi4' HW_ARCH=3 partition_start=16 root_size=1200;;
141-
'72.2') iname='ROCK4SE' HW_ARCH=3 partition_start=16 root_size=1200;;
142-
'72.3') iname='ROCK4CPlus' HW_ARCH=3 partition_start=16 root_size=1200;;
143-
73) iname='ROCKPiS' HW_ARCH=3 partition_start=16 root_size=1200;;
144-
74) iname='RadxaZero' HW_ARCH=3 partition_start=4 root_size=1148;;
111+
21) iname='NativePC' HW_ARCH=10 root_size=1600;;
112+
40) iname='PINEA64' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
113+
42) iname='ROCKPro64' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
114+
43) iname='ROCK64' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
115+
44) iname='Pinebook' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
116+
45) iname='PINEH64' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
117+
46) iname='PinebookPro' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
118+
47) iname='NanoPiR4S' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
119+
48) iname='NanoPiR1' HW_ARCH=2 partition_start=4 root_size='sunxi';;
120+
'49.1') iname='Quartz64A' HW_ARCH=3 partition_start=16 root_size='quartz64';;
121+
'49.2') iname='Quartz64B' HW_ARCH=3 partition_start=16 root_size='quartz64';;
122+
'49.3') iname='SOQuartz' HW_ARCH=3 partition_start=16 root_size='quartz64';;
123+
52) iname='ASUSTB' HW_ARCH=2 partition_start=4 root_size='rockchip';;
124+
54) iname='NanoPiK2' HW_ARCH=3 partition_start=4 root_size='meson64';;
125+
55) iname='NanoPiR2S' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
126+
56) iname='NanoPiNEO3' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
127+
57) iname='NanoPiNEOPlus2' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
128+
58) iname='NanoPiM4V2' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
129+
59) iname='ZeroPi' HW_ARCH=2 partition_start=4 root_size='sunxi';;
130+
60) iname='NanoPiNEO' HW_ARCH=2 partition_start=4 root_size='sunxi';;
131+
63) iname='NanoPiM1' HW_ARCH=2 partition_start=4 root_size='sunxi';;
132+
64) iname='NanoPiNEOAir' HW_ARCH=2 partition_start=4 root_size='sunxi';;
133+
'65.1') iname='NanoPiNEO2' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
134+
'65.2') iname='NanoPiNEO2Black' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
135+
66) iname='NanoPiM1Plus' HW_ARCH=2 partition_start=4 root_size='sunxi';;
136+
67) iname='NanoPiK1Plus' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
137+
'68.1') iname='NanoPiM4' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
138+
'68.2') iname='NanoPCT4' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
139+
'68.3') iname='NanoPiNEO4' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
140+
'72.1') iname='ROCKPi4' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
141+
'72.2') iname='ROCK4SE' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
142+
'72.3') iname='ROCK4CPlus' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
143+
73) iname='ROCKPiS' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
144+
74) iname='RadxaZero' HW_ARCH=3 partition_start=4 root_size='meson64';;
145145
75) iname='Container' HW_ARCH=${HW_ARCH:-10} root_size=700;;
146-
'76.1') iname='NanoPiR5S' HW_ARCH=3 partition_start=16 root_size=1200;;
147-
'76.2') iname='NanoPiR5C' HW_ARCH=3 partition_start=16 root_size=1200;;
148-
77) iname='ROCK3A' HW_ARCH=3 partition_start=16 root_size=1200;;
149-
78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
150-
'79.1') iname='NanoPiR6S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
151-
'79.2') iname='NanoPiR6C' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
152-
'79.3') iname='NanoPCT6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
153-
80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
154-
81) iname='VisionFive2' HW_ARCH=11 root_size=800;;
155-
82) iname='OrangePi5Plus' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
156-
83) iname='OrangePiZero3' HW_ARCH=3 partition_start=4 root_size=1148;;
157-
84) iname='Star64' HW_ARCH=11 root_size=800;;
158-
85) iname='ROCK5A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
159-
86) iname='ASUSTB2' HW_ARCH=3 partition_start=16 root_size=1200;;
160-
87) iname='OrangePi3B' HW_ARCH=3 partition_start=16 root_size=1200;;
161-
88) iname='OrangePiZero2W' HW_ARCH=3 partition_start=4 root_size=1148;;
162-
89) iname='OrangePi3LTS' HW_ARCH=3 partition_start=4 root_size=1000;;
163-
90) iname='RadxaZERO3' HW_ARCH=3 partition_start=16 root_size=1200;;
164-
91) iname='OrangePi5Max' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
165-
92) iname='NanoPiM6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
166-
93) iname='OrangePi5Pro' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
167-
94) iname='OrangePi5Ultra' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
168-
95) iname='OrangePiCM5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
169-
96) iname='OrangePi4A' HW_ARCH=3 partition_start=4 root_size=1000;;
170-
97) iname='OrangePiRV' HW_ARCH=11 partition_start=4 root_size=1000;;
171-
98) iname='OrangePiRV2' HW_ARCH=11 partition_start=4 root_size=1000;;
172-
99) iname='OrangePi3' HW_ARCH=3 partition_start=4 root_size=1000;;
173-
100) iname='NanoPiR3S' HW_ARCH=3 partition_start=16 root_size=1200;;
174-
101) iname='NanoPiR3SLTS' HW_ARCH=3 partition_start=16 root_size=1200;;
175-
102) iname='NanoPiR76S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
176-
103) iname='NanoPiM5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
177-
104) iname='NanoPiZero2' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1300;;
146+
'76.1') iname='NanoPiR5S' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
147+
'76.2') iname='NanoPiR5C' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
148+
77) iname='ROCK3A' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
149+
78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
150+
'79.1') iname='NanoPiR6S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
151+
'79.2') iname='NanoPiR6C' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
152+
'79.3') iname='NanoPCT6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
153+
80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
154+
81) iname='VisionFive2' HW_ARCH=11 root_size='riscv';;
155+
82) iname='OrangePi5Plus' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
156+
83) iname='OrangePiZero3' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
157+
84) iname='Star64' HW_ARCH=11 root_size='riscv';;
158+
85) iname='ROCK5A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
159+
86) iname='ASUSTB2' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
160+
87) iname='OrangePi3B' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
161+
88) iname='OrangePiZero2W' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
162+
89) iname='OrangePi3LTS' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
163+
90) iname='RadxaZERO3' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
164+
91) iname='OrangePi5Max' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
165+
92) iname='NanoPiM6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
166+
93) iname='OrangePi5Pro' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
167+
94) iname='OrangePi5Ultra' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
168+
95) iname='OrangePiCM5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
169+
96) iname='OrangePi4A' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
170+
97) iname='OrangePiRV' HW_ARCH=11 partition_start=4 root_size='riscv';;
171+
98) iname='OrangePiRV2' HW_ARCH=11 partition_start=4 root_size='riscv';;
172+
99) iname='OrangePi3' HW_ARCH=3 partition_start=4 root_size='sunxi64';;
173+
100) iname='NanoPiR3S' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
174+
101) iname='NanoPiR3SLTS' HW_ARCH=3 partition_start=16 root_size='rockchip64';;
175+
102) iname='NanoPiR76S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
176+
103) iname='NanoPiM5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
177+
104) iname='NanoPiZero2' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size='rk35xx';;
178178
*) Error_Exit "Invalid hardware model \"$HW_MODEL\" passed";;
179179
esac
180+
case $root_size in
181+
'riscv') root_size=650; (( $DISTRO > 8 )) && ((root_size+=50));;
182+
'meson') root_size=650; (( $DISTRO > 7 && ! $boot_size )) && ((root_size+=50));;
183+
'rockchip') root_size=700;;
184+
'quartz64') root_size=700; (( $DISTRO > 8 )) && ((root_size+=50));;
185+
'sunxi') root_size=700; (( $DISTRO > 7 )) && ((root_size+=50));;
186+
'sunxi64') root_size=800;;
187+
'meson64') root_size=850;;
188+
'rockchip64') root_size=900;;
189+
'rk35xx') root_size=1000;;
190+
*) (( $root_size )) || Error_Exit "Invalid root_size=$root_size";;
191+
esac
180192

181193
[[ $VARIANT =~ ^(|iso|vbox|vmx|esxi|hyperv|utm|proxmox|all)$ ]] || Error_Exit "Invalid variant \"$VARIANT\" passed"
182194

@@ -1275,8 +1287,5 @@ then
12751287
[[ -x 'upload.sh' ]] && G_EXEC_OUTPUT=1 G_EXEC ./upload.sh "$image_name.qcow2.xz"{,.sha256} "${signature[@]}" && G_EXEC rm "$image_name.qcow2.xz"{,.sha256} "${signature[@]}"
12761288
fi
12771289

1278-
# Cleanup
1279-
G_EXEC rm "$OUTPUT_IMG_NAME.img"
1280-
12811290
exit 0
12821291
}

.build/images/dietpi-imager

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@
543543
G_EXEC mount "${FP_ROOT_DEV::-1}1" "$fat_mountpoint"
544544
G_EXEC mount "$FP_ROOT_DEV" "$root_mountpoint"
545545
G_DIETPI-NOTIFY 2 'Copying dietpi.txt and other config files to the boot partition'
546-
for f in 'dietpi.txt' 'dietpi-wifi.txt' 'Automation_Custom_PreScript.sh' 'Automation_Custom_Script.sh' 'unattended_pivpn.conf'
546+
for f in 'dietpi.txt' 'dietpi-wifi.txt' 'Automation_Custom_PreScript.sh' 'Automation_Custom_Script.sh' 'unattended_pivpn.conf' 'dietpi-k3s.yaml'
547547
do
548548
[[ -f $root_mountpoint/boot/$f ]] || continue
549549
G_EXEC cp "$root_mountpoint/boot/$f" "$fat_mountpoint/"
@@ -573,7 +573,7 @@
573573
G_EXEC mount "$new_fat_part" "$fat_mountpoint"
574574
G_EXEC mount "$FP_ROOT_DEV" "$root_mountpoint"
575575
G_DIETPI-NOTIFY 2 'Copying dietpi.txt and other config files to the DIETPISETUP partition'
576-
for f in 'dietpi.txt' 'dietpi-wifi.txt' 'dietpiEnv.txt' 'boot.ini' 'extlinux/extlinux.conf' 'Automation_Custom_PreScript.sh' 'Automation_Custom_Script.sh' 'unattended_pivpn.conf'
576+
for f in 'dietpi.txt' 'dietpi-wifi.txt' 'dietpiEnv.txt' 'boot.ini' 'extlinux/extlinux.conf' 'Automation_Custom_PreScript.sh' 'Automation_Custom_Script.sh' 'unattended_pivpn.conf' 'dietpi-k3s.yaml'
577577
do
578578
[[ -f $root_mountpoint/boot/$f ]] || continue
579579
G_EXEC cp "$root_mountpoint/boot/$f" "$fat_mountpoint/"
@@ -590,6 +590,7 @@ Apart of editing the existing files, you can also create the following for furth
590590
- Automation_Custom_PreScript.sh
591591
- Automation_Custom_Script.sh
592592
- unattended_pivpn.conf
593+
- dietpi-k3s.yaml
593594
594595
For details, please check our documentation and dietpi.txt itself:
595596
https://dietpi.com/docs/usage/#how-to-do-an-automatic-base-installation-at-first-boot-dietpi-automation

.build/images/dietpi-installer

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,7 @@ setenv rootuuid "true"' /boot/boot.cmd
706706
esac
707707
G_CONFIG_INJECT 'overlay_path=' 'overlay_path=rockchip' /boot/dietpiEnv.txt
708708
# Device tree
709+
# shellcheck disable=SC2015
709710
case $G_HW_MODEL in
710711
46) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3399-pinebook-pro.dtb' /boot/dietpiEnv.txt;;
711712
55) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3328-nanopi-r2-rev00.dtb' /boot/dietpiEnv.txt;; # Includes and extends the U-Boot default rk3328-nanopi-r2s.dtb
@@ -728,7 +729,7 @@ setenv rootuuid "true"' /boot/boot.cmd
728729
esac
729730
;;
730731
85) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3588s-rock-5a.dtb' /boot/dietpiEnv.txt;;
731-
104) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3528-nanopi-rev01.dtb' /boot/dietpiEnv.txt;;
732+
104) [[ $RK35XX_MAINLINE == 1 ]] && G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3528-nanopi-zero2.dtb' /boot/dietpiEnv.txt || G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3528-nanopi-rev01.dtb' /boot/dietpiEnv.txt;;
732733
*) :;;
733734
esac
734735
# Overlay prefix
@@ -813,12 +814,8 @@ setenv rootuuid "true"' /boot/boot.cmd
813814
# Console args
814815
case $G_HW_MODEL in
815816
57|65) G_CONFIG_INJECT 'consoleargs=' 'consoleargs=console=ttyS0,115200' /boot/dietpiEnv.txt;; # headless
816-
96) G_EXEC sed --follow-symlinks -i 's/ttyAML0/ttyAS0/' /boot/dietpiEnv.txt;;
817817
*) G_EXEC sed --follow-symlinks -i 's/ttyAML0/ttyS0/' /boot/dietpiEnv.txt;;
818818
esac
819-
# Orange Pi 4A
820-
# shellcheck disable=SC2016
821-
(( $G_HW_MODEL == 96 )) && G_EXEC sed --follow-symlinks -i -e 's|\${prefix}Image|${prefix}zImage|' -e 's/booti/bootz/' /boot/boot.cmd && G_CONFIG_INJECT 'setenv scriptaddr ' 'setenv scriptaddr "0x43100000"' /boot/boot.cmd
822819

823820
# Allwinner H3 (32-bit)
824821
elif [[ $G_HW_MODEL =~ ^(48|59|60|63|64|66)$ ]]
@@ -1053,7 +1050,7 @@ _EOF_'
10531050
G_EXEC eval 'echo '\''do_symlinks=0'\'' > /etc/kernel-img.conf'
10541051
G_EXEC rm -f /{,boot/}{initrd.img,vmlinuz}{,.old}
10551052

1056-
# Install initramfs-tools first to have an initramfs generated on kernel install, and configure it to use zstd if supported for better compression and faster decompression
1053+
# Install initramfs-tools first to have an initramfs generated on kernel install, and configure it to use zstd for better compression and faster decompression
10571054
G_AGI initramfs-tools zstd
10581055
G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf
10591056

@@ -1105,7 +1102,7 @@ _EOF_
11051102
fi
11061103

11071104
# Select kernel, device tree and U-Boot packages
1108-
local model='odroidn2' kernel='meson64' arch='arm64' branch='current' zstd=()
1105+
local model='odroidn2' kernel='meson64' arch='arm64' branch='current'
11091106
case $G_HW_MODEL in
11101107
10) model='odroidc1' kernel='meson' arch='arm';;
11111108
11) model='odroidxu4' kernel='odroidxu4' arch='arm';;
@@ -1178,7 +1175,7 @@ _EOF_
11781175
93) model='orangepi5pro' kernel='rk35xx' branch='vendor';;
11791176
94) model='orangepi5-ultra' kernel='rk35xx' branch='vendor';;
11801177
95) model='orangepicm5' kernel='rk35xx' branch='vendor';;
1181-
96) model='orangepi4a' kernel='sun55iw3' branch='legacy';;
1178+
96) model='orangepi-4a' kernel='sunxi64' branch='edge';;
11821179
99) model='orangepi3' kernel='sunxi64';;
11831180
100) model='nanopi-r3s' kernel='rockchip64';;
11841181
101) model='nanopi-r3s-lts' kernel='rockchip64';;
@@ -1189,7 +1186,12 @@ _EOF_
11891186
esac
11901187

11911188
# Override with mainline kernel if wanted
1192-
[[ $RK35XX_MAINLINE == 1 && $kernel == 'rk35xx' ]] && kernel='rockchip64' branch='edge'
1189+
if [[ $RK35XX_MAINLINE == 1 && $kernel == 'rk35xx' ]]
1190+
then
1191+
kernel='rockchip64'
1192+
# NanoPi M5/R76S: Stay with edge for now since R76S lacks dts in 6.18 and M5 some features like HDMI audio
1193+
[[ $G_HW_MODEL == 10[23] ]] && branch='edge' || branch='current'
1194+
fi
11931195

11941196
# NanoPi R2S/NEO3
11951197
if [[ $G_HW_MODEL =~ ^(55|56)$ ]]
@@ -1208,6 +1210,16 @@ _EOF_
12081210
G_DIETPI-NOTIFY 2 'Limiting CMA size to 16 MiB to free more system memory'
12091211
G_EXEC sed --follow-symlinks -i '/^extraargs=/s/$/ cma=16M/' /boot/dietpiEnv.txt
12101212

1213+
# Orange Pi 4A
1214+
elif (( $G_HW_MODEL == 96 ))
1215+
then
1216+
G_DIETPI-NOTIFY 2 'Blacklisting mainline brcmfmac WiFi driver for Orange Pi 4A which does not work with onboard WiFi and crashes the board at random occasions'
1217+
cat << '_EOF_' > /etc/modprobe.d/dietpi-orangepi4a.conf || exit 1
1218+
blacklist brcmfmac_wcc
1219+
blacklist brcmfmac
1220+
blacklist btsdio
1221+
blacklist hci_uart
1222+
_EOF_
12111223
# Orange Pi CM5: Select Tablet Base Board device tree automatically if second USB-C port seems functional
12121224
# - Better would be to read the model from EEPROM, but for that we would need to know the hardware ID range of that base board: https://github.com/radxa/u-boot/blob/next-dev-v2024.10/board/rockchip/evb_rk3588/evb_rk3588.c#L101
12131225
elif (( $G_HW_MODEL == 95 ))
@@ -1225,10 +1237,9 @@ fi' /boot/boot.cmd
12251237
/boot/dietpi/func/dietpi-set_software apt clean
12261238
G_AGUP
12271239

1228-
# Install initramfs-tools first to have an initramfs generated on kernel install, and configure it to use zstd if supported for better compression and faster decompression
1229-
[[ $kernel == 's5p6818' ]] || zstd=('zstd')
1230-
G_AGI initramfs-tools u-boot-tools armbian-firmware "${zstd[@]}"
1231-
[[ ${zstd[0]} ]] && G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf
1240+
# Install initramfs-tools first to have an initramfs generated on kernel install, and configure it to use zstd for better compression and faster decompression
1241+
G_AGI initramfs-tools zstd armbian-firmware u-boot-tools
1242+
G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf
12321243

12331244
# Install testing kernel build if requested
12341245
if (( $TEST_KERNEL ))

0 commit comments

Comments
 (0)