From 22c084dd4479ece9c178d0e731fb628d0dc9f6f1 Mon Sep 17 00:00:00 2001 From: orangepi-xunlong <258384131@qq.com> Date: Fri, 9 Dec 2022 14:16:22 +0800 Subject: [PATCH] Update for Orange Pi 5 ubuntu22.04 v1.0.2 --- .gitignore | 4 +- external/cache/debs/arm64/.gitignore | 6 +- .../gnome/config_base/packages.uninstall | 1 + .../linux-rockchip-rk3588-legacy.config | 5 +- .../environments/xfce/config_base/packages | 242 ++++++++++++++ .../families/include/rk3588_gpu_vpu.inc | 298 +++++++++++++----- .../families/include/rockchip64_common.inc | 6 +- .../sources/families/rockchip-rk3588.conf | 10 +- .../orangepi/orangepi-hardware-optimization | 10 +- external/packages/bsp/mali_csffw.bin | Bin 0 -> 274432 bytes .../bsp/rk3588/usr/local/bin/set_vnc.sh | 2 + .../bsp/rk3588/usr/local/bin/test_dec_mpv.sh | 8 + .../bsp/rk3588/usr/local/bin/vpu_debug.sh | 2 +- scripts/general.sh | 5 + scripts/main.sh | 4 +- 15 files changed, 494 insertions(+), 109 deletions(-) create mode 100644 external/config/desktop/jammy/environments/gnome/config_base/packages.uninstall create mode 100644 external/config/optional/families/rockchip-rk3588/_config/desktop/jammy/environments/xfce/config_base/packages create mode 100755 external/packages/bsp/mali_csffw.bin create mode 100755 external/packages/bsp/rk3588/usr/local/bin/test_dec_mpv.sh diff --git a/.gitignore b/.gitignore index 5572f28..58f65c9 100644 --- a/.gitignore +++ b/.gitignore @@ -35,11 +35,11 @@ external/cache/sources/evalcache external/cache/sources/oh-my-zsh external/cache/sources/sunxi-tools external/cache/sources/rkbin-tools +external/cache/sources/ffmpeg_kodi* external/cache/sources/orangepi-test -external/cache/sources/rk3588_packages +external/cache/sources/rk3588_packages* external/cache/sources/rk-rootfs-build* external/cache/sources/orangepi-firmware* -external/cache/sources/ffmpeg_kodi* external/cache/sources/rk3399_gst_xserver_libs external/cache/sources/arm-trusted-firmware-sunxi-mainline external/cache/debs/arm64/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb diff --git a/external/cache/debs/arm64/.gitignore b/external/cache/debs/arm64/.gitignore index 7591452..3249e43 100644 --- a/external/cache/debs/arm64/.gitignore +++ b/external/cache/debs/arm64/.gitignore @@ -1,3 +1,3 @@ -chromium-browser_101.0.4951.15-0ubuntu1~ppa1~22.04.1_arm64.deb -chromium-codecs-ffmpeg-extra_101.0.4951.15-0ubuntu1~ppa1~22.04.1_arm64.deb -firefox-esr_102.1.0esr+build1-0ubuntu0.22.04.1_arm64.deb +chromium-browser* +chromium-codecs-ffmpeg-extra* +firefox-esr* diff --git a/external/config/desktop/jammy/environments/gnome/config_base/packages.uninstall b/external/config/desktop/jammy/environments/gnome/config_base/packages.uninstall new file mode 100644 index 0000000..ec0762d --- /dev/null +++ b/external/config/desktop/jammy/environments/gnome/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/external/config/kernel/linux-rockchip-rk3588-legacy.config b/external/config/kernel/linux-rockchip-rk3588-legacy.config index 21e6824..77230c8 100644 --- a/external/config/kernel/linux-rockchip-rk3588-legacy.config +++ b/external/config/kernel/linux-rockchip-rk3588-legacy.config @@ -1727,9 +1727,10 @@ CONFIG_CAN_SOFTING=m # # CAN SPI interfaces # -# CONFIG_CAN_HI311X is not set +CONFIG_CAN_HI311X=m CONFIG_CAN_MCP251X=m -# CONFIG_CAN_MCP251XFD is not set +CONFIG_CAN_MCP251XFD=m +# CONFIG_CAN_MCP251XFD_SANITY is not set # end of CAN SPI interfaces # diff --git a/external/config/optional/families/rockchip-rk3588/_config/desktop/jammy/environments/xfce/config_base/packages b/external/config/optional/families/rockchip-rk3588/_config/desktop/jammy/environments/xfce/config_base/packages new file mode 100644 index 0000000..e99b721 --- /dev/null +++ b/external/config/optional/families/rockchip-rk3588/_config/desktop/jammy/environments/xfce/config_base/packages @@ -0,0 +1,242 @@ +libqt5opengl5 +libass9 +libblas3 +libbs2b0 +libdc1394-25 +libdecor-0-0 +libflite1 +libgfortran5 +liblapack3 +libmysofa1 +libopenal-data +libopenal1 +libpocketsphinx3 +librubberband2 +libsdl2-2.0-0 +libsndio7.0 +libsphinxbase3 +libvidstab1.1 +libzimg2 +libdvdnav4 +libdvdread8 +liblua5.2-0 +libmujs1 +libplacebo192 +libsixel1 +libva-wayland2 +libvulkan1 +libbrotli-dev +libdrm-dev +libdrm-etnaviv1 +libdrm-freedreno1 +libdrm-tegra0 +libfontenc-dev +libfreetype-dev +libfreetype6-dev +libgl-dev +libglx-dev +libpciaccess-dev +libpixman-1-dev +libpng-dev +libpthread-stubs0-dev +libx11-dev +libxau-dev +libxcb1-dev +libxcvt-dev +libxdmcp-dev +libxfont-dev +libxkbfile-dev +mesa-common-dev +x11proto-dev +xorg-sgml-doctools +xtrans-dev +glmark2 +glmark2-es2 +libdw-dev +libelf-dev +liblzma-dev +libunwind-dev +gir1.2-gudev-1.0 +libegl-dev +libgbm-dev +libgles-dev +libgles1 +libgudev-1.0-dev +liborc-0.4-dev +liborc-0.4-dev-bin +libudev-dev +libwayland-bin +libwayland-dev +libx11-xcb-dev +audacity +policykit-1-gnome +libdw-dev +libelf-dev +liblzma-dev +libunwind-dev +gir1.2-gudev-1.0 +libegl-dev +libgbm-dev +libgles-dev +libgles1 +libgudev-1.0-dev +liborc-0.4-dev +liborc-0.4-dev-bin +libudev-dev +libwayland-bin +libwayland-dev +libx11-xcb-dev +gdal-data +ibverbs-providers +libaec0 +libarmadillo10 +libarpack2 +libblosc1 +libcfitsio9 +libcharls2 +libdc1394-dev +libdca0 +libde265-0 +libdeflate-dev +libevent-pthreads-2.1-7 +libexif-dev +libfaad2 +libfabric1 +libfluidsynth3 +libfreeaptx0 +libfreexl1 +libfyba0 +libgdal30 +libgdcm-dev +libgdcm3.0 +libgeos-c1v5 +libgeos3.10.2 +libgeotiff5 +libgif7 +libgl2ps1.4 +libglew2.2 +libgphoto2-dev +libgssdp-1.2-0 +libgstreamer-plugins-good1.0-dev +libgupnp-1.2-1 +libgupnp-igd-1.0-4 +libhdf4-0-alt +libhdf5-103-1 +libhdf5-hl-100 +libheif1 +libhwloc-plugins +libhwloc15 +libibverbs1 +libilmbase-dev +libilmbase25 +libinstpatch-1.0-2 +libjbig-dev +libjpeg-dev +libjpeg-turbo8-dev +libjpeg8-dev +libjsoncpp25 +libkate1 +libkmlbase1 +libkmldom1 +libkmlengine1 +libldacbt-enc2 +liblept5 +libltc11 +libminizip1 +libmjpegutils-2.1-0 +libmodplug1 +libmpcdec6 +libmpeg2encpp-2.1-0 +libmplex2-2.1-0 +libmysqlclient21 +libnetcdf19 +libnice10 +libodbc2 +libodbcinst2 +libogdi4.1 +libopencv-calib3d-dev +libopencv-calib3d4.5d +libopencv-contrib-dev +libopencv-contrib4.5d +libopencv-core-dev +libopencv-core4.5d +libopencv-dev +libopencv-dnn-dev +libopencv-dnn4.5d +libopencv-features2d-dev +libopencv-features2d4.5d +libopencv-flann-dev +libopencv-flann4.5d +libopencv-highgui-dev +libopencv-highgui4.5d +libopencv-imgcodecs-dev +libopencv-imgcodecs4.5d +libopencv-imgproc-dev +libopencv-imgproc4.5d +libopencv-ml-dev +libopencv-ml4.5d +libopencv-objdetect-dev +libopencv-objdetect4.5d +libopencv-photo-dev +libopencv-photo4.5d +libopencv-shape-dev +libopencv-shape4.5d +libopencv-stitching-dev +libopencv-stitching4.5d +libopencv-superres-dev +libopencv-superres4.5d +libopencv-video-dev +libopencv-video4.5d +libopencv-videoio-dev +libopencv-videoio4.5d +libopencv-videostab-dev +libopencv-videostab4.5d +libopencv-viz-dev +libopencv-viz4.5d +libopenexr-dev +libopenexr25 +libopengl0 +libopenh264-6 +libopenmpi3 +libopenni2-0 +libpmix2 +libpq5 +libproj22 +libqhull-r8.0 +libraw1394-dev +librdmacm1 +librttopo1 +libsocket++1 +libspandsp2 +libspatialite7 +libsrtp2-1 +libsuperlu5 +libsz2 +libtbb-dev +libtbb12 +libtbb2 +libtbbmalloc2 +libtesseract4 +libtiff-dev +libtiffxx5 +libtk8.6 +libucx0 +liburiparser1 +libvo-aacenc0 +libvo-amrwbenc0 +libvtk9.1 +libwildmidi2 +libwpe-1.0-1 +libwpebackend-fdo-1.0-1 +libwpewebkit-1.0-3 +libxerces-c3.2 +libxnvctrl0 +libzbar0 +libzxingcore1 +mysql-common +proj-data +timgm6mb-soundfont +unixodbc-common +libgraphene-1.0-0 +tightvncserver +xrdp diff --git a/external/config/sources/families/include/rk3588_gpu_vpu.inc b/external/config/sources/families/include/rk3588_gpu_vpu.inc index 29a28cf..2e0f201 100755 --- a/external/config/sources/families/include/rk3588_gpu_vpu.inc +++ b/external/config/sources/families/include/rk3588_gpu_vpu.inc @@ -8,111 +8,111 @@ rk3588_gpu_vpu_tweaks() #chroot $SDCARD /bin/bash -c "apt-get upgrade -y" # RK GPU VPU - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rkaiq/camera-engine-rkaiq_rk3588_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/rkaiq/camera-engine-rkaiq_rk3588_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rga2/librga2_2.2.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rga2/librga-dev_2.2.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/rga2/librga2_2.2.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/rga2/librga-dev_2.2.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/librockchip-mpp1_1.5.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/librockchip-mpp-dev_1.5.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/librockchip-vpu0_1.5.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/rockchip-mpp-demos_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpp/librockchip-mpp1_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpp/librockchip-mpp-dev_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpp/librockchip-vpu0_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpp/rockchip-mpp-demos_1.5.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/gir1.2-gstreamer-1.0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/gstreamer1.0-tools_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/libgstreamer1.0-0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/libgstreamer1.0-dev_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gstreamer/gir1.2-gstreamer-1.0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gstreamer/gstreamer1.0-tools_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gstreamer/libgstreamer1.0-0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gstreamer/libgstreamer1.0-dev_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-alsa_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-gl_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-x_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/gstreamer1.0-alsa_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/gstreamer1.0-gl_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/gstreamer1.0-x_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gir1.2-gst-plugins-bad-1.0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/libgstreamer-opencv1.0-0_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-opencv_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-plugins-bad_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-plugins-bad-apps_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-wpe_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-dev_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/gir1.2-gst-plugins-bad-1.0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/libgstreamer-opencv1.0-0_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/gstreamer1.0-opencv_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/gstreamer1.0-plugins-bad_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/gstreamer1.0-plugins-bad-apps_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/gstreamer1.0-wpe_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-dev_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-gtk3_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-qt5_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-good1.0/gstreamer1.0-gtk3_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-good1.0/gstreamer1.0-qt5_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-ugly1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-plugins-ugly1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-libav1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/gst-libav1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libdvbv5-0_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/dvb-tools_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/ir-keytable_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libdvbv5-dev_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libdvbv5-doc_1.20.0-2_all.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l-0_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l2rds0_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4lconvert0_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l-dev_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l-rkmpp_1.4.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/v4l-utils_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/qv4l2_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libdvbv5-0_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/dvb-tools_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/ir-keytable_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libdvbv5-dev_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libdvbv5-doc_1.20.0-2_all.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libv4l-0_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libv4l2rds0_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libv4lconvert0_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libv4l-dev_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/libv4l-rkmpp_1.4.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/v4l-utils_1.20.0-2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libv4l/qv4l2_1.20.0-2_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-xorg-core_1.20.11-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-common_1.20.11-1_all.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-xorg-dev_1.20.11-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-xorg-legacy_1.20.11-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/xserver/xserver-xorg-core_1.20.11-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/xserver/xserver-common_1.20.11-1_all.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/xserver/xserver-xorg-dev_1.20.11-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/xserver/xserver-xorg-legacy_1.20.11-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/chromium/chromium-x11_91.0.4472.164_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/chromium/chromium-x11_91.0.4472.164_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libdrm/libkms1_2.4.104-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libdrm/libkms1_2.4.104-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libdrm-cursor/libdrm-cursor_1.4.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libdrm-cursor/libdrm-cursor-dev_1.4.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libdrm-cursor/libdrm-cursor_1.4.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libdrm-cursor/libdrm-cursor-dev_1.4.0-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-data_2021.02+ds-1_all.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-drm_2021.02+ds-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-es2-drm_2021.02+ds-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-es2-wayland_2021.02+ds-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-es2-x11_2021.02+ds-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-wayland_2021.02+ds-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-x11_2021.02+ds-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-data_2021.02+ds-1_all.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-drm_2021.02+ds-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-es2-drm_2021.02+ds-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-es2-wayland_2021.02+ds-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-es2-x11_2021.02+ds-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-wayland_2021.02+ds-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/glmark2/glmark2-x11_2021.02+ds-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rktoolkit/rktoolkit_1.0.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/rktoolkit/rktoolkit_1.0.0-1_arm64.deb" - install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libmali/libmali-valhall-g610-g6p0-x11_1.9-1_arm64.deb" + install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/libmali/libmali-valhall-g610-g6p0-x11_1.9-1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavutil56_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavutil-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libpostproc55_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libpostproc-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswresample3_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswresample-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswscale5_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswscale-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavcodec58_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavcodec-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavformat58_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavformat-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavresample4_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavresample-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavfilter7_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavfilter-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavdevice58_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavdevice-dev_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/ffmpeg_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavutil56_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavutil-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libpostproc55_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libpostproc-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libswresample3_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libswresample-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libswscale5_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libswscale-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavcodec58_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavcodec-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavformat58_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavformat-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavresample4_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavresample-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavfilter7_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavfilter-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavdevice58_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/libavdevice-dev_4.3.5-0+deb11u1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/ffmpeg/ffmpeg_4.3.5-0+deb11u1_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpv/libmpv1_0.32.0-3_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpv/libmpv-dev_0.32.0-3_arm64.deb" - dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpv/mpv_0.32.0-3_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpv/libmpv1_0.32.0-3_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpv/libmpv-dev_0.32.0-3_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_${RELEASE}/mpv/mpv_0.32.0-3_arm64.deb" chroot $SDCARD /bin/bash -c "sed -i '5aexport LD_PRELOAD=libdrm-cursor.so.1' /usr/bin/X" @@ -124,4 +124,130 @@ rk3588_gpu_vpu_tweaks() chroot $SDCARD /bin/bash -c "rm /usr/lib/aarch64-linux-gnu/dri/*.so;mv /*.so /usr/lib/aarch64-linux-gnu/dri/" fi + + if [[ ${BOARD} =~ orangepi5 && ${SELECTED_CONFIGURATION} == desktop && ${RELEASE} == jammy ]]; then + + chroot $SDCARD /bin/bash -c "chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper" + + #chroot $SDCARD /bin/bash -c "apt-get update" + #chroot $SDCARD /bin/bash -c "apt-get upgrade -y" > /dev/null + chroot $SDCARD /bin/bash -c "apt-get install -y libgraphene-1.0-0" > /dev/null + + # RK GPU VPU + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/rkaiq/camera-engine-rkaiq_rk3588_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/rga2/librga2_2.2.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/rga2/librga-dev_2.2.0-1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpp/librockchip-mpp1_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpp/librockchip-mpp-dev_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpp/librockchip-vpu0_1.5.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpp/rockchip-mpp-demos_1.5.0-1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/gir1.2-gstreamer-1.0_1.20.3-0ubuntu1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/gstreamer1.0-tools_1.20.3-0ubuntu1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/libgstreamer1.0-0_1.20.3-0ubuntu1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gstreamer/libgstreamer1.0-dev_1.20.3-0ubuntu1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/gstreamer1.0-alsa_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/gstreamer1.0-gl_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/gstreamer1.0-x_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.20.3-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.20.3-1_arm64.deb" + + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/gir1.2-gst-plugins-bad-1.0_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/libgstreamer-opencv1.0-0_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/gstreamer1.0-opencv_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/gstreamer1.0-plugins-bad_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/gstreamer1.0-plugins-bad-apps_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/gstreamer1.0-wpe_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-dev_1.18.5-1_arm64.deb" + + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-good1.0/gstreamer1.0-gtk3_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.18.5-1_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-good1.0/gstreamer1.0-qt5_1.18.5-1_arm64.deb" + + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-plugins-ugly1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb" + + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/gst-libav1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libdvbv5-0_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/dvb-tools_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/ir-keytable_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libdvbv5-dev_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libdvbv5-doc_1.22.1-2build1_all.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libv4l-0_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libv4l2rds0_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libv4lconvert0_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libv4l-dev_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/libv4l-rkmpp_1.5.0-1.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/v4l-utils_1.22.1-2build1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libv4l/qv4l2_1.22.1-2build1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/xserver/xserver-xorg-core_21.1.3-2ubuntu2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/xserver/xserver-common_21.1.3-2ubuntu2_all.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/xserver/xserver-xorg-dev_21.1.3-2ubuntu2_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/xserver/xserver-xorg-legacy_21.1.3-2ubuntu2_arm64.deb" + + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/chromium/chromium-x11_91.0.4472.164_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libdrm/libkms1_2.4.110-1ubuntu1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libdrm-cursor/libdrm-cursor_1.4.0-1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libdrm-cursor/libdrm-cursor-dev_1.4.0-1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/rktoolkit/rktoolkit_1.0.0-1_arm64.deb" + + install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/libmali/libmali-valhall-g610-g6p0-x11_1.9-1_arm64.deb" + + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavutil56_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavutil-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libpostproc55_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libpostproc-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libswresample3_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libswresample-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libswscale5_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libswscale-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavcodec58_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavcodec-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavformat58_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavformat-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavfilter7_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavfilter-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavdevice58_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/libavdevice-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/ffmpeg/ffmpeg_4.4.2-0ubuntu0.22.04.1_arm64.deb" + + chroot $SDCARD /bin/bash -c "rm /etc/mpv/mpv.conf" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpv/libmpv1_0.34.1-1ubuntu3_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpv/libmpv-dev_0.34.1-1ubuntu3_arm64.deb" + dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mpv/mpv_0.34.1-1ubuntu3_arm64.deb" + + chroot $SDCARD /bin/bash -c "sed -i '5aexport LD_PRELOAD=libdrm-cursor.so.1' /usr/bin/X" + + ## The chromium using fixed pathes for libv4l2.so + chroot $SDCARD /bin/bash -c "ln -rsf /usr/lib/*/libv4l2.so /usr/lib/" + chroot $SDCARD /bin/bash -c "[ -e /usr/lib/aarch64-linux-gnu/ ] && ln -Tsf lib /usr/lib64" + + chroot $SDCARD /bin/bash -c "cd /usr/lib/aarch64-linux-gnu/dri/;cp kms_swrast_dri.so swrast_dri.so rockchip_dri.so /" + chroot $SDCARD /bin/bash -c "rm /usr/lib/aarch64-linux-gnu/dri/*.so;mv /*.so /usr/lib/aarch64-linux-gnu/dri/" + + ## for panfork - ok + #cp ${EXTER}/packages/bsp/mali_csffw.bin $SDCARD/lib/firmware/ + #chroot $SDCARD /bin/bash -c "apt-get install -y glmark2 glmark2-es2" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mesa/libgbm1_23.0~panfork~csf~git221206.c0a7a787026~j_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mesa/libglapi-mesa_23.0~panfork~csf~git221206.c0a7a787026~j_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mesa/libgl1-mesa-dri_23.0~panfork~csf~git221206.c0a7a787026~j_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mesa/libegl-mesa0_23.0~panfork~csf~git221206.c0a7a787026~j_arm64.deb" + #dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages_jammy/mesa/libglx-mesa0_23.0~panfork~csf~git221206.c0a7a787026~j_arm64.deb" + + fi } diff --git a/external/config/sources/families/include/rockchip64_common.inc b/external/config/sources/families/include/rockchip64_common.inc index 81c84e6..4887a8a 100644 --- a/external/config/sources/families/include/rockchip64_common.inc +++ b/external/config/sources/families/include/rockchip64_common.inc @@ -279,8 +279,8 @@ family_tweaks() if [[ $RELEASE == jammy && $BUILD_DESKTOP == yes && $install_chromium == yes ]]; then - chromium_name="chromium-browser_101.0.4951.15-0ubuntu1~ppa1~22.04.1_arm64.deb" - chromium_extra_name="chromium-codecs-ffmpeg-extra_101.0.4951.15-0ubuntu1~ppa1~22.04.1_arm64.deb" + 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_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} @@ -297,7 +297,7 @@ family_tweaks() if [[ $RELEASE == jammy && $BUILD_DESKTOP == yes && $install_firefox == yes ]]; then - firefox_name="firefox-esr_102.1.0esr+build1-0ubuntu0.22.04.1_arm64.deb" + 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} diff --git a/external/config/sources/families/rockchip-rk3588.conf b/external/config/sources/families/rockchip-rk3588.conf index 4a7a10f..1ffaddf 100644 --- a/external/config/sources/families/rockchip-rk3588.conf +++ b/external/config/sources/families/rockchip-rk3588.conf @@ -45,22 +45,24 @@ install_balenaEtcher(){ fi } - family_tweaks_s() { rsync -a "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/ + [[ ${RELEASE} == jammy ]] && rm ${SDCARD}/etc/profile.d/orangepi-ssh-title.sh # for adbd + + if [[ -f "${SDCARD}"/etc/profile.d/im-config_wayland.sh ]]; then + chroot $SDCARD /bin/bash -c "rm /etc/profile.d/im-config_wayland.sh" # for adbd + fi # enable additional services chroot "${SDCARD}" /bin/bash -c "systemctl --no-reload enable usbdevice.service >/dev/null 2>&1" - chroot $SDCARD /bin/bash -c "rm /etc/profile.d/im-config_wayland.sh" sed "s/^SIZE=.*/SIZE=200M/" -i "${SDCARD}"/etc/default/orangepi-ramlog chroot "${SDCARD}" /bin/bash -c "ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime" chroot "${SDCARD}" /bin/bash -c "dpkg-reconfigure -f noninteractive tzdata" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1 - chroot $SDCARD /bin/bash -c "apt-get -y -qq install lm-sensors" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1 - install_deb_chroot "$EXTER/cache/debs/arm64/wiringpi_2.46.deb" + install_wiringop install_docker install_balenaEtcher } diff --git a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization index c82f619..189b93a 100755 --- a/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization +++ b/external/packages/bsp/common/usr/lib/orangepi/orangepi-hardware-optimization @@ -110,12 +110,10 @@ prepare_board() { chown root.video /dev/video-* fi - if [[ ${DISTRIBUTION_CODENAME} == "bullseye" ]]; then - for p in $(modetest|grep "^Planes:" -A 9999|grep -o "^[0-9]*"); - do - modetest -M rockchip -aw $p:ASYNC_COMMIT:1 &>/dev/null - done - 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 bt_status=$(cat /proc/device-tree/wireless-bluetooth/status) if [[ ${bt_status} == "okay" ]]; then diff --git a/external/packages/bsp/mali_csffw.bin b/external/packages/bsp/mali_csffw.bin new file mode 100755 index 0000000000000000000000000000000000000000..710d362c28cbfd6a2100c24a159d4fc83f4bd22c GIT binary patch literal 274432 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 literal 0 HcmV?d00001 diff --git a/external/packages/bsp/rk3588/usr/local/bin/set_vnc.sh b/external/packages/bsp/rk3588/usr/local/bin/set_vnc.sh index 3300050..63cd43e 100755 --- a/external/packages/bsp/rk3588/usr/local/bin/set_vnc.sh +++ b/external/packages/bsp/rk3588/usr/local/bin/set_vnc.sh @@ -15,3 +15,5 @@ EOF chmod +x ~/.vnc/xstartup vncserver + +sync diff --git a/external/packages/bsp/rk3588/usr/local/bin/test_dec_mpv.sh b/external/packages/bsp/rk3588/usr/local/bin/test_dec_mpv.sh new file mode 100755 index 0000000..6ab7555 --- /dev/null +++ b/external/packages/bsp/rk3588/usr/local/bin/test_dec_mpv.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +export DISPLAY=:0.0 +#export GST_DEBUG=*:5 +#export GST_DEBUG_FILE=/tmp/2.txt + +# xv vo +mpv --hwdec=rkmpp --vd-lavc-software-fallback=no --vo=xv /usr/local/test.mp4 diff --git a/external/packages/bsp/rk3588/usr/local/bin/vpu_debug.sh b/external/packages/bsp/rk3588/usr/local/bin/vpu_debug.sh index d5d3114..ab9439b 100755 --- a/external/packages/bsp/rk3588/usr/local/bin/vpu_debug.sh +++ b/external/packages/bsp/rk3588/usr/local/bin/vpu_debug.sh @@ -1,3 +1,3 @@ #!/bin/bash -echo 0x100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug +sudo bash -c "echo 0x100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug" diff --git a/scripts/general.sh b/scripts/general.sh index 2f01239..0eed17d 100755 --- a/scripts/general.sh +++ b/scripts/general.sh @@ -1813,6 +1813,11 @@ show_checklist_variables () done } +install_wiringop() +{ + install_deb_chroot "$EXTER/cache/debs/arm64/wiringpi_2.46.deb" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1 + chroot "${SDCARD}" /bin/bash -c "apt-mark hold wiringpi" >> "${DEST}"/${LOG_SUBPATH}/install.log 2>&1 +} install_docker() { diff --git a/scripts/main.sh b/scripts/main.sh index 12e0a5a..25e6018 100755 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -442,9 +442,9 @@ if [[ ${IGNORE_UPDATES} != yes ]]; then fi - if [[ ${BOARD} =~ orangepi5 && $RELEASE =~ bullseye ]]; then + if [[ ${BOARD} =~ orangepi5 && $RELEASE =~ bullseye|jammy ]]; then - [[ ${BUILD_OPT} == image ]] && fetch_from_repo "https://github.com/orangepi-xunlong/rk-rootfs-build.git" "${EXTER}/cache/sources/rk3588_packages" "branch:rk3588_packages" + [[ ${BUILD_OPT} == image ]] && fetch_from_repo "https://github.com/orangepi-xunlong/rk-rootfs-build.git" "${EXTER}/cache/sources/rk3588_packages_${RELEASE}" "branch:rk3588_packages_${RELEASE}" fi