Path: blob/next/external/packages/raspi/orangepi/common/files/orangepi-hardware-optimization
13928 views
#!/bin/bash source /etc/orangepi-release prepare_board() { case ${BOARD} in orangepi5|orangepi5b|orangepi5plus|orangepiaimax|orangepitab|orangepi900) [[ $BOARD =~ orangepi5|orangepi5b ]] && echo host > /sys/kernel/debug/usb/fc000000.usb/mode if [[ -c /dev/mpp_service ]]; then chmod 0666 /dev/mpp_service { echo "type=dec" echo "codecs=VP8:VP9:H.264:H.265:AV1" echo "max-width=7680" echo "max-height=4320" } > /dev/video-dec0 # Create dummy video node for chromium V4L2 VDA/VEA with rkmpp plugin echo enc > /dev/video-enc0 chmod 0660 /dev/video-* chown root:video /dev/video-* fi bt_status=$(cat /proc/device-tree/wireless-bluetooth/status) wifi_chip=$(cat /proc/device-tree/wireless-wlan/wifi_chip_type) if [[ ${wifi_chip} == "ap6275p" && ${bt_status} == "okay" ]]; then rfkill unblock all brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \ --baudrate 1500000 --patchram /lib/firmware/ap6275p/BCM4362A2.hcd /dev/ttyS9 & fi ;; orangepicm4|orangepi3b) echo host > /sys/devices/platform/fe8a0000.usb2-phy/otg_mode if [[ -c /dev/mpp_service ]]; then chmod 666 /dev/mpp_service # Create dummy video node for chromium V4L2 VDA/VEA with rkmpp plugin echo dec > /dev/video-dec0 echo enc > /dev/video-enc0 chmod 660 /dev/video-* chown root.video /dev/video-* fi for p in $(modetest|grep "^Planes:" -A 9999|grep -o "^[0-9]*"); do modetest -M rockchip -aw $p:ASYNC_COMMIT:1 &>/dev/null done amixer -c 0 cset name='Playback Path' HP > /dev/null 2>&1 amixer -c 0 cset name='Capture MIC Path' 'Main Mic' > /dev/null 2>&1 if [[ $BOARD == orangepi3b ]]; then rfkill unblock all /usr/bin/hciattach_opi -n -s 1500000 /dev/ttyBT0 sprd & elif [[ $BOARD == orangepicm4 ]]; then rfkill unblock all brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \ --baudrate 1500000 --patchram /lib/firmware/BCM4345C0.hcd /dev/ttyS1 & fi ;; orangepizero2|orangepizero2-lts|orangepizero2-b|orangepizero3|orangepir1b|orangepizero2w) kv=$(uname -r) if [[ $BOARD == orangepizero2w ]]; then if [[ ${DISTRIBUTION_CODENAME} == "bookworm" ]]; then interface_100m="end0" else interface_100m="eth0" fi echo netdev > /sys/class/leds/100m_act/trigger echo "${interface_100m}" > /sys/class/leds/100m_act/device_name echo 1 > /sys/class/leds/100m_act/tx echo 1 > /sys/class/leds/100m_act/rx echo netdev > /sys/class/leds/100m_link/trigger echo ${interface_100m} > /sys/class/leds/100m_link/device_name echo 1 > /sys/class/leds/100m_link/link fi if [[ $BOARD == orangepir1b ]]; then #for 100m interface interface_100m="eth1" echo netdev > /sys/class/leds/100m_act/trigger echo "${interface_100m}" > /sys/class/leds/100m_act/device_name echo 1 > /sys/class/leds/100m_act/tx echo 1 > /sys/class/leds/100m_act/rx echo netdev > /sys/class/leds/100m_link/trigger echo ${interface_100m} > /sys/class/leds/100m_link/device_name echo 1 > /sys/class/leds/100m_link/link echo netdev > /sys/class/leds/lan_led/trigger echo ${interface_100m} > /sys/class/leds/lan_led/device_name echo 1 > /sys/class/leds/lan_led/link echo 1 > /sys/class/leds/lan_led/tx echo 1 > /sys/class/leds/lan_led/rx #for 1000m interface interface_1000m="eth0" echo netdev > /sys/class/leds/wan_led/trigger echo ${interface_1000m} > /sys/class/leds/wan_led/device_name echo 1 > /sys/class/leds/wan_led/link echo 1 > /sys/class/leds/wan_led/tx echo 1 > /sys/class/leds/wan_led/rx fi if [[ ${kv} == 4.9* ]]; then aplay /usr/share/sounds/alsa/audio.wav -D hw:2,0 > /dev/null 2>&1 fi rfkill unblock all /usr/bin/hciattach_opi -n -s 1500000 /dev/ttyBT0 sprd & ;; esac } case $1 in *start*) # hardware preparation prepare_board & ;; esac