diff --git a/external/config/boards/orangepi5ultra.conf b/external/config/boards/orangepi5ultra.conf new file mode 100644 index 0000000..d14956b --- /dev/null +++ b/external/config/boards/orangepi5ultra.conf @@ -0,0 +1,15 @@ +# Rockchip RK3588 SoC +BOARD_NAME="Orange Pi 5 Ultra" +BOARDFAMILY="rockchip-rk3588" +BOOTCONFIG="orangepi_5_ultra_defconfig" +KERNEL_TARGET="legacy,current" +BOOT_LOGO="desktop" +BOOT_FDT_FILE="rockchip/rk3588-orangepi-5-ultra.dtb" +BOOT_SCENARIO="spl-blobs" +IMAGE_PARTITION_TABLE="gpt" +BOOT_SUPPORT_SPI="yes" +SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes +DISTRIB_TYPE_LEGACY="bullseye bookworm bionic focal jammy" +DISTRIB_TYPE_CURRENT="bullseye bookworm jammy" +BOOTFS_TYPE="fat" +REVISION="1.0.0" diff --git a/external/config/sources/families/include/rockchip64_common.inc b/external/config/sources/families/include/rockchip64_common.inc index 6250020..ccfb569 100644 --- a/external/config/sources/families/include/rockchip64_common.inc +++ b/external/config/sources/families/include/rockchip64_common.inc @@ -62,7 +62,8 @@ elif [[ $BOARDFAMILY == "rockchip-rk3588" ]]; then BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}" - if [[ "${BOARD}x" =~ orangepi5maxx|orangepi5prox|orangepi5plusx|orangepi5x ]]; then + if [[ "${BOARD}x" =~ orangepi5maxx|orangepi5prox|orangepi5plusx|orangepi5x|orangepi5bx|orangepi5ultrax ]]; then + DDR_BLOB="${DDR_BLOB:=rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin}" BL31_BLOB='rk35/rk3588_bl31_v1.45_20240422.elf' else diff --git a/external/config/sources/families/rockchip-rk3588.conf b/external/config/sources/families/rockchip-rk3588.conf index e35c558..7dc1575 100644 --- a/external/config/sources/families/rockchip-rk3588.conf +++ b/external/config/sources/families/rockchip-rk3588.conf @@ -18,7 +18,7 @@ case $BRANCH in KERNELPATCHDIR='rockchip-rk3588-legacy' LINUXCONFIG="linux-rockchip-rk3588-legacy" [[ ${BOARD} == orangepi5pro ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5pro" - [[ ${BOARD} == orangepi5max ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5max" + [[ ${BOARD} =~ orangepi5max|orangepi5ultra ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5max" [[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opicm5-tablet" if [[ "${build_rt_image}" =~ yes ]]; then @@ -39,7 +39,7 @@ case $BRANCH in KERNELPATCHDIR='rockchip-rk3588-current' LINUXCONFIG="linux-rockchip-rk3588-current" [[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-current-opicm5-tablet" - [[ ${BOARD} =~ orangepi5pro|orangepi5max ]] && LINUXCONFIG="linux-rockchip-rk3588-current-opi5pro" + [[ ${BOARD} =~ orangepi5pro|orangepi5max|orangepi5ultra ]] && LINUXCONFIG="linux-rockchip-rk3588-current-opi5pro" KERNEL_USE_GCC='> 10.0' esac @@ -113,7 +113,7 @@ family_tweaks_s() { rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/ fi - if [[ ${BOARD} =~ orangepi5plus|orangepi5max|orangepi900 ]]; then + if [[ ${BOARD} =~ orangepi5plus|orangepi5max|orangepi900|orangepi5ultra ]]; then if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/orangepi5plus/* ${SDCARD}/ @@ -172,6 +172,12 @@ family_tweaks_s() { 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-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules + + elif [[ "${BOARD}x" == orangepi5ultrax ]]; 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-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-In 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 diff --git a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization index 2013367..ef7551f 100755 --- a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization +++ b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization @@ -97,7 +97,7 @@ prepare_board() { rockpro64|renegade-elite|pinebook-pro|station-p1) BOARDFAMILY=rk3399 ;; - orangepi5|orangepicm5|orangepicm5-tablet|orangepi5b|orangepi5plus|orangepi5pro|orangepi5max|orangepitab|orangepi900) + orangepi5|orangepicm5|orangepicm5-tablet|orangepi5b|orangepi5plus|orangepi5pro|orangepi5max|orangepi5ultra|orangepitab|orangepi900) [[ $BOARD =~ orangepi5|orangepi5b ]] && echo host > /sys/kernel/debug/usb/fc000000.usb/mode if [[ $BOARD =~ orangepicm5 ]]; then while true; do @@ -204,7 +204,7 @@ prepare_board() { brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \ --baudrate 1500000 --patchram /lib/firmware/BCM4345C0.hcd /dev/ttyS9 & - elif [[ $BOARD =~ orangepi5max ]]; then + elif [[ $BOARD =~ orangepi5max|orangepi5ultra ]]; then rfkill unblock all brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \ diff --git a/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh b/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh index 3566db3..7325e60 100755 --- a/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh +++ b/external/packages/bsp/orangepi5plus/usr/bin/test_hdmiin.sh @@ -7,6 +7,8 @@ function onCtrlC () { exit 0 } +source /etc/orangepi-release + device_id=$(v4l2-ctl --list-devices | grep -A1 hdmirx | grep -v hdmirx | awk -F ' ' '{print $NF}') v4l2-ctl -d $device_id --set-dv-bt-timings query 2>&1 > /dev/null width=$(v4l2-ctl -d $device_id --get-dv-timings | grep "Active width" |awk -F ' ' '{print $NF}') @@ -29,10 +31,16 @@ else fi -gst-launch-1.0 alsasrc device=hw:${hdmiin_card},0 ! audioconvert ! audioresample ! queue \ - ! tee name=t ! queue ! alsasink device="hw:${hdmi0_card},0" \ - t. ! queue ! alsasink device="hw:${hdmi1_card},0" \ - t. ! queue ! alsasink device="hw:${es8388_card},0" & +if [[ ${BOARD} == orangepi5ultra ]]; then + gst-launch-1.0 alsasrc device=hw:${hdmiin_card},0 ! audioconvert ! audioresample ! queue \ + ! tee name=t ! queue ! alsasink device="hw:${hdmi1_card},0" \ + t. ! queue ! alsasink device="hw:${es8388_card},0" & +else + gst-launch-1.0 alsasrc device=hw:${hdmiin_card},0 ! audioconvert ! audioresample ! queue \ + ! tee name=t ! queue ! alsasink device="hw:${hdmi0_card},0" \ + t. ! queue ! alsasink device="hw:${hdmi1_card},0" \ + t. ! queue ! alsasink device="hw:${es8388_card},0" & +fi while true do diff --git a/external/packages/bsp/rk3588/usr/local/bin/test_record.sh b/external/packages/bsp/rk3588/usr/local/bin/test_record.sh index f943068..68645ae 100755 --- a/external/packages/bsp/rk3588/usr/local/bin/test_record.sh +++ b/external/packages/bsp/rk3588/usr/local/bin/test_record.sh @@ -11,6 +11,9 @@ source /etc/orangepi-release card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2) hdmi0_card=$(aplay -l | grep "hdmi0" | cut -d ':' -f 1 | cut -d ' ' -f 2) +if [[ ${BOARD} == orangepi5ultra ]]; then + hdmi1_card=$(aplay -l | grep "hdmi1" | cut -d ':' -f 1 | cut -d ' ' -f 2) +fi if [[ $type == "main" ]]; then @@ -53,4 +56,8 @@ arecord -D hw:${card},0 -d 5 -f cd -t wav /tmp/test.wav echo "Start playing" aplay /tmp/test.wav -D hw:${card},0 -aplay /tmp/test.wav -D hw:${hdmi0_card},0 +if [[ ${BOARD} == orangepi5ultra ]]; then + aplay /tmp/test.wav -D hw:${hdmi1_card},0 +else + aplay /tmp/test.wav -D hw:${hdmi0_card},0 +fi diff --git a/scripts/main.sh b/scripts/main.sh index 7391e78..3b53c5e 100755 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -241,6 +241,7 @@ if [[ -z $BOARD ]]; then #options+=("orangepi900" "Rockchip RK3588 octa core 4-16GB RAM 2.5GBE USB3 USB-C WiFi/BT NVMe") options+=("orangepi5pro" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 WiFi/BT NVMe eMMC") options+=("orangepi5max" "Rockchip RK3588 octa core 4-16GB RAM 2.5GBE USB3 WiFi/BT NVMe eMMC") + options+=("orangepi5ultra" "Rockchip RK3588 octa core 4-16GB RAM 2.5GBE USB3 WiFi/BT NVMe eMMC") options+=("orangepi5plus" "Rockchip RK3588 octa core 4-32GB RAM 2.5GBE USB3 USB-C WiFi/BT NVMe eMMC") options+=("orangepicm4" "Rockchip RK3566 quad core 2-8GB RAM GBE eMMC USB3 NvMe WiFi/BT") options+=("orangepi3b" "Rockchip RK3566 quad core 2-8GB RAM GBE eMMC USB3 NvMe WiFi/BT")