Support Orange Pi 5 Ultra

This commit is contained in:
leeboby 2024-07-19 10:47:52 +08:00
parent b4268718f0
commit 50eeb374fe
7 changed files with 49 additions and 11 deletions

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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 \

View File

@ -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
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

View File

@ -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
if [[ ${BOARD} == orangepi5ultra ]]; then
aplay /tmp/test.wav -D hw:${hdmi1_card},0
else
aplay /tmp/test.wav -D hw:${hdmi0_card},0
fi

View File

@ -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")