mirror of
https://github.com/brain-hackers/brain-config.git
synced 2024-12-22 20:20:06 +09:00
Add Pi 4 video options
This commit is contained in:
parent
322f79fb9d
commit
28666b8358
4
cmstart.sh
Executable file
4
cmstart.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if grep -q okay /proc/device-tree/soc/v3d@7ec00000/status 2> /dev/null || grep -q okay /proc/device-tree/soc/firmwarekms@7e600000/status 2> /dev/null ; then
|
||||||
|
xcompmgr -aR
|
||||||
|
fi
|
14
debian/changelog
vendored
14
debian/changelog
vendored
@ -1,3 +1,17 @@
|
|||||||
|
raspi-config (20190607) buster; urgency=medium
|
||||||
|
|
||||||
|
[ Simon Long ]
|
||||||
|
* Only run xcompmgr if FKMS is enabled
|
||||||
|
|
||||||
|
-- Serge Schneider <serge@raspberrypi.org> Fri, 07 Jun 2019 16:11:11 +0100
|
||||||
|
|
||||||
|
raspi-config (20190520) buster; urgency=medium
|
||||||
|
|
||||||
|
[ Simon Long ]
|
||||||
|
* Add Pi 4 video options
|
||||||
|
|
||||||
|
-- Serge Schneider <serge@raspberrypi.org> Mon, 20 May 2019 11:01:12 +0100
|
||||||
|
|
||||||
raspi-config (20190514) buster; urgency=medium
|
raspi-config (20190514) buster; urgency=medium
|
||||||
|
|
||||||
[ Simon Long ]
|
[ Simon Long ]
|
||||||
|
1
debian/raspi-config.install
vendored
1
debian/raspi-config.install
vendored
@ -1,3 +1,4 @@
|
|||||||
raspi-config /usr/bin
|
raspi-config /usr/bin
|
||||||
autologin@.service /etc/systemd/system
|
autologin@.service /etc/systemd/system
|
||||||
init_resize.sh /usr/lib/raspi-config
|
init_resize.sh /usr/lib/raspi-config
|
||||||
|
cmstart.sh /usr/lib/raspi-config
|
||||||
|
127
raspi-config
127
raspi-config
@ -43,6 +43,11 @@ is_pizero() {
|
|||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_pifour() {
|
||||||
|
grep -q "^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$" /proc/cpuinfo
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
get_pi_type() {
|
get_pi_type() {
|
||||||
if is_pione; then
|
if is_pione; then
|
||||||
echo 1
|
echo 1
|
||||||
@ -270,6 +275,12 @@ get_overscan() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
do_overscan() {
|
do_overscan() {
|
||||||
|
if is_fkms ; then
|
||||||
|
if [ "$INTERACTIVE" = True ]; then
|
||||||
|
whiptail --msgbox "Overscan cannot be set with the GL driver" 20 60 1
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
DEFAULT=--defaultno
|
DEFAULT=--defaultno
|
||||||
CURRENT=0
|
CURRENT=0
|
||||||
if [ $(get_overscan) -eq 0 ]; then
|
if [ $(get_overscan) -eq 0 ]; then
|
||||||
@ -982,6 +993,75 @@ get_autologin() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_pi4video () {
|
||||||
|
if grep -q "^hdmi_enable_4k=1" $CONFIG ; then
|
||||||
|
echo 1
|
||||||
|
elif grep -q "^hdmi_ignore_composite=0" $CONFIG ; then
|
||||||
|
echo 2
|
||||||
|
else
|
||||||
|
echo 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_pi4video() {
|
||||||
|
if ! is_pifour ; then
|
||||||
|
if [ "$INTERACTIVE" = True ]; then
|
||||||
|
whiptail --msgbox "This option can only be used on a Pi 4" 20 60 1
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
CURRENT=$(get_pi4video)
|
||||||
|
if [ "$INTERACTIVE" = True ]; then
|
||||||
|
VIDOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Pi 4 Video Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
||||||
|
"V1 Enable 4K HDMI" "Enable 4K resolution on HDMI outputs (disables analog)" \
|
||||||
|
"V2 Enable analog TV output" "Enable composite video output (disables 4K)" \
|
||||||
|
"V3 Disable both 4K and analog" "Disable 4K HDMI and composite video" \
|
||||||
|
3>&1 1>&2 2>&3)
|
||||||
|
else
|
||||||
|
VIDOPT=$1
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
case "$VIDOPT" in
|
||||||
|
V1*)
|
||||||
|
sed $CONFIG -i -e "s/^#\?hdmi_enable_4k=.*/hdmi_enable_4k=1/"
|
||||||
|
sed $CONFIG -i -e "s/^hdmi_ignore_composite=/#hdmi_ignore_composite=/"
|
||||||
|
if ! grep -q "hdmi_enable_4k" $CONFIG ; then
|
||||||
|
sed $CONFIG -i -e "\$ahdmi_enable_4k=1"
|
||||||
|
fi
|
||||||
|
STATUS="4k HDMI enabled"
|
||||||
|
OPT=1
|
||||||
|
;;
|
||||||
|
V2*)
|
||||||
|
sed $CONFIG -i -e "s/^#\?hdmi_ignore_composite=.*/hdmi_ignore_composite=0/"
|
||||||
|
sed $CONFIG -i -e "s/^hdmi_enable_4k=/#hdmi_enable_4k=/"
|
||||||
|
if ! grep -q "hdmi_ignore_composite" $CONFIG ; then
|
||||||
|
sed $CONFIG -i -e "\$ahdmi_ignore_composite=0"
|
||||||
|
fi
|
||||||
|
STATUS="analog TV enabled"
|
||||||
|
OPT=2
|
||||||
|
;;
|
||||||
|
V3*)
|
||||||
|
sed $CONFIG -i -e "s/^hdmi_enable_4k=/#hdmi_enable_4k=/"
|
||||||
|
sed $CONFIG -i -e "s/^hdmi_ignore_composite=/#hdmi_ignore_composite=/"
|
||||||
|
STATUS="4K and analog disabled"
|
||||||
|
OPT=0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
whiptail --msgbox "Programmer error, unrecognised video option" 20 60 2
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ $OPT -ne $CURRENT ]; then
|
||||||
|
ASK_TO_REBOOT=1
|
||||||
|
fi
|
||||||
|
if [ "$INTERACTIVE" = True ]; then
|
||||||
|
whiptail --msgbox "Pi 4 video output option is $STATUS" 20 60 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
do_boot_behaviour() {
|
do_boot_behaviour() {
|
||||||
if [ "$INTERACTIVE" = True ]; then
|
if [ "$INTERACTIVE" = True ]; then
|
||||||
BOOTOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Boot Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
BOOTOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Boot Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
||||||
@ -1297,42 +1377,49 @@ do_gldriver() {
|
|||||||
whiptail --msgbox "libgl1-mesa-dri not found - please install" 20 60 2
|
whiptail --msgbox "libgl1-mesa-dri not found - please install" 20 60 2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
if is_pifour ; then
|
||||||
GLOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "GL Driver" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
GLOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "GL Driver" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
|
||||||
"G1 GL (Full KMS)" "OpenGL desktop driver with full KMS" \
|
"G1 Legacy" "Original non-GL desktop driver" \
|
||||||
"G2 GL (Fake KMS)" "OpenGL desktop driver with fake KMS" \
|
"G2 GL (Fake KMS)" "OpenGL desktop driver with fake KMS" \
|
||||||
"G3 Legacy" "Original non-GL desktop driver" \
|
|
||||||
3>&1 1>&2 2>&3)
|
3>&1 1>&2 2>&3)
|
||||||
|
else
|
||||||
|
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 (Fake KMS)" "OpenGL desktop driver with fake KMS" \
|
||||||
|
"G3 GL (Full KMS)" "OpenGL desktop driver with full KMS" \
|
||||||
|
3>&1 1>&2 2>&3)
|
||||||
|
fi
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
case "$GLOPT" in
|
case "$GLOPT" in
|
||||||
G1*)
|
G1*)
|
||||||
if ! grep -q -E "^dtoverlay=vc4-kms-v3d" $CONFIG; then
|
if grep -q -E "^dtoverlay=vc4-f?kms-v3d" $CONFIG; then
|
||||||
ASK_TO_REBOOT=1
|
ASK_TO_REBOOT=1
|
||||||
fi
|
fi
|
||||||
sed $CONFIG -i -e "s/^dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/"
|
sed $CONFIG -i -e "s/^dtoverlay=vc4-kms-v3d/#dtoverlay=vc4-kms-v3d/g"
|
||||||
sed $CONFIG -i -e "s/^#dtoverlay=vc4-kms-v3d/dtoverlay=vc4-kms-v3d/"
|
sed $CONFIG -i -e "s/^dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g"
|
||||||
if ! grep -q -E "^dtoverlay=vc4-kms-v3d" $CONFIG; then
|
STATUS="The GL driver is disabled."
|
||||||
printf "dtoverlay=vc4-kms-v3d\n" >> $CONFIG
|
|
||||||
fi
|
|
||||||
STATUS="The full KMS GL driver is enabled."
|
|
||||||
;;
|
;;
|
||||||
G2*)
|
G2*)
|
||||||
if ! grep -q -E "^dtoverlay=vc4-fkms-v3d" $CONFIG; then
|
if ! sed -n "/\[pi4\]/,/\[/ !p" $CONFIG | grep -q "^dtoverlay=vc4-fkms-v3d" ; then
|
||||||
ASK_TO_REBOOT=1
|
ASK_TO_REBOOT=1
|
||||||
fi
|
fi
|
||||||
sed $CONFIG -i -e "s/^dtoverlay=vc4-kms-v3d/#dtoverlay=vc4-kms-v3d/"
|
sed $CONFIG -i -e "s/^dtoverlay=vc4-kms-v3d/#dtoverlay=vc4-kms-v3d/g"
|
||||||
sed $CONFIG -i -e "s/^#dtoverlay=vc4-fkms-v3d/dtoverlay=vc4-fkms-v3d/"
|
sed $CONFIG -i -e "s/^#dtoverlay=vc4-fkms-v3d/dtoverlay=vc4-fkms-v3d/g"
|
||||||
if ! grep -q -E "^dtoverlay=vc4-fkms-v3d" $CONFIG; then
|
if ! sed -n "/\[pi4\]/,/\[/ !p" $CONFIG | grep -q "^dtoverlay=vc4-fkms-v3d" ; then
|
||||||
printf "dtoverlay=vc4-fkms-v3d\n" >> $CONFIG
|
printf "[all]\ndtoverlay=vc4-fkms-v3d\n" >> $CONFIG
|
||||||
fi
|
fi
|
||||||
STATUS="The fake KMS GL driver is enabled."
|
STATUS="The fake KMS GL driver is enabled."
|
||||||
;;
|
;;
|
||||||
G3*)
|
G3*)
|
||||||
if grep -q -E "^dtoverlay=vc4-f?kms-v3d" $CONFIG; then
|
if ! sed -n "/\[pi4\]/,/\[/ !p" $CONFIG | grep -q "^dtoverlay=vc4-kms-v3d" ; then
|
||||||
ASK_TO_REBOOT=1
|
ASK_TO_REBOOT=1
|
||||||
fi
|
fi
|
||||||
sed $CONFIG -i -e "s/^dtoverlay=vc4-kms-v3d/#dtoverlay=vc4-kms-v3d/"
|
sed $CONFIG -i -e "s/^dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g"
|
||||||
sed $CONFIG -i -e "s/^dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/"
|
sed $CONFIG -i -e "s/^#dtoverlay=vc4-kms-v3d/dtoverlay=vc4-kms-v3d/g"
|
||||||
STATUS="The GL driver is disabled."
|
if ! sed -n "/\[pi4\]/,/\[/ !p" $CONFIG | grep -q "^dtoverlay=vc4-kms-v3d" ; then
|
||||||
|
printf "[all]\ndtoverlay=vc4-kms-v3d\n" >> $CONFIG
|
||||||
|
fi
|
||||||
|
STATUS="The full KMS GL driver is enabled."
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
whiptail --msgbox "Programmer error, unrecognised boot option" 20 60 2
|
whiptail --msgbox "Programmer error, unrecognised boot option" 20 60 2
|
||||||
@ -1379,7 +1466,7 @@ Type=Application
|
|||||||
Name=xcompmgr
|
Name=xcompmgr
|
||||||
Comment=Start xcompmgr compositor
|
Comment=Start xcompmgr compositor
|
||||||
NoDisplay=true
|
NoDisplay=true
|
||||||
Exec=xcompmgr -a
|
Exec=/usr/lib/raspi-config/cmstart.sh
|
||||||
EOF
|
EOF
|
||||||
STATUS=enabled
|
STATUS=enabled
|
||||||
elif [ $RET -eq 1 ]; then
|
elif [ $RET -eq 1 ]; then
|
||||||
@ -1835,6 +1922,7 @@ do_advanced_menu() {
|
|||||||
"A6 Pixel Doubling" "Enable/Disable 2x2 pixel mapping" \
|
"A6 Pixel Doubling" "Enable/Disable 2x2 pixel mapping" \
|
||||||
"A7 GL Driver" "Enable/Disable experimental desktop GL driver" \
|
"A7 GL Driver" "Enable/Disable experimental desktop GL driver" \
|
||||||
"A8 Compositor" "Enable/Disable xcompmgr composition manager" \
|
"A8 Compositor" "Enable/Disable xcompmgr composition manager" \
|
||||||
|
"A9 Pi 4 Video Output" "Video output options for Pi 4" \
|
||||||
3>&1 1>&2 2>&3)
|
3>&1 1>&2 2>&3)
|
||||||
RET=$?
|
RET=$?
|
||||||
if [ $RET -eq 1 ]; then
|
if [ $RET -eq 1 ]; then
|
||||||
@ -1849,6 +1937,7 @@ do_advanced_menu() {
|
|||||||
A6\ *) do_pixdub ;;
|
A6\ *) do_pixdub ;;
|
||||||
A7\ *) do_gldriver ;;
|
A7\ *) do_gldriver ;;
|
||||||
A8\ *) do_xcompmgr ;;
|
A8\ *) do_xcompmgr ;;
|
||||||
|
A9\ *) do_pi4video ;;
|
||||||
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
|
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
|
||||||
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
|
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user