Support Orange Pi 5 Ultra
This commit is contained in:
parent
b4268718f0
commit
50eeb374fe
|
|
@ -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"
|
||||||
|
|
@ -62,7 +62,8 @@ elif [[ $BOARDFAMILY == "rockchip-rk3588" ]]; then
|
||||||
|
|
||||||
BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}"
|
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}"
|
DDR_BLOB="${DDR_BLOB:=rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin}"
|
||||||
BL31_BLOB='rk35/rk3588_bl31_v1.45_20240422.elf'
|
BL31_BLOB='rk35/rk3588_bl31_v1.45_20240422.elf'
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ case $BRANCH in
|
||||||
KERNELPATCHDIR='rockchip-rk3588-legacy'
|
KERNELPATCHDIR='rockchip-rk3588-legacy'
|
||||||
LINUXCONFIG="linux-rockchip-rk3588-legacy"
|
LINUXCONFIG="linux-rockchip-rk3588-legacy"
|
||||||
[[ ${BOARD} == orangepi5pro ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5pro"
|
[[ ${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"
|
[[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opicm5-tablet"
|
||||||
|
|
||||||
if [[ "${build_rt_image}" =~ yes ]]; then
|
if [[ "${build_rt_image}" =~ yes ]]; then
|
||||||
|
|
@ -39,7 +39,7 @@ case $BRANCH in
|
||||||
KERNELPATCHDIR='rockchip-rk3588-current'
|
KERNELPATCHDIR='rockchip-rk3588-current'
|
||||||
LINUXCONFIG="linux-rockchip-rk3588-current"
|
LINUXCONFIG="linux-rockchip-rk3588-current"
|
||||||
[[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-current-opicm5-tablet"
|
[[ ${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'
|
KERNEL_USE_GCC='> 10.0'
|
||||||
esac
|
esac
|
||||||
|
|
@ -113,7 +113,7 @@ family_tweaks_s() {
|
||||||
rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
|
rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${BOARD} =~ orangepi5plus|orangepi5max|orangepi900 ]]; then
|
if [[ ${BOARD} =~ orangepi5plus|orangepi5max|orangepi900|orangepi5ultra ]]; then
|
||||||
|
|
||||||
if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then
|
if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then
|
||||||
rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/orangepi5plus/* ${SDCARD}/
|
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-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-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
|
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
|
fi
|
||||||
|
|
||||||
# Realtek 8811CU/8821CU usb modeswitch support
|
# Realtek 8811CU/8821CU usb modeswitch support
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ prepare_board() {
|
||||||
rockpro64|renegade-elite|pinebook-pro|station-p1)
|
rockpro64|renegade-elite|pinebook-pro|station-p1)
|
||||||
BOARDFAMILY=rk3399
|
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
|
[[ $BOARD =~ orangepi5|orangepi5b ]] && echo host > /sys/kernel/debug/usb/fc000000.usb/mode
|
||||||
if [[ $BOARD =~ orangepicm5 ]]; then
|
if [[ $BOARD =~ orangepicm5 ]]; then
|
||||||
while true; do
|
while true; do
|
||||||
|
|
@ -204,7 +204,7 @@ prepare_board() {
|
||||||
brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
|
brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
|
||||||
--baudrate 1500000 --patchram /lib/firmware/BCM4345C0.hcd /dev/ttyS9 &
|
--baudrate 1500000 --patchram /lib/firmware/BCM4345C0.hcd /dev/ttyS9 &
|
||||||
|
|
||||||
elif [[ $BOARD =~ orangepi5max ]]; then
|
elif [[ $BOARD =~ orangepi5max|orangepi5ultra ]]; then
|
||||||
|
|
||||||
rfkill unblock all
|
rfkill unblock all
|
||||||
brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
|
brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ function onCtrlC () {
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
source /etc/orangepi-release
|
||||||
|
|
||||||
device_id=$(v4l2-ctl --list-devices | grep -A1 hdmirx | grep -v hdmirx | awk -F ' ' '{print $NF}')
|
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
|
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}')
|
width=$(v4l2-ctl -d $device_id --get-dv-timings | grep "Active width" |awk -F ' ' '{print $NF}')
|
||||||
|
|
@ -29,10 +31,16 @@ else
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gst-launch-1.0 alsasrc device=hw:${hdmiin_card},0 ! audioconvert ! audioresample ! queue \
|
if [[ ${BOARD} == orangepi5ultra ]]; then
|
||||||
! tee name=t ! queue ! alsasink device="hw:${hdmi0_card},0" \
|
gst-launch-1.0 alsasrc device=hw:${hdmiin_card},0 ! audioconvert ! audioresample ! queue \
|
||||||
t. ! queue ! alsasink device="hw:${hdmi1_card},0" \
|
! tee name=t ! queue ! alsasink device="hw:${hdmi1_card},0" \
|
||||||
t. ! queue ! alsasink device="hw:${es8388_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
|
while true
|
||||||
do
|
do
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,9 @@ source /etc/orangepi-release
|
||||||
|
|
||||||
card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
|
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)
|
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
|
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"
|
echo "Start playing"
|
||||||
aplay /tmp/test.wav -D hw:${card},0
|
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
|
||||||
|
|
|
||||||
|
|
@ -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+=("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+=("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+=("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+=("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+=("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")
|
options+=("orangepi3b" "Rockchip RK3566 quad core 2-8GB RAM GBE eMMC USB3 NvMe WiFi/BT")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue