From 2f4a3e96c262ffa6c8464dbcb04ae257da68af49 Mon Sep 17 00:00:00 2001 From: orangepi-xunlong <258384131@qq.com> Date: Thu, 25 May 2023 21:38:01 +0800 Subject: [PATCH] opi5plus: update REVISION to 1.0.4 rk3588: kde-plasma: support ctrl+alt+t shortcut to open the command line terminal rk3588: kde-plasma: add konsole and chromium shortcuts to the taskbar rk3588: fix realteck 8821cu usb wifi (from Joshua Riek) rk3588: update audio configurations (from Joshua Riek) --- external/config/boards/orangepi5plus.conf | 2 +- .../environments/gnome/config_base/packages | 11 +++++ .../families/include/rk3588_gpu_vpu.inc | 2 + .../sources/families/rockchip-rk3588.conf | 43 +++++++++++++++++++ .../initramfs-tools/hooks/usb_modeswitch | 23 ++++++++++ .../bsp/orangepi5plus/usr/bin/test_hdmiin.sh | 15 +++++-- 6 files changed, 91 insertions(+), 5 deletions(-) create mode 100755 external/packages/bsp/common/usr/share/initramfs-tools/hooks/usb_modeswitch diff --git a/external/config/boards/orangepi5plus.conf b/external/config/boards/orangepi5plus.conf index bdec17c..266dd9c 100644 --- a/external/config/boards/orangepi5plus.conf +++ b/external/config/boards/orangepi5plus.conf @@ -11,4 +11,4 @@ BOOT_SUPPORT_SPI="yes" SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes DISTRIB_TYPE_LEGACY="bullseye bookworm bionic focal jammy" BOOTFS_TYPE="fat" -REVISION="1.0.2" +REVISION="1.0.4" diff --git a/external/config/desktop/jammy/environments/gnome/config_base/packages b/external/config/desktop/jammy/environments/gnome/config_base/packages index eded2a0..547389a 100755 --- a/external/config/desktop/jammy/environments/gnome/config_base/packages +++ b/external/config/desktop/jammy/environments/gnome/config_base/packages @@ -164,3 +164,14 @@ yelp yelp-xsl zenity zenity-common +nautilus-extension-gnome-terminal +okular +remmina +remmina-plugin-rdp +remmina-plugin-vnc +folder-color +yaru-theme-gnome-shell +yaru-theme-icon +yaru-theme-sound +yaru-theme-unity +yaru-theme-gtk diff --git a/external/config/sources/families/include/rk3588_gpu_vpu.inc b/external/config/sources/families/include/rk3588_gpu_vpu.inc index 8040fc2..4f93e6d 100755 --- a/external/config/sources/families/include/rk3588_gpu_vpu.inc +++ b/external/config/sources/families/include/rk3588_gpu_vpu.inc @@ -377,6 +377,8 @@ rk3588_gpu_vpu_tweaks() dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpp/librockchip-vpu0_1.5.0-1+git230210.c145c84~jammy1_arm64.deb" dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpp/rockchip-mpp-demos_1.5.0-1+git230210.c145c84~jammy1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/gir1.2-gstreamer-1.0_1.20.3-0ubuntu1_arm64.deb" dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/gstreamer1.0-tools_1.20.3-0ubuntu1_arm64.deb" dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/libgstreamer1.0-0_1.20.3-0ubuntu1_arm64.deb" diff --git a/external/config/sources/families/rockchip-rk3588.conf b/external/config/sources/families/rockchip-rk3588.conf index 5df5097..4d1abef 100644 --- a/external/config/sources/families/rockchip-rk3588.conf +++ b/external/config/sources/families/rockchip-rk3588.conf @@ -51,7 +51,9 @@ install_balenaEtcher(){ family_tweaks_s() { if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then + rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/ + cat > "${SDCARD}"/etc/profile.d/kde_env.sh <<- __EOF__ #!/bin/bash @@ -69,6 +71,22 @@ family_tweaks_s() { Backend=XRender OpenGLIsUnsafe=false __EOF__ + + cat <<-EOF >>"${SDCARD}"/home/orangepi/.config/kglobalshortcutsrc + [org.kde.konsole.desktop] + NewTab=,,Open a New Tab + NewWindow=,,Open a New Window + _k_friendly_name=Konsole + _launch=Ctrl+Alt+T,,Konsole + EOF + + cat <<-EOF >>"${SDCARD}"/home/orangepi/.config/plasma-org.kde.plasma.desktop-appletsrc + [Containments][2][Applets][5][Configuration][General] + launchers=applications:systemsettings.desktop,applications:org.kde.discover.desktop,preferred://filemanager,preferred://browser,applications:org.kde.konsole.desktop + + [Containments][2][Applets][5][Configuration][General] + launchers=applications:systemsettings.desktop,applications:org.kde.discover.desktop,preferred://filemanager,preferred://browser,applications:org.kde.konsole.desktop,applications:chromium-browser.desktop + EOF fi else rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/ @@ -103,4 +121,29 @@ family_tweaks_s() { install_wiringop install_docker install_balenaEtcher + + # Board audio specific changes + if [[ ${BOARD} =~ orangepi5|orangepi5b ]]; then + + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + + elif [[ "${BOARD}" =~ orangepi5plus|orangepi900 ]]; then + + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-In Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + fi + + # Realtek 8811CU/8821CU usb modeswitch support + cp ${SDCARD}/lib/udev/rules.d/40-usb_modeswitch.rules ${SDCARD}/etc/udev/rules.d/40-usb_modeswitch.rules + sed '/LABEL="modeswitch_rules_end"/d' -i ${SDCARD}/etc/udev/rules.d/40-usb_modeswitch.rules + cat >> ${SDCARD}/etc/udev/rules.d/40-usb_modeswitch.rules <<-EOF + # Realtek 8821CU Wifi AC USB + ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b" + LABEL="modeswitch_rules_end" + EOF } diff --git a/external/packages/bsp/common/usr/share/initramfs-tools/hooks/usb_modeswitch b/external/packages/bsp/common/usr/share/initramfs-tools/hooks/usb_modeswitch new file mode 100755 index 0000000..8eb7530 --- /dev/null +++ b/external/packages/bsp/common/usr/share/initramfs-tools/hooks/usb_modeswitch @@ -0,0 +1,23 @@ +#!/bin/sh + +PREREQ="" +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +prereqs) + prereqs + exit 0 + ;; +esac + +. /usr/share/initramfs-tools/scripts/functions +. /usr/share/initramfs-tools/hook-functions + +copy_exec /usr/sbin/usb_modeswitch /usr/sbin/usb_modeswitch +copy_exec /etc/udev/rules.d/40-usb_modeswitch.rules /etc/udev/rules.d/40-usb_modeswitch.rules +copy_exec /lib/udev/rules.d/40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules + +exit 0 diff --git a/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh b/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh index 370caed..3566db3 100755 --- a/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh +++ b/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh @@ -17,10 +17,17 @@ hdmi0_card=$(aplay -l | grep "hdmi0" | cut -d ':' -f 1 | cut -d ' ' -f 2) hdmi1_card=$(aplay -l | grep "hdmi1" | cut -d ':' -f 1 | cut -d ' ' -f 2) hdmiin_card=$(arecord -l | grep "hdmiin" | cut -d ":" -f 1 | cut -d ' ' -f 2) -DISPLAY=:0.0 gst-launch-1.0 v4l2src device=${device_id} io-mode=4 ! videoconvert \ - ! video/x-raw,format=NV12,width=${width},height=${heigh} \ - ! videoscale ! video/x-raw,width=1280,height=720 \ - ! autovideosink sync=false 2>&1 > /dev/null & +if [[ $XDG_SESSION_TYPE == wayland ]]; then + DISPLAY=:0.0 gst-launch-1.0 v4l2src device=${device_id} ! videoconvert \ + ! videoscale ! video/x-raw,width=1280,height=720 \ + ! waylandsink sync=false 2>&1 > /dev/null & +else + DISPLAY=:0.0 gst-launch-1.0 v4l2src device=${device_id} io-mode=4 ! videoconvert \ + ! video/x-raw,format=NV12,width=${width},height=${heigh} \ + ! videoscale ! video/x-raw,width=1280,height=720 \ + ! autovideosink sync=false 2>&1 > /dev/null & + +fi gst-launch-1.0 alsasrc device=hw:${hdmiin_card},0 ! audioconvert ! audioresample ! queue \ ! tee name=t ! queue ! alsasink device="hw:${hdmi0_card},0" \