965 lines
38 KiB
Diff
965 lines
38 KiB
Diff
diff --git a/raspi-config b/raspi-config
|
|
index bf24fa9..bac530a 100755
|
|
--- a/raspi-config
|
|
+++ b/raspi-config
|
|
@@ -12,8 +12,8 @@ USER=${SUDO_USER:-$(who -m | awk '{ print $1 }')}
|
|
INIT="$(ps --no-headers -o comm 1)"
|
|
|
|
is_pi () {
|
|
- ARCH=$(dpkg --print-architecture)
|
|
- if [ "$ARCH" = "armhf" ] || [ "$ARCH" = "arm64" ] ; then
|
|
+ ARCH=$(arch)
|
|
+ if [ "$ARCH" = "aarch64" ]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
@@ -22,7 +22,7 @@ is_pi () {
|
|
|
|
if is_pi ; then
|
|
if [ -e /proc/device-tree/chosen/os_prefix ]; then
|
|
- PREFIX="$(cat /proc/device-tree/chosen/os_prefix)"
|
|
+ PREFIX="$(cat /proc/device-tree/chosen/os_prefix | tr -d '\0')"
|
|
fi
|
|
CMDLINE="/boot/${PREFIX}cmdline.txt"
|
|
else
|
|
@@ -63,6 +63,11 @@ is_pifour() {
|
|
return $?
|
|
}
|
|
|
|
+is_pifive() {
|
|
+ grep -q "^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F]4[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]$" /proc/cpuinfo
|
|
+ return $?
|
|
+}
|
|
+
|
|
get_pi_type() {
|
|
if is_pione; then
|
|
echo 1
|
|
@@ -72,6 +77,8 @@ get_pi_type() {
|
|
echo 3
|
|
elif is_pifour; then
|
|
echo 4
|
|
+ elif is_pifive; then
|
|
+ echo 5
|
|
elif is_pizero; then
|
|
echo 0
|
|
else
|
|
@@ -85,7 +92,7 @@ is_live() {
|
|
}
|
|
|
|
is_ssh() {
|
|
- if pstree -p | egrep --quiet --extended-regexp ".*sshd.*\($$\)"; then
|
|
+ if pstree -p | grep -E --quiet --extended-regexp ".*sshd.*\($$\)"; then
|
|
return 0
|
|
else
|
|
return 1
|
|
@@ -117,15 +124,18 @@ has_analog() {
|
|
}
|
|
|
|
is_installed() {
|
|
- if [ "$(dpkg -l "$1" 2> /dev/null | tail -n 1 | cut -d ' ' -f 1)" != "ii" ]; then
|
|
+ if [ "$(rpm -qa "$1" 2> /dev/null | wc -l)" == "0" ]; then
|
|
return 1
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
-deb_ver () {
|
|
- ver=`cat /etc/debian_version | cut -d . -f 1`
|
|
+rpm_ver () {
|
|
+ ver=`cat /etc/os-release | grep VERSION_ID | awk -F = '{print $2}' | cut -d . -f 1`
|
|
+ if [ "x${ver:0:1}" == "x\"" ]; then
|
|
+ ver=${ver:1}
|
|
+ fi
|
|
echo $ver
|
|
}
|
|
|
|
@@ -152,7 +162,7 @@ configuration of the Raspberry Pi. Although it can be run
|
|
at any time, some of the options may have difficulties if
|
|
you have heavily customised your installation.
|
|
|
|
-$(dpkg -s raspi-config 2> /dev/null | grep Version)\
|
|
+$(rpm -qi raspi-config 2> /dev/null | grep Version)\
|
|
" 20 70 1
|
|
return 0
|
|
}
|
|
@@ -163,7 +173,7 @@ get_can_expand() {
|
|
|
|
PART_NUM="$(echo "$ROOT_PART" | grep -o "[[:digit:]]*$")"
|
|
|
|
- if [ "$PART_NUM" -ne 2 ]; then
|
|
+ if [ "$PART_NUM" -ne 3 ]; then
|
|
echo 1
|
|
exit
|
|
fi
|
|
@@ -182,14 +192,25 @@ do_expand_rootfs() {
|
|
|
|
PART_NUM="$(echo "$ROOT_PART" | grep -o "[[:digit:]]*$")"
|
|
|
|
- LAST_PART_NUM=$(parted "$ROOT_DEV" -ms unit s p | tail -n 1 | cut -f 1 -d:)
|
|
+ PART_INFO=$(parted "$ROOT_DEV" -ms unit s p)
|
|
+
|
|
+ LAST_PART_NUM=$(echo "$PART_INFO" | tail -n 1 | cut -f 1 -d:)
|
|
if [ "$LAST_PART_NUM" -ne "$PART_NUM" ]; then
|
|
whiptail --msgbox "$ROOT_PART is not the last partition. Don't know how to expand" 20 60 2
|
|
- return 0
|
|
+ return -1
|
|
+ fi
|
|
+
|
|
+ PART_END=$(echo "$PART_INFO" | grep "^${PART_NUM}" | cut -f 3 -d: | sed 's/[^0-9]//g')
|
|
+ ROOT_END=$(echo "$PART_INFO" | grep "^/dev"| cut -f 2 -d: | sed 's/[^0-9]//g')
|
|
+ ((ROOT_END--)) # 31116287
|
|
+
|
|
+ if [ $PART_END -eq $ROOT_END ]; then
|
|
+ whiptail --msgbox "$ROOT_PART has been expanded!" 20 60 2
|
|
+ return 2
|
|
fi
|
|
|
|
# Get the starting offset of the root partition
|
|
- PART_START=$(parted "$ROOT_DEV" -ms unit s p | grep "^${PART_NUM}" | cut -f 2 -d: | sed 's/[^0-9]//g')
|
|
+ PART_START=$(echo "$PART_INFO" | grep "^${PART_NUM}" | cut -f 2 -d: | sed 's/[^0-9]//g')
|
|
[ "$PART_START" ] || return 1
|
|
# Return value will likely be error for fdisk as it fails to reload the
|
|
# partition table because the root fs is mounted
|
|
@@ -205,6 +226,15 @@ $PART_START
|
|
p
|
|
w
|
|
EOF
|
|
+ resize2fs $ROOT_PART
|
|
+ if [ $? -eq 0 ]; then
|
|
+ whiptail --msgbox "Root partition has been expanded successfully." 20 60 2
|
|
+ return 0
|
|
+ else
|
|
+ whiptail --msgbox "Fail to expand the root partition.\n\nPlease try again or reboot!" 20 60 2
|
|
+ return -1
|
|
+ fi
|
|
+
|
|
ASK_TO_REBOOT=1
|
|
|
|
# now set up an init.d script
|
|
@@ -241,6 +271,7 @@ EOF
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
whiptail --msgbox "Root partition has been resized.\nThe filesystem will be enlarged upon the next reboot" 20 60 2
|
|
fi
|
|
+ return 0
|
|
}
|
|
|
|
set_config_var() {
|
|
@@ -397,9 +428,12 @@ do_overscan_kms() {
|
|
echo "xrandr --output HDMI-$DEV --set \"left margin\" $PIX --set \"right margin\" $PIX --set \"top margin\" $PIX --set \"bottom margin\" $PIX" >> /usr/share/ovscsetup.sh
|
|
fi
|
|
else
|
|
- echo "#!/bin/sh\nxrandr --output HDMI-$DEV --set \"left margin\" $PIX --set \"right margin\" $PIX --set \"top margin\" $PIX --set \"bottom margin\" $PIX" > /usr/share/ovscsetup.sh
|
|
+ echo -e "#!/bin/sh\nxrandr --output HDMI-$DEV --set \"left margin\" $PIX --set \"right margin\" $PIX --set \"top margin\" $PIX --set \"bottom margin\" $PIX" > /usr/share/ovscsetup.sh
|
|
fi
|
|
if ! grep -q ovscsetup /usr/share/dispsetup.sh 2> /dev/null ; then
|
|
+ if [ ! -f /usr/share/dispsetup.sh ]; then
|
|
+ echo -e "#!/bin/sh\nexit 0" > /usr/share/dispsetup.sh
|
|
+ fi
|
|
sed /usr/share/dispsetup.sh -i -e "s#exit#if [ -e /usr/share/ovscsetup.sh ] ; then\n. /usr/share/ovscsetup.sh\nfi\nexit#"
|
|
fi
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
@@ -424,8 +458,9 @@ do_blanking() {
|
|
CURRENT=1
|
|
fi
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- if [ "$(dpkg -l xscreensaver | tail -n 1 | cut -d ' ' -f 1)" = "ii" ]; then
|
|
- whiptail --msgbox "Warning: xscreensaver is installed may override raspi-config settings" 20 60 2
|
|
+ screensaver=$(rpm -qa *saver*)
|
|
+ if [ ! -z "$screensaver" ] ; then
|
|
+ whiptail --msgbox "Warning: $screensaver is installed may override raspi-config settings" 20 60 2
|
|
fi
|
|
whiptail --yesno "Would you like to enable screen blanking?" $DEFAULT 20 60 2
|
|
RET=$?
|
|
@@ -577,69 +612,74 @@ do_change_timezone() {
|
|
|
|
get_wifi_country() {
|
|
CODE=${1:-0}
|
|
- if [ -e /etc/default/crda ]; then
|
|
- . /etc/default/crda
|
|
- elif systemctl -q is-active dhcpcd; then
|
|
- REGDOMAIN="$(wpa_cli get country | tail -n 1)"
|
|
- else
|
|
- REGDOMAIN="$(iw reg get | sed -n "0,/country/s/^country \(.\+\):.*$/\1/p")"
|
|
+ IFACE="$(list_wlan_interfaces | head -n 1)"
|
|
+ if [ -z "$IFACE" ]; then
|
|
+ if [ "$INTERACTIVE" = True ]; then
|
|
+ whiptail --msgbox "No wireless interface found" 20 60
|
|
+ fi
|
|
+ return 1
|
|
fi
|
|
- if [ -z "$REGDOMAIN" ] \
|
|
- || ! grep -q "^${REGDOMAIN}[[:space:]]" /usr/share/zoneinfo/iso3166.tab; then
|
|
+ if ! wpa_cli -i "$IFACE" status > /dev/null 2>&1; then
|
|
+ if [ "$INTERACTIVE" = True ]; then
|
|
+ whiptail --msgbox "Could not communicate with wpa_supplicant" 20 60
|
|
+ fi
|
|
+ return 1
|
|
+ fi
|
|
+ wpa_cli -i "$IFACE" save_config > /dev/null 2>&1
|
|
+ COUNTRY="$(wpa_cli -i "$IFACE" get country)"
|
|
+ if [ "$COUNTRY" = "FAIL" ]; then
|
|
return 1
|
|
fi
|
|
- if [ "$CODE" = 0 ]; then
|
|
- echo "$REGDOMAIN"
|
|
+ if [ $CODE = 0 ]; then
|
|
+ echo "$COUNTRY"
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
do_wifi_country() {
|
|
- if [ "$INTERACTIVE" = True ]; then
|
|
- value=$(sed '/^#/d' /usr/share/zoneinfo/iso3166.tab | tr '\t\n' '/')
|
|
- oIFS="$IFS"
|
|
- IFS="/"
|
|
- #shellcheck disable=2086
|
|
- REGDOMAIN=$(whiptail --menu "Select the country in which the Pi is to be used" 20 60 10 ${value} 3>&1 1>&2 2>&3)
|
|
- IFS="$oIFS"
|
|
- else
|
|
- REGDOMAIN=$1
|
|
- fi
|
|
- if ! grep -q "^${REGDOMAIN}[[:space:]]" /usr/share/zoneinfo/iso3166.tab; then
|
|
+ IFACE="$(list_wlan_interfaces | head -n 1)"
|
|
+ if [ -z "$IFACE" ]; then
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "$REGDOMAIN is not a valid ISO/IEC 3166-1 alpha2 code" 20 60
|
|
+ whiptail --msgbox "No wireless interface found" 20 60
|
|
fi
|
|
return 1
|
|
fi
|
|
- if [ -e /etc/default/crda ]; then
|
|
- sed -i "s/^REGDOMAIN=.*$/REGDOMAIN=$REGDOMAIN/" /etc/default/crda
|
|
- if ! ischroot; then
|
|
- iw reg set "$REGDOMAIN"
|
|
- fi
|
|
- fi
|
|
|
|
- IFACE="$(list_wlan_interfaces | head -n 1)"
|
|
- if [ "$INIT" = "systemd" ] && [ -n "$IFACE" ] && systemctl -q is-active dhcpcd; then
|
|
- wpa_cli -i "$IFACE" set country "$REGDOMAIN" > /dev/null 2>&1
|
|
- wpa_cli -i "$IFACE" save_config > /dev/null 2>&1
|
|
+ if ! wpa_cli -i "$IFACE" status > /dev/null 2>&1; then
|
|
+ if [ "$INTERACTIVE" = True ]; then
|
|
+ whiptail --msgbox "Could not communicate with wpa_supplicant" 20 60
|
|
+ fi
|
|
+ return 1
|
|
fi
|
|
|
|
- if [ "$INIT" = "systemd" ] && ! ischroot && systemctl -q is-active NetworkManager; then
|
|
- nmcli radio wifi on
|
|
- elif hash rfkill 2> /dev/null; then
|
|
- rfkill unblock wifi
|
|
+ oIFS="$IFS"
|
|
+ if [ "$INTERACTIVE" = True ]; then
|
|
+ value=$(cat /usr/share/zoneinfo/iso3166.tab | tail -n +26 | tr '\t' '/' | tr '\n' '/')
|
|
+ IFS="/"
|
|
+ COUNTRY=$(whiptail --menu "Select the country in which the Pi is to be used" 20 60 10 ${value} 3>&1 1>&2 2>&3)
|
|
+ else
|
|
+ COUNTRY=$1
|
|
+ true
|
|
fi
|
|
- if is_pi; then
|
|
- for filename in /var/lib/systemd/rfkill/*:wlan ; do
|
|
- if ! [ -e "$filename" ]; then
|
|
- continue
|
|
+ if [ $? -eq 0 ];then
|
|
+ wpa_cli -i "$IFACE" set country "$COUNTRY"
|
|
+ wpa_cli -i "$IFACE" save_config > /dev/null 2>&1
|
|
+ if iw reg set "$COUNTRY" 2> /dev/null; then
|
|
+ ASK_TO_REBOOT=1
|
|
+ fi
|
|
+ if hash rfkill 2> /dev/null; then
|
|
+ rfkill unblock wifi
|
|
+ if is_pi ; then
|
|
+ for filename in /var/lib/systemd/rfkill/*:wlan ; do
|
|
+ echo 0 > $filename
|
|
+ done
|
|
fi
|
|
- echo 0 > "$filename"
|
|
- done
|
|
- fi
|
|
- if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "Wireless LAN country set to $REGDOMAIN" 20 60 1
|
|
+ fi
|
|
+ if [ "$INTERACTIVE" = True ]; then
|
|
+ whiptail --msgbox "Wireless LAN country set to $COUNTRY" 20 60 1
|
|
+ fi
|
|
fi
|
|
+ IFS=$oIFS
|
|
}
|
|
|
|
get_hostname() {
|
|
@@ -664,7 +704,7 @@ No other symbols, punctuation characters, or blank spaces are permitted.\
|
|
true
|
|
fi
|
|
if [ "$?" -eq 0 ]; then
|
|
- if [ "$INIT" = "systemd" ] && systemctl -q is-active dbus && ! ischroot; then
|
|
+ if [ "$INIT" = "systemd" ] && systemctl -q is-active dbus; then
|
|
hostnamectl set-hostname "$NEW_HOSTNAME" 2> /dev/null
|
|
else
|
|
echo "$NEW_HOSTNAME" > /etc/hostname
|
|
@@ -826,7 +866,7 @@ clear_overclock () {
|
|
}
|
|
|
|
get_ssh() {
|
|
- if service ssh status | grep -q inactive; then
|
|
+ if systemctl status sshd.service | grep -q inactive; then
|
|
echo 1
|
|
else
|
|
echo 0
|
|
@@ -852,12 +892,12 @@ do_ssh() {
|
|
fi
|
|
if [ $RET -eq 0 ]; then
|
|
ssh-keygen -A &&
|
|
- update-rc.d ssh enable &&
|
|
- invoke-rc.d ssh start &&
|
|
+ systemctl enable sshd.service &&
|
|
+ systemctl start sshd.service &&
|
|
STATUS=enabled
|
|
elif [ $RET -eq 1 ]; then
|
|
- update-rc.d ssh disable &&
|
|
- invoke-rc.d ssh stop &&
|
|
+ systemctl disable sshd.service &&
|
|
+ systemctl stop sshd.service &&
|
|
STATUS=disabled
|
|
else
|
|
return $RET
|
|
@@ -868,7 +908,7 @@ do_ssh() {
|
|
}
|
|
|
|
get_vnc() {
|
|
- if systemctl status vncserver-x11-serviced.service | grep -q -w active; then
|
|
+ if systemctl status vncserver@:1.service | grep -q -w active; then
|
|
echo 0
|
|
else
|
|
echo 1
|
|
@@ -880,33 +920,39 @@ do_vnc() {
|
|
if [ $(get_vnc) -eq 0 ]; then
|
|
DEFAULT=
|
|
fi
|
|
- APT_GET_FLAGS=""
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
whiptail --yesno "Would you like the VNC Server to be enabled?" $DEFAULT 20 60 2
|
|
RET=$?
|
|
else
|
|
RET=$1
|
|
- APT_GET_FLAGS="-y"
|
|
fi
|
|
if [ $RET -eq 0 ]; then
|
|
- if is_installed realvnc-vnc-server || apt-get install "$APT_GET_FLAGS" realvnc-vnc-server; then
|
|
- systemctl enable vncserver-x11-serviced.service &&
|
|
- systemctl start vncserver-x11-serviced.service &&
|
|
+ if is_installed tigervnc-server || dnf install -y tigervnc-server; then
|
|
+ cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
|
|
+ sed -i '/:1='"$SUDO_USER"'/d' /etc/tigervnc/vncserver.users
|
|
+ sed -i '$a\:1='"$SUDO_USER"'' /etc/tigervnc/vncserver.users
|
|
+ systemctl enable vncserver@:1.service &&
|
|
+ systemctl start vncserver@:1.service &&
|
|
STATUS=enabled
|
|
else
|
|
return 1
|
|
fi
|
|
elif [ $RET -eq 1 ]; then
|
|
- if is_installed realvnc-vnc-server; then
|
|
- systemctl disable vncserver-x11-serviced.service
|
|
- systemctl stop vncserver-x11-serviced.service
|
|
+ if is_installed tigervnc-server; then
|
|
+ systemctl disable vncserver@:1.service
|
|
+ systemctl stop vncserver@:1.service
|
|
fi
|
|
STATUS=disabled
|
|
else
|
|
return $RET
|
|
fi
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "The VNC Server is $STATUS" 20 60 1
|
|
+ if [ -z $STATUS ]; then
|
|
+ whiptail --msgbox "Fail to start the VNC Server, please configure it manually!" 20 60 1
|
|
+ return 1
|
|
+ else
|
|
+ whiptail --msgbox "The VNC Server is $STATUS" 20 60 1
|
|
+ fi
|
|
fi
|
|
}
|
|
|
|
@@ -1095,8 +1141,7 @@ disable_raspi_config_at_boot() {
|
|
}
|
|
|
|
get_boot_cli() {
|
|
- if [ "$(basename $(readlink -f /etc/systemd/system/default.target))" = graphical.target ] \
|
|
- && systemctl is-enabled lightdm > /dev/null 2>&1; then
|
|
+ if [ "$(systemctl get-default)" = graphical.target ] && systemctl is-enabled lightdm > /dev/null 2>&1; then
|
|
echo 1
|
|
else
|
|
echo 0
|
|
@@ -1409,6 +1454,9 @@ do_boot_behaviour() {
|
|
;;
|
|
B2*)
|
|
systemctl --quiet set-default multi-user.target
|
|
+ if [ ! -d /etc/systemd/system/getty@tty1.service.d ]; then
|
|
+ mkdir /etc/systemd/system/getty@tty1.service.d
|
|
+ fi
|
|
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
|
|
[Service]
|
|
ExecStart=
|
|
@@ -1416,19 +1464,22 @@ ExecStart=-/sbin/agetty --autologin $USER --noclear %I \$TERM
|
|
EOF
|
|
;;
|
|
B3*)
|
|
- if [ -e /etc/init.d/lightdm ]; then
|
|
+ if [ -e /etc/lightdm ]; then
|
|
systemctl --quiet set-default graphical.target
|
|
rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf
|
|
sed /etc/lightdm/lightdm.conf -i -e "s/^autologin-user=.*/#autologin-user=/"
|
|
disable_raspi_config_at_boot
|
|
else
|
|
- whiptail --msgbox "Do 'sudo apt-get install lightdm' to allow configuration of boot to desktop" 20 60 2
|
|
+ whiptail --msgbox "Do 'sudo dnf install lightdm' to allow configuration of boot to desktop" 20 60 2
|
|
return 1
|
|
fi
|
|
;;
|
|
B4*)
|
|
- if [ -e /etc/init.d/lightdm ]; then
|
|
+ if [ -e /etc/lightdm ]; then
|
|
systemctl --quiet set-default graphical.target
|
|
+ if [ ! -d /etc/systemd/system/getty@tty1.service.d ]; then
|
|
+ mkdir /etc/systemd/system/getty@tty1.service.d
|
|
+ fi
|
|
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
|
|
[Service]
|
|
ExecStart=
|
|
@@ -1437,7 +1488,7 @@ EOF
|
|
sed /etc/lightdm/lightdm.conf -i -e "s/^\(#\|\)autologin-user=.*/autologin-user=$USER/"
|
|
disable_raspi_config_at_boot
|
|
else
|
|
- whiptail --msgbox "Do 'sudo apt-get install lightdm' to allow configuration of boot to desktop" 20 60 2
|
|
+ whiptail --msgbox "Do 'sudo dnf install lightdm' to allow configuration of boot to desktop" 20 60 2
|
|
return 1
|
|
fi
|
|
;;
|
|
@@ -1456,54 +1507,69 @@ EOF
|
|
do_boot_order() {
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
BOOTOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Boot Device Order" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
|
- "B1 SD Card Boot" "Boot from SD Card if available, otherwise boot from USB" \
|
|
- "B2 USB Boot" "Boot from USB if available, otherwise boot from SD Card" \
|
|
- "B3 Network Boot" "Boot from network if SD card boot fails" \
|
|
+ "B1 SD Card Boot " "Boot from SD Card before trying NVMe and then USB (RECOMMENDED)" \
|
|
+ "B2 NVMe/USB Boot" "Boot from NVMe before trying USB and then SD Card" \
|
|
+ "B3 Network Boot " "Boot from Network unless override by SD Card" \
|
|
3>&1 1>&2 2>&3)
|
|
else
|
|
BOOTOPT=$1
|
|
true
|
|
fi
|
|
if [ $? -eq 0 ]; then
|
|
- CURDATE=$(date -d "`vcgencmd bootloader_version | head -n 1`" +%Y%m%d)
|
|
+ CURDATE=$(date -d "$(vcgencmd bootloader_version | head -n 1)" +%Y%m%d)
|
|
FILNAME="none"
|
|
- if grep -q "stable" /etc/default/rpi-eeprom-update ; then
|
|
- EEPATH="/lib/firmware/raspberrypi/bootloader/stable/pieeprom*.bin"
|
|
+ EEBASE=$(rpi-eeprom-update | grep RELEASE | sed 's/.*(//g' | sed 's/[^\/]*)//g')
|
|
+ if grep FIRMWARE_RELEASE_STATUS /etc/default/rpi-eeprom-update | grep -Eq "stable|latest"; then
|
|
+ EEPATH="${EEBASE}/latest/pieeprom*.bin"
|
|
else
|
|
- EEPATH="/lib/firmware/raspberrypi/bootloader/critical/pieeprom*.bin"
|
|
+ EEPATH="${EEBASE}/default/pieeprom*.bin"
|
|
fi
|
|
- for filename in $EEPATH ; do
|
|
- FILDATE=$(date -d "`echo $filename | cut -d - -f 2- | cut -d . -f 1`" +%Y%m%d)
|
|
+ for filename in $(find $EEPATH -name "pieeprom*.bin" 2>/dev/null | sort); do
|
|
+ FILDATE=$(date -d "$(echo $filename | sed 's/.*\///g' | cut -d - -f 2- | cut -d . -f 1)" +%Y%m%d)
|
|
if [ $FILDATE -eq $CURDATE ]; then
|
|
FILNAME=$filename
|
|
+ break
|
|
+ elif [ "$FILDATE" ">" "$CURDATE" ]; then
|
|
+ # If there is no exact match then try an upgrade
|
|
+ FILNAME=$filename
|
|
fi
|
|
done
|
|
if [ "$FILNAME" = "none" ]; then
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "No EEPROM bin file found for version `date -d $CURDATE +%Y-%m-%d` - aborting" 20 60 2
|
|
+ whiptail --msgbox "Current EEPROM version $(date -d $CURDATE +%Y-%m-%d) or newer not found - aborting.\n\nTry updating the rpi-eeprom APT package." 20 70 2
|
|
fi
|
|
return 1
|
|
fi
|
|
EECFG=$(mktemp)
|
|
- vcgencmd bootloader_config > $EECFG
|
|
+ rpi-eeprom-config > $EECFG
|
|
sed $EECFG -i -e "/SD_BOOT_MAX_RETRIES/d"
|
|
sed $EECFG -i -e "/NET_BOOT_MAX_RETRIES/d"
|
|
case "$BOOTOPT" in
|
|
B1*)
|
|
+ if is_pifive; then
|
|
+ ORD=0xf461
|
|
+ else
|
|
+ ORD=0xf41
|
|
+ fi
|
|
if ! grep -q "BOOT_ORDER" $EECFG ; then
|
|
- sed $EECFG -i -e "\$a[all]\nBOOT_ORDER=0xf41"
|
|
+ sed $EECFG -i -e "\$a[all]\nBOOT_ORDER=${ORD}"
|
|
else
|
|
- sed $EECFG -i -e "s/^BOOT_ORDER=.*/BOOT_ORDER=0xf41/"
|
|
+ sed $EECFG -i -e "s/^BOOT_ORDER=.*/BOOT_ORDER=${ORD}/"
|
|
fi
|
|
STATUS="SD Card"
|
|
;;
|
|
B2*)
|
|
+ if is_pifive; then
|
|
+ ORD=0xf146
|
|
+ else
|
|
+ ORD=0xf14
|
|
+ fi
|
|
if ! grep -q "BOOT_ORDER" $EECFG ; then
|
|
- sed $EECFG -i -e "\$a[all]\nBOOT_ORDER=0xf14"
|
|
+ sed $EECFG -i -e "\$a[all]\nBOOT_ORDER=${ORD}"
|
|
else
|
|
- sed $EECFG -i -e "s/^BOOT_ORDER=.*/BOOT_ORDER=0xf14/"
|
|
+ sed $EECFG -i -e "s/^BOOT_ORDER=.*/BOOT_ORDER=${ORD}/"
|
|
fi
|
|
- STATUS="USB"
|
|
+ STATUS="NVMe/USB"
|
|
;;
|
|
B3*)
|
|
if ! grep -q "BOOT_ORDER" $EECFG ; then
|
|
@@ -1518,9 +1584,7 @@ do_boot_order() {
|
|
return 1
|
|
;;
|
|
esac
|
|
- EEBIN=$(mktemp)
|
|
- rpi-eeprom-config --config $EECFG --out $EEBIN $FILNAME
|
|
- rpi-eeprom-update -d -f $EEBIN
|
|
+ rpi-eeprom-config --apply $EECFG $FILNAME
|
|
ASK_TO_REBOOT=1
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
whiptail --msgbox "$STATUS is default boot device" 20 60 1
|
|
@@ -1531,9 +1595,9 @@ do_boot_order() {
|
|
|
|
do_boot_rom() {
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- BOOTOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Boot ROM Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
|
- "E1 Latest" "Use the latest version boot ROM software" \
|
|
- "E2 Default" "Use the factory default boot ROM software" \
|
|
+ BOOTOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Bootloader Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
|
+ "E1 Latest" "Use the latest bootloader image" \
|
|
+ "E2 Default" "Use the factory default bootloader image" \
|
|
3>&1 1>&2 2>&3)
|
|
else
|
|
BOOTOPT=$1
|
|
@@ -1542,46 +1606,47 @@ do_boot_rom() {
|
|
if [ $? -eq 0 ]; then
|
|
case "$BOOTOPT" in
|
|
E1*)
|
|
- sed /etc/default/rpi-eeprom-update -i -e "s/^FIRMWARE_RELEASE_STATUS.*/FIRMWARE_RELEASE_STATUS=\"stable\"/"
|
|
+ sed /etc/default/rpi-eeprom-update -i -e "s/^FIRMWARE_RELEASE_STATUS.*/FIRMWARE_RELEASE_STATUS=\"latest\"/"
|
|
EETYPE="Latest version"
|
|
;;
|
|
E2*)
|
|
- sed /etc/default/rpi-eeprom-update -i -e "s/^FIRMWARE_RELEASE_STATUS.*/FIRMWARE_RELEASE_STATUS=\"critical\"/"
|
|
+ sed /etc/default/rpi-eeprom-update -i -e "s/^FIRMWARE_RELEASE_STATUS.*/FIRMWARE_RELEASE_STATUS=\"default\"/"
|
|
EETYPE="Factory default"
|
|
;;
|
|
*)
|
|
- whiptail --msgbox "Programmer error, unrecognised boot ROM option" 20 60 2
|
|
+ whiptail --msgbox "Programmer error, unrecognised bootloader option" 20 60 2
|
|
return 1
|
|
;;
|
|
esac
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --yesno "$EETYPE boot ROM selected - will be loaded at next reboot.\n\nReset boot ROM to defaults?" 20 60 2
|
|
+ whiptail --yesno "$EETYPE bootloader selected - will be loaded at next reboot.\n\nReset bootloader to default configuration?" 20 60 2
|
|
DEFAULTS=$?
|
|
else
|
|
DEFAULTS=$2
|
|
fi
|
|
if [ "$DEFAULTS" -eq 0 ]; then # yes
|
|
- if grep -q "stable" /etc/default/rpi-eeprom-update ; then
|
|
- EEPATH="/lib/firmware/raspberrypi/bootloader/stable/"
|
|
+ EEBASE=$(rpi-eeprom-update | grep RELEASE | sed 's/.*(//g' | sed 's/[^\/]*)//g')
|
|
+ if grep FIRMWARE_RELEASE_STATUS /etc/default/rpi-eeprom-update | grep -Eq "stable|latest"; then
|
|
+ EEPATH="${EEBASE}/latest/"
|
|
else
|
|
- EEPATH="/lib/firmware/raspberrypi/bootloader/critical/"
|
|
+ EEPATH="${EEBASE}/default/"
|
|
fi
|
|
MATCH=".*/pieeprom-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].bin"
|
|
- FILNAME="$(find "${EEPATH}" -maxdepth 1 -type f -size 524288c -regex "${MATCH}" | sort -r | head -n1)"
|
|
+ FILNAME="$(find "${EEPATH}" -maxdepth 1 -type f -regex "${MATCH}" | sort -r | head -n1)"
|
|
if [ -z "$FILNAME" ]; then
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "No EEPROM bin file found - cannot reset to defaults" 20 60 2
|
|
+ whiptail --msgbox "No EEPROM bin file found - cannot reset to defaults,\n\nTry updating APT rpi-eeprom package and selecting the latest release." 20 60 2
|
|
fi
|
|
else
|
|
rpi-eeprom-update -d -f $FILNAME
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "Boot ROM reset to defaults" 20 60 2
|
|
+ whiptail --msgbox "Bootloader reset to default configuration" 20 60 2
|
|
fi
|
|
fi
|
|
else
|
|
rpi-eeprom-update
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
- whiptail --msgbox "Boot ROM not reset to defaults" 20 60 2
|
|
+ whiptail --msgbox "Bootloader not reset to defaults" 20 60 2
|
|
fi
|
|
fi
|
|
ASK_TO_REBOOT=1
|
|
@@ -1738,7 +1803,7 @@ EOF
|
|
}
|
|
|
|
get_camera() {
|
|
- if [ $(deb_ver) -le 10 ]; then
|
|
+ if [ $(rpm_ver) -le 21 ]; then
|
|
CAM=$(get_config_var start_x $CONFIG)
|
|
if [ $CAM -eq 1 ]; then
|
|
echo 0
|
|
@@ -1760,7 +1825,7 @@ get_camera() {
|
|
}
|
|
|
|
do_camera() {
|
|
- if [ $(deb_ver) -le 10 ] && [ ! -e /boot/start_x.elf ]; then
|
|
+ if [ $(rpm_ver) -le 21 ] && [ ! -e /boot/start_x.elf ]; then
|
|
whiptail --msgbox "Your firmware appears to be out of date (no start_x.elf). Please update" 20 60 2
|
|
return 1
|
|
fi
|
|
@@ -1783,7 +1848,7 @@ do_camera() {
|
|
ASK_TO_REBOOT=1
|
|
fi
|
|
if [ $RET -eq 0 ]; then
|
|
- if [ $(deb_ver) -le 10 ] ; then
|
|
+ if [ $(rpm_ver) -le 21 ] ; then
|
|
set_config_var start_x 1 $CONFIG
|
|
CUR_GPU_MEM=$(get_config_var gpu_mem $CONFIG)
|
|
if [ -z "$CUR_GPU_MEM" ] || [ "$CUR_GPU_MEM" -lt 128 ]; then
|
|
@@ -1794,7 +1859,7 @@ do_camera() {
|
|
fi
|
|
STATUS=enabled
|
|
elif [ $RET -eq 1 ]; then
|
|
- if [ $(deb_ver) -le 10 ] ; then
|
|
+ if [ $(rpm_ver) -le 21 ] ; then
|
|
set_config_var start_x 0 $CONFIG
|
|
sed $CONFIG -i -e "s/^start_file/#start_file/"
|
|
else
|
|
@@ -1912,19 +1977,19 @@ do_legacy() {
|
|
}
|
|
|
|
do_gldriver() {
|
|
- if [ ! -e /boot/overlays/vc4-kms-v3d.dtbo ]; then
|
|
- whiptail --msgbox "Driver and kernel not present on your system. Please update" 20 60 2
|
|
- return 1
|
|
- fi
|
|
- for package in gldriver-test libgl1-mesa-dri; do
|
|
- if [ "$(dpkg -l "$package" 2> /dev/null | tail -n 1 | cut -d ' ' -f 1)" != "ii" ]; then
|
|
- missing_packages="$package $missing_packages"
|
|
- fi
|
|
- done
|
|
- if [ -n "$missing_packages" ] && ! apt-get install $missing_packages; then
|
|
- whiptail --msgbox "Required packages not found, please install: ${missing_packages}" 20 60 2
|
|
- return 1
|
|
- fi
|
|
+# if [ ! -e /boot/overlays/vc4-kms-v3d.dtbo ]; then
|
|
+# whiptail --msgbox "Driver and kernel not present on your system. Please update" 20 60 2
|
|
+# return 1
|
|
+# fi
|
|
+# for package in gldriver-test libgl1-mesa-dri; do
|
|
+# if [ "$(dpkg -l "$package" 2> /dev/null | tail -n 1 | cut -d ' ' -f 1)" != "ii" ]; then
|
|
+# missing_packages="$package $missing_packages"
|
|
+# fi
|
|
+# done
|
|
+# if [ -n "$missing_packages" ] && ! apt-get install $missing_packages; then
|
|
+# whiptail --msgbox "Required packages not found, please install: ${missing_packages}" 20 60 2
|
|
+# return 1
|
|
+# fi
|
|
GLOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "GL Driver" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
|
"G1 Legacy" "Original non-GL desktop driver" \
|
|
"G2 GL (Full KMS)" "OpenGL desktop driver with full KMS" \
|
|
@@ -2153,6 +2218,7 @@ do_net_names () {
|
|
rm -f /etc/systemd/network/73-usb-net-by-mac.link
|
|
STATUS=enabled
|
|
elif [ $RET -eq 1 ]; then
|
|
+ mkdir -p /etc/systemd/network
|
|
ln -sf /dev/null /etc/systemd/network/99-default.link
|
|
ln -sf /dev/null /etc/systemd/network/73-usb-net-by-mac.link
|
|
STATUS=disabled
|
|
@@ -2165,8 +2231,8 @@ do_net_names () {
|
|
}
|
|
|
|
do_update() {
|
|
- apt-get update &&
|
|
- apt-get install raspi-config &&
|
|
+ dnf update &&
|
|
+ dnf install raspi-config -y &&
|
|
printf "Sleeping 5 seconds before reloading raspi-config\n" &&
|
|
sleep 5 &&
|
|
exec raspi-config
|
|
@@ -2211,7 +2277,7 @@ do_audio() {
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
n=0
|
|
array=""
|
|
- while [ $n -le 9 ]]
|
|
+ while [ $n -le 9 ]
|
|
do
|
|
CARD=$(LC_ALL=C aplay -l | grep "card $n" | cut -d [ -f 2 | cut -d ] -f 1)
|
|
if [ -z "$CARD" ] ; then
|
|
@@ -2377,12 +2443,69 @@ EOF
|
|
list_wlan_interfaces() {
|
|
for dir in /sys/class/net/*/wireless; do
|
|
if [ -d "$dir" ]; then
|
|
- IFACE="$(basename "$(dirname "$dir")")"
|
|
- if wpa_cli -i "$IFACE" status > /dev/null 2>&1; then
|
|
- echo "$IFACE"
|
|
- fi
|
|
+ basename "$(dirname "$dir")"
|
|
+ # IFACE="$(basename "$(dirname "$dir")")"
|
|
+ # if wpa_cli -i "$IFACE" status > /dev/null 2>&1; then
|
|
+ # echo "$IFACE"
|
|
+ # fi
|
|
+ fi
|
|
+ done
|
|
+}
|
|
+
|
|
+do_wifi_ssid_passphrase_nmcli() {
|
|
+ IFACE="$(list_wlan_interfaces | head -n 1)"
|
|
+
|
|
+ if [ -z "$IFACE" ]; then
|
|
+ if [ "$INTERACTIVE" = True ]; then
|
|
+ whiptail --msgbox "No wireless interface found" 20 60
|
|
+ fi
|
|
+ return 1
|
|
+ fi
|
|
+
|
|
+ SSID="$1"
|
|
+ while [ -z "$SSID" ] && [ "$INTERACTIVE" = True ]; do
|
|
+ SSID=$(whiptail --inputbox "Please enter SSID" 20 60 3>&1 1>&2 2>&3)
|
|
+ if [ $? -ne 0 ]; then
|
|
+ return 0
|
|
+ elif [ -z "$SSID" ]; then
|
|
+ whiptail --msgbox "SSID cannot be empty. Please try again." 20 60
|
|
+ fi
|
|
+ done
|
|
+
|
|
+ PASSPHRASE="$2"
|
|
+ while [ "$INTERACTIVE" = True ]; do
|
|
+ PASSPHRASE=$(whiptail --passwordbox "Please enter passphrase. Leave it empty if none." 20 60 3>&1 1>&2 2>&3)
|
|
+ if [ $? -ne 0 ]; then
|
|
+ return 0
|
|
+ else
|
|
+ break
|
|
fi
|
|
done
|
|
+
|
|
+ # Escape special characters for embedding in regex below
|
|
+ local ssid="$(echo "$SSID" \
|
|
+ | sed 's;\\;\\\\;g' \
|
|
+ | sed -e 's;\.;\\\.;g' \
|
|
+ -e 's;\*;\\\*;g' \
|
|
+ -e 's;\+;\\\+;g' \
|
|
+ -e 's;\?;\\\?;g' \
|
|
+ -e 's;\^;\\\^;g' \
|
|
+ -e 's;\$;\\\$;g' \
|
|
+ -e 's;\/;\\\/;g' \
|
|
+ -e 's;\[;\\\[;g' \
|
|
+ -e 's;\];\\\];g' \
|
|
+ -e 's;{;\\{;g' \
|
|
+ -e 's;};\\};g' \
|
|
+ -e 's;(;\\(;g' \
|
|
+ -e 's;);\\);g' \
|
|
+ -e 's;";\\\\\";g')"
|
|
+
|
|
+ nmcli dev wifi connect "$SSID" password "$PASSPHRASE"
|
|
+ RET=$?
|
|
+ if [ $RET -ne 0 ] ; then
|
|
+ whiptail --msgbox "Connect to $SSID failed, try nmtui." 20 60
|
|
+ fi
|
|
+ return $RET
|
|
}
|
|
|
|
do_wifi_ssid_passphrase() {
|
|
@@ -2883,8 +3006,8 @@ do_proxy() {
|
|
sed -i "/^export ${SCHEME}_/Id" /etc/profile.d/proxy.sh
|
|
fi
|
|
if [ "${SCHEME#*http}" != "$SCHEME" ]; then
|
|
- if [ -f /etc/apt/apt.conf.d/01proxy ]; then
|
|
- sed -i "/::${SCHEME}::Proxy/d" /etc/apt/apt.conf.d/01proxy
|
|
+ if [ -f /etc/yum.conf ]; then
|
|
+ sed -i "/^proxy/Id" /etc/yum.conf
|
|
fi
|
|
fi
|
|
if [ -z "$ADDRESS" ]; then
|
|
@@ -2898,7 +3021,7 @@ do_proxy() {
|
|
echo "export ${SCHEME}_proxy=\"$ADDRESS\"" >> /etc/profile.d/proxy.sh
|
|
fi
|
|
if [ "${SCHEME#*http}" != "$SCHEME" ]; then
|
|
- echo "Acquire::$SCHEME::Proxy \"$ADDRESS\";" >> /etc/apt/apt.conf.d/01proxy
|
|
+ echo "proxy=\"$ADDRESS\"" >> /etc/yum.conf
|
|
fi
|
|
done
|
|
if [ "$INTERACTIVE" = True ]; then
|
|
@@ -2929,7 +3052,9 @@ do
|
|
--expand-rootfs)
|
|
INTERACTIVE=False
|
|
do_expand_rootfs
|
|
- printf "Please reboot\n"
|
|
+ if [ $? -eq 0 ]; then
|
|
+ printf "Please reboot\n"
|
|
+ fi
|
|
exit 0
|
|
;;
|
|
--apply-os-config)
|
|
@@ -2975,8 +3100,8 @@ do_system_menu() {
|
|
"S3 Password" "Change password for the '$USER' user" \
|
|
"S4 Hostname" "Set name for this computer on a network" \
|
|
"S5 Boot / Auto Login" "Select boot into desktop or to command line" \
|
|
- "S6 Network at Boot" "Select wait for network connection on boot" \
|
|
- "S7 Splash Screen" "Choose graphical splash screen or text boot" \
|
|
+ `# "S6 Network at Boot" "Select wait for network connection on boot"` \
|
|
+ `# "S7 Splash Screen" "Choose graphical splash screen or text boot"` \
|
|
"S8 Power LED" "Set behaviour of power LED" \
|
|
3>&1 1>&2 2>&3)
|
|
elif is_live ; then
|
|
@@ -2985,7 +3110,7 @@ do_system_menu() {
|
|
"S3 Password" "Change password for the '$USER' user" \
|
|
"S4 Hostname" "Set name for this computer on a network" \
|
|
"S5 Boot / Auto Login" "Select boot into desktop or to command line" \
|
|
- "S6 Network at Boot" "Select wait for network connection on boot" \
|
|
+ `# "S6 Network at Boot" "Select wait for network connection on boot"` \
|
|
3>&1 1>&2 2>&3)
|
|
else
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "System Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
@@ -2993,8 +3118,8 @@ do_system_menu() {
|
|
"S3 Password" "Change password for the '$USER' user" \
|
|
"S4 Hostname" "Set name for this computer on a network" \
|
|
"S5 Boot / Auto Login" "Select boot into desktop or to command line" \
|
|
- "S6 Network at Boot" "Select wait for network connection on boot" \
|
|
- "S7 Splash Screen" "Choose graphical splash screen or text boot" \
|
|
+ `# "S6 Network at Boot" "Select wait for network connection on boot"` \
|
|
+ `# "S7 Splash Screen" "Choose graphical splash screen or text boot"` \
|
|
3>&1 1>&2 2>&3)
|
|
fi
|
|
RET=$?
|
|
@@ -3002,7 +3127,7 @@ do_system_menu() {
|
|
return 0
|
|
elif [ $RET -eq 0 ]; then
|
|
case "$FUN" in
|
|
- S1\ *) do_wifi_ssid_passphrase ;;
|
|
+ S1\ *) do_wifi_ssid_passphrase_nmcli ;;
|
|
S2\ *) do_audio ;;
|
|
S3\ *) do_change_pass ;;
|
|
S4\ *) do_hostname ;;
|
|
@@ -3071,7 +3196,7 @@ do_interface_menu() {
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Interfacing Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
"I1 Legacy Camera" "Enable/disable legacy camera support" \
|
|
"I2 SSH" "Enable/disable remote command line access using SSH" \
|
|
- "I3 VNC" "Enable/disable graphical remote access using RealVNC" \
|
|
+ "I3 VNC" "Enable/disable graphical remote access using TigerVNC" \
|
|
"I4 SPI" "Enable/disable automatic loading of SPI kernel module" \
|
|
"I5 I2C" "Enable/disable automatic loading of I2C kernel module" \
|
|
"I6 Serial Port" "Enable/disable shell messages on the serial connection" \
|
|
@@ -3105,7 +3230,7 @@ do_performance_menu() {
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Performance Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
"P1 Overclock" "Configure CPU overclocking" \
|
|
"P2 GPU Memory" "Change the amount of memory made available to the GPU" \
|
|
- "P3 Overlay File System" "Enable/disable read-only file system" \
|
|
+ `# "P3 Overlay File System" "Enable/disable read-only file system"` \
|
|
"P4 Fan" "Set behaviour of GPIO fan" \
|
|
3>&1 1>&2 2>&3)
|
|
RET=$?
|
|
@@ -3147,41 +3272,41 @@ do_advanced_menu() {
|
|
if is_pifour ; then
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Advanced Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
"A1 Expand Filesystem" "Ensures that all of the SD card is available" \
|
|
- "A3 Compositor" "Enable/disable xcompmgr composition manager" \
|
|
+ `# "A3 Compositor" "Enable/disable xcompmgr composition manager"` \
|
|
"A4 Network Interface Names" "Enable/disable predictable network i/f names" \
|
|
"A5 Network Proxy Settings" "Configure network proxy settings" \
|
|
"A6 Boot Order" "Choose network or USB device boot" \
|
|
- "A7 Bootloader Version" "Select latest or default boot ROM software" \
|
|
- "A9 Wayland" "Enable experimental Wayland backend" \
|
|
- "AA Network Config" "Set network configuration tool" \
|
|
+ "A7 Bootloader Version" "Select latest or factory default bootloader software" \
|
|
+ `# "A9 Wayland" "Enable experimental Wayland backend"` \
|
|
+ `# "AA Network Config" "Set network configuration tool"` \
|
|
3>&1 1>&2 2>&3)
|
|
elif is_pi ; then
|
|
if is_kms; then
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Advanced Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
"A1 Expand Filesystem" "Ensures that all of the SD card is available" \
|
|
- "A2 GL Driver" "Enable/disable experimental desktop GL driver" \
|
|
- "A3 Compositor" "Enable/disable xcompmgr composition manager" \
|
|
+ `# "A2 GL Driver" "Enable/disable experimental desktop GL driver"` \
|
|
+ `# "A3 Compositor" "Enable/disable xcompmgr composition manager"` \
|
|
"A4 Network Interface Names" "Enable/disable predictable network i/f names" \
|
|
"A5 Network Proxy Settings" "Configure network proxy settings" \
|
|
- "A8 Glamor" "Enable/disable glamor graphics acceleration" \
|
|
- "A9 Wayland" "Enable experimental Wayland backend" \
|
|
- "AA Network Config" "Set network configuration tool" \
|
|
+ `# "A8 Glamor" "Enable/disable glamor graphics acceleration"` \
|
|
+ `# "A9 Wayland" "Enable experimental Wayland backend"` \
|
|
+ `# "AA Network Config" "Set network configuration tool"` \
|
|
3>&1 1>&2 2>&3)
|
|
else
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Advanced Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
"A1 Expand Filesystem" "Ensures that all of the SD card is available" \
|
|
- "A2 GL Driver" "Enable/disable experimental desktop GL driver" \
|
|
+ `# "A2 GL Driver" "Enable/disable experimental desktop GL driver"` \
|
|
"A4 Network Interface Names" "Enable/disable predictable network i/f names" \
|
|
"A5 Network Proxy Settings" "Configure network proxy settings" \
|
|
- "A8 Glamor" "Enable/disable glamor graphics acceleration" \
|
|
- "AA Network Config" "Set network configuration tool" \
|
|
+ `# "A8 Glamor" "Enable/disable glamor graphics acceleration"` \
|
|
+ `# "AA Network Config" "Set network configuration tool"` \
|
|
3>&1 1>&2 2>&3)
|
|
fi
|
|
else
|
|
FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Advanced Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
|
|
"A4 Network Interface Names" "Enable/disable predictable network i/f names" \
|
|
"A5 Network Proxy Settings" "Configure network proxy settings" \
|
|
- "AA Network Config" "Set network configuration tool" \
|
|
+ `# "AA Network Config" "Set network configuration tool"` \
|
|
3>&1 1>&2 2>&3)
|
|
fi
|
|
RET=$?
|
|
@@ -3200,7 +3325,7 @@ do_advanced_menu() {
|
|
A9\ *) do_wayland ;;
|
|
AA\ *) do_netconf ;;
|
|
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
|
|
- esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
|
|
+ esac || [ $? -eq 2 ] || whiptail --msgbox "There was an error running option $FUN" 20 60 1
|
|
fi
|
|
}
|
|
|
|
@@ -3237,17 +3362,17 @@ if [ "$INTERACTIVE" = True ]; then
|
|
calc_wt_size
|
|
while [ "$USER" = "root" ] || [ -z "$USER" ]; do
|
|
if ! USER=$(whiptail --inputbox "raspi-config could not determine the default user.\\n\\nWhat user should these settings apply to?" 20 60 pi 3>&1 1>&2 2>&3); then
|
|
- return 0
|
|
+ exit 0
|
|
fi
|
|
done
|
|
while true; do
|
|
if is_pi ; then
|
|
- FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --backtitle "$(cat /proc/device-tree/model)" --menu "Setup Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Finish --ok-button Select \
|
|
+ FUN=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --backtitle "$(tr -d '\0' < /proc/device-tree/model)" --menu "Setup Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Finish --ok-button Select \
|
|
"1 System Options" "Configure system settings" \
|
|
"2 Display Options" "Configure display settings" \
|
|
"3 Interface Options" "Configure connections to peripherals" \
|
|
"4 Performance Options" "Configure performance settings" \
|
|
- "5 Localisation Options" "Configure language and regional settings" \
|
|
+ `# "5 Localisation Options" "Configure language and regional settings"` \
|
|
"6 Advanced Options" "Configure advanced settings" \
|
|
"8 Update" "Update this tool to the latest version" \
|
|
"9 About raspi-config" "Information about this configuration tool" \
|
|
@@ -3257,7 +3382,7 @@ if [ "$INTERACTIVE" = True ]; then
|
|
"1 System Options" "Configure system settings" \
|
|
"2 Display Options" "Configure display settings" \
|
|
"3 Interface Options" "Configure connections to peripherals" \
|
|
- "5 Localisation Options" "Configure language and regional settings" \
|
|
+ `# "5 Localisation Options" "Configure language and regional settings"` \
|
|
"6 Advanced Options" "Configure advanced settings" \
|
|
"8 Update" "Update this tool to the latest version" \
|
|
"9 About raspi-config" "Information about this configuration tool" \
|