Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beta v7.9.2 #5037

Merged
merged 15 commits into from
Dec 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .update/version
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Available DietPi version
G_REMOTE_VERSION_CORE=7
G_REMOTE_VERSION_SUB=9
G_REMOTE_VERSION_RC=1
G_REMOTE_VERSION_RC=2
# Minimum DietPi version to allow update
G_MIN_VERSION_CORE=6
G_MIN_VERSION_SUB=0
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,18 @@ Changes:
- DietPi-Software | Kodi: On Raspberry Pi Bullseye systems, the new official Raspberry Pi repository build for Kodi 19.3 is now installed. You can apply the upgrade manually by reinstalling Kodi: dietpi-software reinstall 31
- DietPi-Software | Kodi: The addon repository is now installed by default with all Kodi installs, which previously was the case only on RPi and Odroids. When currently missing, it can be manually installed: apt install kodi-repository-kodi
- DietPi-Software | Gitea: The service runs now as dedicated user "gitea" with its home directory "/mnt/dietpi_userdata/gitea" to allow easy transfer and usage of SSH keys for remote access. This applies to newly installed or reinstalled Gitea instances. Many thanks to @LilTrublMakr for reporting the related limitation with the previously used "dietpi" user: https://github.com/MichaIng/DietPi/issues/4620
- DietPi-Software | Chromium: On Raspberry Pi, the chromium-codecs-ffmpeg-extra package is now installed together with Chromium, which adds additional codecs for patented video/audio formats. Many thanks to @Krawei for identifying this Chromium video playback enhancement: https://github.com/MichaIng/DietPi/issues/5013

Fixes:
- Raspberry Pi | Resolved an issue in our images where on first boot two serial login consoles on the generic symlinked and actual serial devices could have been started. This doubled inputs and in turn broke successful username and password login via serial console on first boot. Many thanks to @ad7718 for reporting this issue: https://github.com/MichaIng/DietPi/issues/5014
- DietPi-Backup | Resolved an issue where backup and restore failed if a non-default backup location is used, as a wrong log file path was used. This is a v7.8 regression. Many thanks to @Malinka for reporting this issue: https://dietpi.com/phpbb/viewtopic.php?p=39909#p39909
- DietPi-Config | Resolved an issue where enabling the "odroid-lcd35" LCD panel on Odroids failed as SPI is enabled by default, blocking the same GPIO ports. Many thanks to @MarcProux for reporting this issue: https://github.com/MichaIng/DietPi/issues/4154
- DietPi-Software | Resolved a v7.8 regression where ReadyMedia, Deluge, Sonarr and Jellyfin installs failed with an error on "usermod", since the services were not stopped first. This has been loved via live patches for v7.8 as well.
- DietPi-Software | Transmission: Resolved a v7.8 regression where on fresh installs the intended configuration was not deployed. Many thanks to @kannz and @alessandro.psrt for reporting this issue: https://dietpi.com/phpbb/viewtopic.php?t=9567, https://dietpi.com/phpbb/viewtopic.php?t=9683
- DietPi-Software | SABnzbd: Resolved an issue where installs failed on ARMv6 and ARMv7 Stretch systems. Many thanks to @bensp for reporting this issue: https://github.com/MichaIng/DietPi/issues/4997
- DietPi-Software | Deluge: Worked around an issue on Raspberry Pi ARMv6 userland systems where the service failed to start. Deluge has hence been re-enabled for this systems. Many thanks to @themagicbullet for providing the workaround: https://github.com/MichaIng/DietPi/issues/4944
- DietPi-Software | UnRAR: Resolved an issue on Raspberry Pi 1 an Zero (1) where an incompatible "unrar" binary was installed. "unrar-free" from Raspbian is installed now on these models, but note that it does not fully support all RAR formats and may hence fail to extract archives in some cases.
- DietPi-Software | rTorrent: Resolved an issue where with Apache webserver the /RPC2 proxy to the rTorrent UNIX socket did not work due to invalid syntax. Many thanks to @Camry2731 for reporting this issue.

As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/XXXX

Expand Down
2 changes: 1 addition & 1 deletion boot_n2.ini
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ if test "x${max_freq_a53}" != "x"; then setenv a53_freq "max_freq_a53=${max_freq
setenv bootlabel "DietPi (64-bit)"

# Boot args
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=${cvbsmode} maxcpus=${maxcpus} voutmode=${voutmode} disablehpd=${disablehpd} enable_wol=${enable_wol} ${cec_enable} sdrmode=${sdrmode} consoleblank=0 logo=osd0,loaded monitor_onoff=${monitor_onoff} ${hid_quirks} ${cmode} overscan=${overscan} cvbscable=${cvbscable} systemd.unified_cgroup_hierarchy=0 ${a73_freq} ${a53_freq}"
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro fsck.repair=yes elevator=noop net.ifnames=0 ${condev} no_console_suspend consoleblank=0 logo=osd0,loaded systemd.unified_cgroup_hierarchy=0 hdmimode=${hdmimode} cvbsmode=${cvbsmode} maxcpus=${maxcpus} voutmode=${voutmode} disablehpd=${disablehpd} enable_wol=${enable_wol} sdrmode=${sdrmode} monitor_onoff=${monitor_onoff} overscan=${overscan} cvbscable=${cvbscable} ${hid_quirks} ${cec_enable} ${cmode} ${amlogic} ${a73_freq} ${a53_freq}"

# Set load addresses
setenv dtb_loadaddr "0x1000000"
Expand Down
152 changes: 75 additions & 77 deletions dietpi/dietpi-config
Original file line number Diff line number Diff line change
Expand Up @@ -1151,7 +1151,7 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the

fi

(( ${#G_WHIP_MENU_ARRAY[@]} > 2 )) || { G_WHIP_MSG 'No serial/UART devices have been found on your system.'; TARGETMENUID=3; return; }
(( ${#G_WHIP_MENU_ARRAY[@]} > 2 || ( $G_HW_MODEL > 9 && ${#G_WHIP_MENU_ARRAY[@]} ) )) || { G_WHIP_MSG 'No serial/UART devices have been found on your system.'; TARGETMENUID=3; return; }

G_WHIP_BUTTON_CANCEL_TEXT='Back'
if G_WHIP_MENU "Select an available serial/UART device to toggle a login console on it.$rpi_text"; then
Expand Down Expand Up @@ -1181,7 +1181,7 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the
# TARGETMENUID=3
Menu_AdvancedOptions(){

TARGETMENUID=0
TARGETMENUID=0 # Return to main menu

# Swap file
local swap_size=$(free -m | mawk '/Swap:/ {print $2;exit}')
Expand Down Expand Up @@ -1289,30 +1289,30 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the

fi

if G_WHIP_MENU 'Please select an option:'; then
G_WHIP_MENU 'Please select an option:' || return 0

TARGETMENUID=3 # Return to this menu
TARGETMENUID=3 # Stay in this menu

if [[ $G_WHIP_RETURNED_VALUE == 'Swap file' ]]; then
if [[ $G_WHIP_RETURNED_VALUE == 'Swap file' ]]; then

G_WHIP_YESNO 'Swapfile control has been moved to DietPi-Drive_Manager, would you like to run the application now?
G_WHIP_YESNO 'Swapfile control has been moved to DietPi-Drive_Manager, would you like to run the application now?
\nOnce finished, exit to resume DietPi-Config' && /boot/dietpi/dietpi-drive_manager

elif [[ $G_WHIP_RETURNED_VALUE == 'APT cache' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'APT cache' ]]; then

TARGETMENUID=19
TARGETMENUID=19

elif [[ $G_WHIP_RETURNED_VALUE == 'RTC mode' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'RTC mode' ]]; then

G_WHIP_MENU_ARRAY=(
G_WHIP_MENU_ARRAY=(

'Emulated' ': Use "fake-hwclock" to apply system clock on early boot'
'Hardware' ': Device has an active hardware RTC, purge "fake-hwclock"'
'Emulated' ': Use "fake-hwclock" to apply system clock on early boot'
'Hardware' ': Device has an active hardware RTC, purge "fake-hwclock"'

)
)

G_WHIP_DEFAULT_ITEM=$rtc_text
if G_WHIP_MENU 'Before network is available and network time sync can update the system clock, some implementation is required to do this on early boot stage.\n
G_WHIP_DEFAULT_ITEM=$rtc_text
if G_WHIP_MENU 'Before network is available and network time sync can update the system clock, some implementation is required to do this on early boot stage.\n
RTC hardware clock:
- Most x86 PCs and some SBCs have a hardware clock with battery attached, or, have a socket where it can optionally be attached to.
- If active, this hardware clock will apply the correct system time during kernel boot stage.\n
Expand All @@ -1321,116 +1321,114 @@ fake-hwclock:
- This means that the time is outdated if the system was shut down for a while, but without this implementation the system time would be 01/01/1970 until network time sync corrects it.\n
Please choose whether your device have an active RTC or requires "fake-hwclock":'; then

if [[ $G_WHIP_RETURNED_VALUE == 'Emulated' ]]; then
if [[ $G_WHIP_RETURNED_VALUE == 'Emulated' ]]; then

G_AGI fake-hwclock
G_EXEC systemctl enable --now fake-hwclock
G_AGI fake-hwclock
G_EXEC systemctl enable --now fake-hwclock

else

G_AGP fake-hwclock
else

fi
G_AGP fake-hwclock

fi

elif [[ $G_WHIP_RETURNED_VALUE == 'Time sync mode' ]]; then
fi

G_WHIP_MENU_ARRAY=(
elif [[ $G_WHIP_RETURNED_VALUE == 'Time sync mode' ]]; then

G_WHIP_MENU_ARRAY=(

'0' ': Custom'
'1' ': Boot Only'
'2' ': Boot + Daily (Recommended)'
'3' ': Boot + Hourly'
'4' ': Daemon + Drift'
'0' ': Custom'
'1' ': Boot Only'
'2' ': Boot + Daily (Recommended)'
'3' ': Boot + Hourly'
'4' ': Daemon + Drift'

)
)

G_WHIP_DEFAULT_ITEM=$ntpd_mode_current
if G_WHIP_MENU 'Here you can adjust the frequency of network time syncs.\n
G_WHIP_DEFAULT_ITEM=$ntpd_mode_current
if G_WHIP_MENU 'Here you can adjust the frequency of network time syncs.\n
- Modes 1-3:\nDietPi will launch systemd-timesyncd as a program, rather than a daemon. Once the time has been updated on your system, timesyncd will exit to reduce resource usage.\n
- Mode 4:\nsystemd-timesyncd will run as a background daemon/service. Differences in time will be gradually adjusted over time, rather than instantly.\n
- Mode 0:\nIf you use a custom time sync method, e.g. the NTP package for high precision demand, select custom mode to avoid systemd-timesyncd interference.'; then

/boot/dietpi/func/dietpi-set_software ntpd-mode "$G_WHIP_RETURNED_VALUE"
# Run time sync only, if not currently running, to avoid concurrent execution if dietpi-config was called from DietPi-Run_NTPD error handler
# - Run non-interactively to avoid its internal error handler allowing to open a concurrent dietpi-config instance
pgrep -cif /dietpi/func/run_ntpd > /dev/null || G_INTERACTIVE=0 MAX_LOOPS_CHECK=10 /boot/dietpi/func/run_ntpd 1
/boot/dietpi/func/dietpi-set_software ntpd-mode "$G_WHIP_RETURNED_VALUE"
# Run time sync only, if not currently running, to avoid concurrent execution if dietpi-config was called from DietPi-Run_NTPD error handler
# - Run non-interactively to avoid its internal error handler allowing to open a concurrent dietpi-config instance
pgrep -cif /dietpi/func/run_ntpd > /dev/null || G_INTERACTIVE=0 MAX_LOOPS_CHECK=10 /boot/dietpi/func/run_ntpd 1

fi
fi

elif [[ $G_WHIP_RETURNED_VALUE == 'Update firmware' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'Update firmware' ]]; then

local old_firmware=$(ls /lib/modules/)
local old_firmware=$(ls /lib/modules/)

# Pine A64: Non-ARMbian only
if [[ $G_HW_MODEL == 40 && -f '/usr/local/sbin/pine64_update_uboot.sh' && -f '/usr/local/sbin/pine64_update_kernel.sh' ]]; then
# Pine A64: Non-ARMbian only
if [[ $G_HW_MODEL == 40 && -f '/usr/local/sbin/pine64_update_uboot.sh' && -f '/usr/local/sbin/pine64_update_kernel.sh' ]]; then

if G_WHIP_YESNO "Would you like to update the firmware/kernel for $G_HW_MODEL_NAME?
if G_WHIP_YESNO "Would you like to update the firmware/kernel for $G_HW_MODEL_NAME?
- This will run longsleep's update scripts to update the U-Boot and kernel."; then

/usr/local/sbin/pine64_update_uboot.sh
/usr/local/sbin/pine64_update_kernel.sh
/usr/local/sbin/pine64_update_uboot.sh
/usr/local/sbin/pine64_update_kernel.sh

fi
fi

# G_AGDUG based (not all devices support this)
elif G_WHIP_YESNO "Would you like to update the firmware/kernel for $G_HW_MODEL_NAME?
# G_AGDUG based (not all devices support this)
elif G_WHIP_YESNO "Would you like to update the firmware/kernel for $G_HW_MODEL_NAME?
- This will run G_AGDUG, a wrapper for 'apt-get dist-upgrade'\n - Most (but not all) devices allow APT based firmware updates
\nNB: If requested to overwrite the current kernel, press TAB and then ENTER (to confirm)."; then

G_AGUP
G_AGDUG
G_AGUP
G_AGDUG

fi
fi

# Reboot required only, if firmware got actually updated
[[ $old_firmware != $(ls /lib/modules/) ]] && REBOOT_REQUIRED=1
# Reboot required only, if firmware got actually updated
[[ $old_firmware != $(ls /lib/modules/) ]] && REBOOT_REQUIRED=1

elif [[ $G_WHIP_RETURNED_VALUE == 'Update RPi4 EEPROM firmware' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'Update RPi4 EEPROM firmware' ]]; then

G_WHIP_YESNO '[ INFO ] EEPROM firmware update
G_WHIP_YESNO '[ INFO ] EEPROM firmware update
\nThis will, if required, install or upgrade the rpi-eeprom APT package and update bootloader and VL805 USB firmware on the RPi4 EEPROM.
Further information: https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md
\nDo you want to continue?' || return
/boot/dietpi/func/dietpi-set_hardware rpi-eeprom
/boot/dietpi/func/dietpi-set_hardware rpi-eeprom

elif [[ $G_WHIP_RETURNED_VALUE == 'I2C state' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'I2C state' ]]; then

/boot/dietpi/func/dietpi-set_hardware i2c $(( ! $rpi_i2c_enabled )) && REBOOT_REQUIRED=1
/boot/dietpi/func/dietpi-set_hardware i2c $(( ! $rpi_i2c_enabled )) && REBOOT_REQUIRED=1

elif [[ $G_WHIP_RETURNED_VALUE == 'I2C frequency' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'I2C frequency' ]]; then

# Remove kHz from current
G_WHIP_DEFAULT_ITEM=$rpi_i2c_baudrate
if G_WHIP_INPUTBOX 'Please enter the required I2C baudrate frequency (kHz).' && G_CHECK_VALIDINT "$G_WHIP_RETURNED_VALUE" 0; then
# Remove kHz from current
G_WHIP_DEFAULT_ITEM=$rpi_i2c_baudrate
if G_WHIP_INPUTBOX 'Please enter the required I2C baudrate frequency (kHz).' && G_CHECK_VALIDINT "$G_WHIP_RETURNED_VALUE" 0; then

/boot/dietpi/func/dietpi-set_hardware i2c "$G_WHIP_RETURNED_VALUE" && REBOOT_REQUIRED=1
/boot/dietpi/func/dietpi-set_hardware i2c "$G_WHIP_RETURNED_VALUE" && REBOOT_REQUIRED=1

fi
fi

elif [[ $G_WHIP_RETURNED_VALUE == 'SPI state' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'SPI state' ]]; then

/boot/dietpi/func/dietpi-set_hardware spi $(( ! $rpi_spi_enabled )) && REBOOT_REQUIRED=1
/boot/dietpi/func/dietpi-set_hardware spi $(( ! $rpi_spi_enabled )) && REBOOT_REQUIRED=1

elif [[ $G_WHIP_RETURNED_VALUE == 'Serial/UART' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'Serial/UART' ]]; then

TARGETMENUID=18
TARGETMENUID=18

elif [[ $G_WHIP_RETURNED_VALUE == 'Bluetooth' ]]; then
elif [[ $G_WHIP_RETURNED_VALUE == 'Bluetooth' ]]; then

/boot/dietpi/func/dietpi-set_hardware bluetooth $(( ! $bluetooth_state ))
# On RPi, when enabling onboard Bluetooth, a reboot is required to have the device tree changes taking effect.
(( $bluetooth_state || G_HW_MODEL > 9 )) || (( ! $G_HW_ONBOARD_WIFI )) || REBOOT_REQUIRED=1
/boot/dietpi/func/dietpi-set_hardware bluetooth $(( ! $bluetooth_state ))
# On RPi, when enabling onboard Bluetooth, a reboot is required to have the device tree changes taking effect.
(( $bluetooth_state || G_HW_MODEL > 9 )) || (( ! $G_HW_ONBOARD_WIFI )) || REBOOT_REQUIRED=1

elif [[ $G_WHIP_RETURNED_VALUE == 'USB boot support' && $rpi3_usb_boot_bit_enabled == 0 ]] &&
G_WHIP_YESNO 'The following will enable the RPi 3 to boot from USB mass storage devices. A hardware bit "17:3020000a" is set on next boot to enable the feature.
elif [[ $G_WHIP_RETURNED_VALUE == 'USB boot support' && $rpi3_usb_boot_bit_enabled == 0 ]] &&
G_WHIP_YESNO 'The following will enable the RPi 3 to boot from USB mass storage devices. A hardware bit "17:3020000a" is set on next boot to enable the feature.
\nNB:\n - Not all USB mass storage devices are supported.\n - The hardware bit which enables this setting is non-reversible.
\nDo you wish to enable USB mass storage boot support?'; then

/boot/dietpi/func/dietpi-set_hardware rpi3_usb_boot enable && REBOOT_REQUIRED=1

fi
/boot/dietpi/func/dietpi-set_hardware rpi3_usb_boot enable && REBOOT_REQUIRED=1

fi

Expand All @@ -1439,7 +1437,7 @@ Further information: https://www.raspberrypi.org/documentation/hardware/raspberr
# TARGETMENUID=4
Menu_PerformanceOptions(){

TARGETMENUID=0
TARGETMENUID=0 # Return to main menu

# All devices
local current_cpu_governor='N/A'
Expand Down
Loading