Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/next/external/config/sources/families/include/rockchip64_common.inc
Views: 3960
source "${BASH_SOURCE%/*}/rk3399_gpu_vpu.inc" source "${BASH_SOURCE%/*}/rk35xx_gpu_vpu.inc" source "${BASH_SOURCE%/*}/rk356x_gpu_vpu.inc" enable_extension "rkbin-tools" ARCH=arm64 KERNEL_IMAGE_TYPE=Image OFFSET=30 BOOTSCRIPT='boot-rockchip64.cmd:boot.cmd' BOOTENV_FILE='rockchip.txt' UBOOT_TARGET_MAP=";;idbloader.bin uboot.img trust.bin" BOOTDELAY=0 OVERLAY_PREFIX='rockchip' SERIALCON=${SERIALCON:=$([[ $BRANCH == "legacy" || $BOARDFAMILY == "rockchip-rk3588" && $BRANCH == "current" ]] && echo "ttyFIQ0:1500000" || echo "ttyS2:1500000")} GOVERNOR="ondemand" BOOTBRANCH="branch:v2020.10-rockchip64" PACKAGE_LIST_FAMILY="ethtool can-utils" if [[ $RELEASE == "jammy" ]]; then PACKAGE_LIST_DESKTOP_FAMILY="fcitx5 fonts-wqy-zenhei xfce4-volumed" else PACKAGE_LIST_DESKTOP_FAMILY="fcitx fonts-wqy-zenhei" fi [[ $BRANCH != "next" ]] && PACKAGE_LIST_FAMILY_REMOVE="mpv" RKBIN_DIR="$EXTER/cache/sources/rkbin-tools" if [ "$(uname -m)" = "aarch64" ]; then case "$(lsb_release -sc)" in "bookworm"|"bullseye"|"focal"|"jammy") PKG_PREFIX="qemu-x86_64-static -L /usr/x86_64-linux-gnu " ;; *) PKG_PREFIX="qemu-x86_64 -L /usr/x86_64-linux-gnu " ;; esac else PKG_PREFIX="" fi if [[ $BOOTCONFIG =~ *3399*|*3566* ]]; then CPUMIN=${CPUMIN:="408000"} CPUMAX=${CPUMAX:="1800000"} else # rk3328 CPUMIN=${CPUMIN:="408000"} CPUMAX=${CPUMAX:="1296000"} fi if [[ $BOARD =~ orangepir1plus|orangepir1plus-lts ]]; then BOOT_USE_BLOBS=yes BOOT_SOC=rk3328 DDR_BLOB='rk33/rk3328_ddr_333MHz_v1.16.bin' MINILOADER_BLOB='rk33/rk322xh_miniloader_v2.50.bin' BL31_BLOB='rk33/rk322xh_bl31_v1.44.elf' elif [[ $BOARDFAMILY == "rockchip-rk3588" ]]; then BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}" if [[ "${BOARD}x" =~ orangepi5maxx|orangepi5prox|orangepi5plusx|orangepiaimax|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 DDR_BLOB="${DDR_BLOB:=rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin}" BL31_BLOB='rk35/rk3588_bl31_v1.38.elf' fi elif [[ $BOARD =~ orangepicm4|orangepi3b ]]; then BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}" BOOT_SOC=rk3568 DDR_BLOB="${DDR_BLOB:=rk35/rk3566_ddr_1056MHz_v1.10.bin}" BL31_BLOB='rk35/rk3568_bl31_v1.28.elf' else ATFPATCHDIR='atf-rk3399' fi prepare_boot_configuration() { if [[ $BOOT_USE_MAINLINE_ATF == yes ]]; then UBOOT_TARGET_MAP="BL31=bl31.bin idbloader.img u-boot.itb;;idbloader.img u-boot.itb" ATFSOURCE='https://github.com/ARM-software/arm-trusted-firmware' ATF_COMPILER='aarch64-linux-gnu-' ATFDIR='arm-trusted-firmware' ATFBRANCH='tag:v2.2' ATF_USE_GCC='> 6.3' ATF_TARGET_MAP="M0_CROSS_COMPILE=arm-linux-gnueabi- PLAT=$BOOT_SOC bl31;;build/$BOOT_SOC/release/bl31/bl31.elf:bl31.bin" ATF_TOOLCHAIN2="arm-linux-gnueabi-:> 5.0" elif [[ $BOOT_USE_TPL_SPL_BLOB == yes ]]; then UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB idbloader.img u-boot.itb;;idbloader.img u-boot.itb" ATFSOURCE='' ATF_COMPILE='no' elif [[ $BOOT_SCENARIO == "spl-blobs" ]]; then UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB spl/u-boot-spl.bin u-boot.dtb u-boot.itb;;idbloader.img u-boot.itb" ATFSOURCE='' ATF_COMPILE='no' elif [[ $BOOT_USE_BLOBS == yes ]]; then UBOOT_TARGET_MAP="u-boot-dtb.bin;;idbloader.bin uboot.img trust.bin" ATFSOURCE='' ATF_COMPILE='no' fi if [[ $BOOT_SUPPORT_SPI == yes ]]; then UBOOT_TARGET_MAP="${UBOOT_TARGET_MAP} rkspi_loader.img" fi } uboot_custom_postprocess() { if [[ $BOOT_SUPPORT_SPI == yes ]]; then if [[ $BOARDFAMILY == "rockchip-rk3588" ]]; then tools/mkimage -n rk3588 -T rksd -d $RKBIN_DIR/$DDR_BLOB:spl/u-boot-spl.bin idbloader.img dd if=/dev/zero of=rkspi_loader.img bs=1M count=0 seek=4 /sbin/parted -s rkspi_loader.img mklabel gpt /sbin/parted -s rkspi_loader.img unit s mkpart idbloader 64 1023 /sbin/parted -s rkspi_loader.img unit s mkpart uboot 1024 7167 #/sbin/parted -s rkspi_loader.img unit s mkpart vnvm 7168 7679 #/sbin/parted -s rkspi_loader.img unit s mkpart reserved_space 7680 8063 #/sbin/parted -s rkspi_loader.img unit s mkpart reserved1 8064 8127 #/sbin/parted -s rkspi_loader.img unit s mkpart uboot_env 8128 8191 #/sbin/parted -s rkspi_loader.img unit s mkpart reserved2 8192 16383 dd if=idbloader.img of=rkspi_loader.img seek=64 conv=notrunc dd if=u-boot.itb of=rkspi_loader.img seek=1024 conv=notrunc #dd if=$EXTER/packages/blobs/splash/logo.bmp of=rkspi_loader.img seek=8192 conv=notrunc elif [[ $BOARDFAMILY == "rockchip-rk356x" ]]; then tools/mkimage -n rk3568 -T rksd -d $RKBIN_DIR/$DDR_BLOB:spl/u-boot-spl.bin idbloader.img dd if=/dev/zero of=rkspi_loader.img bs=1M count=0 seek=4 /sbin/parted -s rkspi_loader.img mklabel gpt /sbin/parted -s rkspi_loader.img unit s mkpart idbloader 64 1023 /sbin/parted -s rkspi_loader.img unit s mkpart uboot 1024 7167 dd if=idbloader.img of=rkspi_loader.img seek=64 conv=notrunc dd if=u-boot.itb of=rkspi_loader.img seek=1024 conv=notrunc fi fi if [[ $BOOT_USE_MAINLINE_ATF == yes || $BOOT_USE_TPL_SPL_BLOB == yes ]]; then if [[ $BOOT_SUPPORT_SPI == yes ]]; then tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin rkspi_tpl_spl.img dd if=/dev/zero of=rkspi_loader.img count=8128 status=none dd if=rkspi_tpl_spl.img of=rkspi_loader.img conv=notrunc status=none dd if=u-boot.itb of=rkspi_loader.img seek=768 conv=notrunc status=none fi elif [[ $BOOT_USE_BLOBS == yes ]]; then local tempfile=$(mktemp) tools/mkimage -n $BOOT_SOC -T rksd -d $RKBIN_DIR/$DDR_BLOB idbloader.bin cat $RKBIN_DIR/$MINILOADER_BLOB >> idbloader.bin loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000 trust_merger --replace bl31.elf $RKBIN_DIR/$BL31_BLOB trust.ini elif [[ $BOOT_SCENARIO == "spl-blobs" || $BOOT_SCENARIO == "tpl-blob-atf-mainline" ]]; then if [[ $BOARD =~ orangepicm4|orangepi3b ]]; then tools/mkimage -n rk3568 -T rksd -d $RKBIN_DIR/$DDR_BLOB:spl/u-boot-spl.bin idbloader.img elif [[ $BOARD =~ orangepi4-lts|orangepi800 ]]; then tools/mkimage -n rk3399 -T rksd -d $RKBIN_DIR/$DDR_BLOB:spl/u-boot-spl.bin idbloader.img fi : else echo "[uboot_custom_postprocess]: Unsupported u-boot processing configuration!" exit 1 fi if [[ ${MERGE_UBOOT} ]]; then display_alert "Merge u-boot" "u-boot-${BOARD}-merged.bin" "info" dd if=/dev/zero of=u-boot-${BOARD}-merged.bin bs=1M count=32 > /dev/null 2>&1 dd if=idbloader.bin of=u-boot-${BOARD}-merged.bin seek=64 conv=notrunc status=none dd if=uboot.img of=u-boot-${BOARD}-merged.bin seek=16384 conv=notrunc status=none dd if=trust.bin of=u-boot-${BOARD}-merged.bin seek=24576 conv=notrunc status=none mv u-boot-${BOARD}-merged.bin ${DEB_STORAGE}/u-boot/ fi } write_uboot_platform() { if [[ -f $1/rksd_loader.img ]]; then # legacy rk3399 loader dd if=$1/rksd_loader.img of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1 elif [[ -f $1/u-boot.itb ]]; then # $BOOT_USE_MAINLINE_ATF == yes || $BOOT_USE_TPL_SPL_BLOB == yes dd if=$1/idbloader.img of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1 dd if=$1/u-boot.itb of=$2 seek=16384 conv=notrunc status=none >/dev/null 2>&1 elif [[ -f $1/uboot.img ]]; then # $BOOT_USE_BLOBS == yes dd if=$1/idbloader.bin of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1 dd if=$1/uboot.img of=$2 seek=16384 conv=notrunc status=none >/dev/null 2>&1 dd if=$1/trust.bin of=$2 seek=24576 conv=notrunc status=none >/dev/null 2>&1 else echo "[write_uboot_platform]: Unsupported u-boot processing configuration!" exit 1 fi } write_uboot_platform_mtd() { if [[ -f $1/rkspi_loader.img ]]; then dd if=$1/rkspi_loader.img of=$2 conv=notrunc status=none >/dev/null 2>&1 else echo "SPI u-boot image not found!" exit 1 fi } setup_write_uboot_platform() { if grep -q "ubootpart" /proc/cmdline; then local tmp=$(cat /proc/cmdline) tmp="${tmp##*ubootpart=}" tmp="${tmp%% *}" [[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2>/dev/null) [[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null) [[ -n $dev ]] && DEVICE="/dev/$dev" fi } atf_custom_postprocess() { # remove bl31.bin which can be 4+GiB in size and thus may fill the tmpfs mount rm -f build/rk322xh/debug/bl31.bin # ATF trust_merger trust.ini } family_tweaks() { # execute specific tweaks function if present [[ $(type -t family_tweaks_s) == function ]] && family_tweaks_s [[ "$BRANCH" =~ legacy ]] && rk3399_gpu_vpu_tweaks [[ "$BRANCH" =~ current && $BOARDFAMILY == "rk3399" ]] && rk35xx_gpu_vpu_tweaks [[ "$BRANCH" =~ legacy|current && $BOARDFAMILY == "rockchip-rk3588" ]] && rk35xx_gpu_vpu_tweaks [[ "$BRANCH" == legacy && $BOARDFAMILY == "rockchip-rk356x" ]] && rk35xx_gpu_vpu_tweaks #if [[ ${BOARD} == orangepi800 && ${SELECTED_CONFIGURATION} == desktop && ${RELEASE} =~ bullseye|bookworm ]]; then # install_deb_chroot "$EXTER/cache/debs/extra/bullseye-desktop/xfce4-zorinmenulite-plugin_1.1.2_arm64.deb" # install_deb_chroot "$EXTER/cache/debs/extra/bullseye-desktop/dockbarx-common_1.0~beta+git20210222-1~ppa1_all.deb" # install_deb_chroot "$EXTER/cache/debs/extra/bullseye-desktop/dockbarx-dockx_1.0~beta+git20210222-1~ppa1_all.deb" # install_deb_chroot "$EXTER/cache/debs/extra/bullseye-desktop/dockbarx_1.0~beta+git20210222-1~ppa1_all.deb" # install_deb_chroot "$EXTER/cache/debs/extra/bullseye-desktop/xfce4-dockbarx-plugin_0.6+git20210221-1~ppa2~20.10_arm64.deb" # install_deb_chroot "$EXTER/cache/debs/extra/bullseye-desktop/dockbarx-theme-zorin_1.1.0_all.deb" # ## Orange Pi Desktop layout switcher # install_deb_chroot "$EXTER/cache/debs/arm64/layout_switcher/layoutswitcher_0.2-0_all.deb" # #install_deb_chroot "$EXTER/cache/debs/arm64/layout_switcher/switcher_1.0-1_arm64.deb" #fi if [[ $BOARD =~ orangepir1plus|orangepir1plus-lts ]]; then # rename USB based network to lan0 mkdir -p $SDCARD/etc/udev/rules.d/ echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="r8152", KERNEL=="eth1", NAME="lan0"' > $SDCARD/etc/udev/rules.d/70-rename-lan.rules # workaround - create old school initial network config since network manager have issues #echo "auto eth0" >> $SDCARD/etc/network/interfaces #echo " iface eth0 inet dhcp" >> $SDCARD/etc/network/interfaces #echo "auto lan0" >> $SDCARD/etc/network/interfaces #echo " iface lan0 inet dhcp" >> $SDCARD/etc/network/interfaces fi if [[ -f $SDCARD/lib/systemd/system/rk3399-bluetooth.service ]]; then # install and enable Bluetooth chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools >/dev/null 2>&1" chroot $SDCARD /bin/bash -c "systemctl --no-reload enable rk3399-bluetooth.service >/dev/null 2>&1" fi if [[ $RELEASE == jammy && $BUILD_DESKTOP == yes && $install_chromium == yes ]]; then chromium_name="chromium-browser_107.0.5304.62-0ubuntu1~ppa1~22.04.1_arm64.deb" chromium_extra_name="chromium-codecs-ffmpeg-extra_107.0.5304.62-0ubuntu1~ppa1~22.04.1_arm64.deb" chromium_browser_l10n_name="chromium-browser-l10n_107.0.5304.62-0ubuntu1~ppa1~22.04.1_all.deb" chromium_url="http://ppa.launchpadcontent.net/saiarcot895/chromium-beta/ubuntu/pool/main/c/chromium-browser" chromium=${EXTER}/cache/debs/arm64/${chromium_name} chromium_extra=${EXTER}/cache/debs/arm64/${chromium_extra_name} chromium_browser_l10n=${EXTER}/cache/debs/arm64/${chromium_browser_l10n_name} if [[ ! -f $chromium_extra ]]; then wget -P ${EXTER}/cache/debs/arm64 ${chromium_url}/${chromium_name} wget -P ${EXTER}/cache/debs/arm64 ${chromium_url}/${chromium_extra_name} wget -P ${EXTER}/cache/debs/arm64 ${chromium_url}/${chromium_browser_l10n_name} fi install_deb_chroot $chromium_extra install_deb_chroot $chromium install_deb_chroot $chromium_browser_l10n fi if [[ $RELEASE == jammy && $BUILD_DESKTOP == yes && $install_firefox == yes ]]; then firefox_name="firefox-esr_102.6.0esr+build1-0ubuntu0.22.04.1_arm64.deb" firefox_url="https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu/pool/main/f/firefox-esr/" firefox=${EXTER}/cache/debs/arm64/${firefox_name} if [[ ! -f $firefox ]]; then wget -P ${EXTER}/cache/debs/arm64 ${firefox_url}/${firefox_name} fi install_deb_chroot $firefox fi rm $SDCARD/root/*.deb >/dev/null 2>&1 } family_tweaks_bsp() { if [[ $BOOTCONFIG == *3328* ]] && [[ $BRANCH != legacy ]]; then mkdir -p "$destination"/etc/X11/xorg.conf.d cat <<-EOF > "$destination"/etc/X11/xorg.conf.d/02-driver.conf # set fbdev as default driver. Section "Device" Identifier "NOGPU" Driver "fbdev" EndSection EOF fi # Graphics and media mkdir -p $destination/etc/udev/rules.d cp $EXTER/packages/bsp/rk3399/50-mali.rules $destination/etc/udev/rules.d/ cp $EXTER/packages/bsp/rk3399/50-rk3399-vpu.rules $destination/etc/udev/rules.d/ mkdir -p $destination/etc/sysfs.d cp $EXTER/packages/bsp/rk3399/20-gpu-governor.conf $destination/etc/sysfs.d/ }