rockchip-rk3588.conf 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. source "${BASH_SOURCE%/*}/include/rockchip64_common.inc"
  2. OVERLAY_PREFIX='rk3588'
  3. BOOTDELAY=0
  4. CPUMIN=408000
  5. CPUMAX=2400000
  6. case $BRANCH in
  7. legacy)
  8. BOOTBRANCH='branch:v2017.09-rk3588'
  9. UBOOT_COMPILER="aarch64-linux-gnu-"
  10. UBOOT_USE_GCC='< 8.0'
  11. KERNELBRANCH='branch:orange-pi-5.10-rk35xx'
  12. KERNELPATCHDIR='rockchip-rk3588-legacy'
  13. LINUXCONFIG="linux-rockchip-rk3588-legacy"
  14. [[ ${BOARD} == orangepi5pro ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5pro"
  15. [[ ${BOARD} =~ orangepi5max|orangepi5ultra ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5max"
  16. [[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opicm5-tablet"
  17. if [[ "${build_rt_image}" =~ yes ]]; then
  18. KERNELBRANCH='branch:orange-pi-5.10-rk35xx-rt'
  19. LINUXCONFIG="linux-rockchip-rk3588-legacy-rt"
  20. fi
  21. KERNEL_USE_GCC='> 10.0'
  22. ;;
  23. current)
  24. BOOTBRANCH='branch:v2017.09-rk3588'
  25. UBOOT_COMPILER="aarch64-linux-gnu-"
  26. UBOOT_USE_GCC='< 8.0'
  27. KERNELBRANCH='branch:orange-pi-6.1-rk35xx'
  28. KERNELPATCHDIR='rockchip-rk3588-current'
  29. LINUXCONFIG="linux-rockchip-rk3588-current"
  30. [[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-current-opicm5-tablet"
  31. [[ ${BOARD} =~ orangepi5pro|orangepi5max|orangepi5ultra ]] && LINUXCONFIG="linux-rockchip-rk3588-current-opi5pro"
  32. KERNEL_USE_GCC='> 10.0'
  33. esac
  34. prepare_boot_configuration
  35. family_tweaks_bsp() {
  36. install -m 755 $EXTER/packages/bsp/adb/adbd-${ARCH} ${destination}/usr/bin/adbd
  37. :
  38. }
  39. install_balenaEtcher(){
  40. if [[ $BUILD_DESKTOP == yes && $install_balena_etcher == yes ]]; then
  41. balena_etcher_deb=balena-etcher-electron_1.7.9+5945ab1f_arm64.deb
  42. balena_etcher_url="https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/${balena_etcher_deb}"
  43. balena_etcher=${EXTER}/cache/debs/arm64/${balena_etcher_deb}
  44. if [[ ! -f ${balena_etcher} ]]; then
  45. wget -P ${EXTER}/cache/debs/arm64 ${balena_etcher_url}
  46. fi
  47. install_deb_chroot ${balena_etcher}
  48. fi
  49. }
  50. family_tweaks_s() {
  51. if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then
  52. rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
  53. cat > "${SDCARD}"/etc/profile.d/kde_env.sh <<- __EOF__
  54. #!/bin/bash
  55. export KWIN_COMPOSE=X
  56. __EOF__
  57. cat > "${SDCARD}"/home/orangepi/.config/kwalletrc <<- __EOF__
  58. [Wallet]
  59. Enabled=false
  60. __EOF__
  61. if [[ ${RELEASE} == bullseye ]]; then
  62. cat > "${SDCARD}"/home/orangepi/.config/kwinrc <<- __EOF__
  63. [Compositing]
  64. Backend=XRender
  65. OpenGLIsUnsafe=false
  66. __EOF__
  67. cat <<-EOF >>"${SDCARD}"/home/orangepi/.config/kglobalshortcutsrc
  68. [org.kde.konsole.desktop]
  69. NewTab=,,Open a New Tab
  70. NewWindow=,,Open a New Window
  71. _k_friendly_name=Konsole
  72. _launch=Ctrl+Alt+T,,Konsole
  73. EOF
  74. cat <<-EOF >>"${SDCARD}"/home/orangepi/.config/plasma-org.kde.plasma.desktop-appletsrc
  75. [Containments][2][Applets][5][Configuration][General]
  76. launchers=applications:systemsettings.desktop,applications:org.kde.discover.desktop,preferred://filemanager,preferred://browser,applications:org.kde.konsole.desktop
  77. [Containments][2][Applets][5][Configuration][General]
  78. launchers=applications:systemsettings.desktop,applications:org.kde.discover.desktop,preferred://filemanager,preferred://browser,applications:org.kde.konsole.desktop,applications:chromium-browser.desktop
  79. EOF
  80. fi
  81. else
  82. rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
  83. fi
  84. if [[ ${BOARD} =~ orangepi5plus|orangepiaimax|orangepi5max|orangepi900|orangepi5ultra ]]; then
  85. if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then
  86. rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/orangepi5plus/* ${SDCARD}/
  87. else
  88. rsync -a --chown=root:root "${EXTER}"/packages/bsp/orangepi5plus/* ${SDCARD}/
  89. fi
  90. cp $EXTER/cache/sources/linuxpg "${SDCARD}"/opt/ -rfa
  91. fi
  92. if [[ ${BOARD} =~ orangepicm5 ]]; then
  93. cp $EXTER/cache/sources/linuxpg "${SDCARD}"/opt/ -rfa
  94. fi
  95. [[ ${RELEASE} == jammy ]] && rm ${SDCARD}/etc/profile.d/orangepi-ssh-title.sh # for adbd
  96. if [[ -f "${SDCARD}"/etc/profile.d/im-config_wayland.sh && ${DESKTOP_ENVIRONMENT} =~ xfce|kde-plasma ]]; then
  97. chroot $SDCARD /bin/bash -c "rm /etc/profile.d/im-config_wayland.sh" # for adbd
  98. fi
  99. # enable additional services
  100. chroot "${SDCARD}" /bin/bash -c "systemctl --no-reload enable usbdevice.service >/dev/null 2>&1"
  101. #[[ $BOARD == orangepi5plus ]] && chroot "${SDCARD}" /bin/bash -c "systemctl --no-reload enable pwm-fan.service >/dev/null 2>&1"
  102. sed "s/^SIZE=.*/SIZE=200M/" -i "${SDCARD}"/etc/default/orangepi-ramlog
  103. chroot "${SDCARD}" /bin/bash -c "ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime"
  104. chroot "${SDCARD}" /bin/bash -c "dpkg-reconfigure -f noninteractive tzdata" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1
  105. chroot $SDCARD /bin/bash -c "apt-get -y -qq install usb-modeswitch tree dnsmasq v4l-utils swig python3-dev python3-setuptools bluez libncurses-dev" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1
  106. [[ ${BOARD} =~ orangepiaimax ]] && install_310b-npu-driver
  107. install_wiringop
  108. install_balenaEtcher
  109. # Board audio specific changes
  110. if [[ ${BOARD}x =~ orangepi5x|orangepi5bx|orangepicm5-tabletx|orangepi5prox ]]; then
  111. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  112. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  113. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  114. elif [[ ${BOARD}x =~ orangepicm5x ]]; then
  115. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  116. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  117. elif [[ "${BOARD}x" =~ orangepi5plusx|orangepiaimaxx|orangepi900x ]]; then
  118. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  119. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  120. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-In Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  121. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  122. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  123. elif [[ "${BOARD}x" == orangepi5maxx ]]; then
  124. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  125. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  126. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  127. elif [[ "${BOARD}x" == orangepi5ultrax ]]; then
  128. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  129. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-In Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  130. echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
  131. fi
  132. # Realtek 8811CU/8821CU usb modeswitch support
  133. if [[ -f ${SDCARD}/lib/udev/rules.d/40-usb_modeswitch.rules ]]; then
  134. cp ${SDCARD}/lib/udev/rules.d/40-usb_modeswitch.rules ${SDCARD}/etc/udev/rules.d/40-usb_modeswitch.rules
  135. sed '/LABEL="modeswitch_rules_end"/d' -i ${SDCARD}/etc/udev/rules.d/40-usb_modeswitch.rules
  136. cat >> ${SDCARD}/etc/udev/rules.d/40-usb_modeswitch.rules <<-EOF
  137. # Realtek 8821CU Wifi AC USB
  138. ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b"
  139. LABEL="modeswitch_rules_end"
  140. EOF
  141. fi
  142. if [[ "${BOARD}x" == orangepi5ultrax ]]; then
  143. cp $EXTER/cache/sources/orangepi-firmware-git/nvram_ap6611s.txt-${BOARD} ${SDCARD}/lib/firmware/nvram_ap6611s.txt
  144. elif [[ "${BOARD}x" == orangepicm5-tabletx ]]; then
  145. cp $EXTER/cache/sources/orangepi-firmware-git/nvram_ap6256.txt-${BOARD} ${SDCARD}/lib/firmware/nvram_ap6256.txt
  146. fi
  147. }