Support Orange Pi CM4/3B

This commit is contained in:
baiywt
2022-06-28 20:49:34 +08:00
parent 8f7012bb2c
commit 1b0ec5f443
110 changed files with 20451 additions and 4 deletions

Binary file not shown.

View File

@@ -62,6 +62,7 @@ function main(){
[[ "$LINUXFAMILY" == "rockchip-rk3588" ]] && OVERLAYDIR="/boot/dtb/rockchip/overlay";
[[ "$LINUXFAMILY" == "sun50iw9" && "$BRANCH" == "current" ]] && OVERLAYDIR="/boot/dtb/sunxi/overlay";
[[ "$LINUXFAMILY" == "sun50iw9" && "$BRANCH" == "next" ]] && OVERLAYDIR="/boot/dtb/allwinner/overlay";
[[ "$LINUXFAMILY" == "rockchip-rk356x" ]] && OVERLAYDIR="/boot/dtb/rockchip/overlay";
# detect desktop
check_desktop
dialog --backtitle "$BACKTITLE" --title "Please wait" --infobox "\nLoading Orange Pi configuration utility ... " 5 45

14
external/config/boards/orangepi3b.conf vendored Executable file
View File

@@ -0,0 +1,14 @@
# Rockchip RK3566 hexa core 4GB RAM SoC GBE eMMC USB3 USB-C WiFi/BT
BOARD_NAME="OPI 3B"
BOARDFAMILY="rockchip-rk356x"
BOOTCONFIG="orangepi-3b-rk3566_defconfig"
MODULES="sprdbt_tty sprdwl_ng"
MODULES_BLACKLIST_LEGACY="bcmdhd"
KERNEL_TARGET="legacy"
BOOT_LOGO="desktop"
BOOT_SUPPORT_SPI="yes"
DISTRIB_TYPE_LEGACY="focal jammy bullseye"
BOOTFS_TYPE="fat"
IMAGE_PARTITION_TABLE="gpt"
BOOT_FDT_FILE="rockchip/rk3566-orangepi-3b.dtb"
REVISION="1.0.0"

14
external/config/boards/orangepicm4.conf vendored Executable file
View File

@@ -0,0 +1,14 @@
# Rockchip RK3566 hexa core 4GB RAM SoC GBE eMMC USB3 USB-C WiFi/BT
BOARD_NAME="OPI CM4"
BOARDFAMILY="rockchip-rk356x"
BOOTCONFIG="orangepi-cm4-rk3566_defconfig"
MODULES="sprdbt_tty sprdwl_ng"
MODULES_BLACKLIST_LEGACY="bcmdhd"
KERNEL_TARGET="legacy"
BOOT_LOGO="desktop"
BOOT_SUPPORT_SPI="yes"
DISTRIB_TYPE_LEGACY="focal jammy bullseye"
BOOTFS_TYPE="fat"
IMAGE_PARTITION_TABLE="gpt"
BOOT_FDT_FILE="rockchip/rk3566-orangepi-cm4.dtb"
REVISION="1.0.0"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
cheese
fcitx-config-gtk
fcitx-frontend-gtk3
fcitx-frontend-qt5
fcitx-googlepinyin
fcitx-table-all
fcitx-ui-classic
ffmpeg
fonts-arphic-bsmi00lp
fonts-arphic-gbsn00lp
fonts-arphic-gkai00mp
fonts-glyphicons-halflings
geany
glmark2-es2-x11
glmark2-x11
gparted
gstreamer1.0-alsa
gstreamer1.0-opencv
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-base
gstreamer1.0-plugins-base-apps
gstreamer1.0-plugins-ugly
gstreamer1.0-qt5
gstreamer1.0-qt6
gstreamer1.0-tools
gstreamer1.0-wpe
im-config
libgstreamer-opencv1.0-0
libgstreamer-plugins-bad1.0-dev
libgstreamer-plugins-base1.0-dev
libjs-bootstrap
libmpv-dev
libunwind-dev libdw-dev
libv4l-0
mpv
pkg-config libglib2.0-dev
qtmultimedia5-examples
tightvncserver
xserver-xephyr
xserver-xorg-dev
zenity

View File

@@ -0,0 +1,271 @@
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-base
gstreamer1.0-plugins-ugly
gstreamer1.0-tools
gstreamer1.0-alsa
gstreamer1.0-plugins-base-apps
qtmultimedia5-examples
libdw-dev
libelf-dev
liblzma-dev
libunwind-dev
libgraphene-1.0-0 libegl-dev
libgl-dev
libgles-dev
libgles1
libgles2
libglx-dev
liborc-0.4-dev
liborc-0.4-dev-bin
libpthread-stubs0-dev
libwayland-bin libwayland-dev
libx11-dev
libx11-xcb-dev
libxau-dev
libxcb1-dev
libxdmcp-dev
x11proto-dev
xorg-sgml-doctools
xtrans-dev
gdal-data
libaec0
libarmadillo10
libarpack2
libavcodec-dev
libavcodec58
libavformat-dev
libavformat58
libavresample4
libavutil-dev
libavutil56
libblas3
libcfitsio9
libcharls2
libdap27
libdapclient6v5
libdc1394-dev
libdeflate-dev
libepsilon1
libexif-dev
libfreexl1
libfyba0
libgdal28
libgdcm-dev
libgdcm3.0
libgeos-3.9.0
libgeos-c1v5
libgeotiff5
libgfortran5
libgif7
libgl2ps1.4
libgphoto2-dev
libhdf4-0-alt
libhdf5-103-1
libhdf5-hl-100
libheif1
libilmbase-dev
libjbig-dev
libjpeg-dev
libjpeg62-turbo-dev
libjsoncpp24
libkmlbase1
libkmldom1
libkmlengine1
liblapack3
liblept5
libmariadb3
libminizip1
libnetcdf18
libnorm1
libodbc1
libogdi4.1
libopencv-calib3d-dev
libopencv-calib3d4.5
libopencv-contrib-dev
libopencv-contrib4.5
libopencv-core-dev
libopencv-core4.5
libopencv-dev
libopencv-dnn-dev
libopencv-dnn4.5
libopencv-features2d-dev
libopencv-features2d4.5
libopencv-flann-dev
libopencv-flann4.5
libopencv-highgui-dev
libopencv-highgui4.5
libopencv-imgcodecs-dev
libopencv-imgcodecs4.5
libopencv-imgproc-dev
libopencv-imgproc4.5
libopencv-ml-dev
libopencv-ml4.5
libopencv-objdetect-dev
libopencv-objdetect4.5
libopencv-photo-dev
libopencv-photo4.5
libopencv-shape-dev
libopencv-shape4.5
libopencv-stitching-dev
libopencv-stitching4.5
libopencv-superres-dev
libopencv-superres4.5
libopencv-video-dev
libopencv-video4.5
libopencv-videoio-dev
libopencv-videoio4.5
libopencv-videostab-dev
libopencv-videostab4.5
libopencv-viz-dev
libopencv-viz4.5
libopenexr-dev
libopengl0
libpgm-5.3-0
libpng-dev
libpq5
libproj19
libprotobuf23
libqhull8.0
librabbitmq4
libraw1394-dev
librttopo1
libsocket++1
libsodium23
libspatialite7
libssh-gcrypt-4
libsuperlu5
libswresample-dev
libswresample3
libswscale-dev
libswscale5
libsz2
libtbb-dev
libtbb2
libtesseract4
libtiff-dev
libtiffxx5
libtk8.6
liburiparser1
libvtk9
libxerces-c3.2
libzmq5
mariadb-common
mysql-common
odbcinst
odbcinst1debian2
proj-data
libre2-9
libharfbuzz-icu0
libwoff1
libwpe-1.0-1
libwpebackend-fdo-1.0-1
libwpewebkit-1.0-3
libxslt1.1
xdg-dbus-proxy
libqt5waylandclient5
libqt5x11extras5
cheese
v4l-utils
libqt5opengl5
libavfilter7
libmysofa1
libpocketsphinx3
libpostproc55
librubberband2
libsphinxbase3
libvidstab1.1
libbrotli-dev
libdrm-dev
libdrm-etnaviv1
libdrm-freedreno1
libdrm-tegra0
libfontenc-dev
libfreetype-dev
libfreetype6-dev
libpciaccess-dev
libpixman-1-dev
libxfont-dev
libxkbfile-dev
mesa-common-dev
libid3tag0
libimlib2
libobrender32v5
libobt2v5
apt-transport-https
fonts-arphic-bsmi00lp
fonts-arphic-gbsn00lp
fonts-arphic-gkai00mp
fcitx
fcitx-table
fcitx-table-all
fcitx-table-amharic
fcitx-table-arabic
fcitx-table-array30
fcitx-table-array30-big
fcitx-table-bingchan
fcitx-table-boshiamy
fcitx-table-cangjie
fcitx-table-cangjie-big
fcitx-table-cangjie3
fcitx-table-cangjie5
fcitx-table-cantonese
fcitx-table-cantonhk
fcitx-table-cns11643
fcitx-table-compose
fcitx-table-dianbaoma
fcitx-table-easy-big
fcitx-table-emoji
fcitx-table-erbi
fcitx-table-ipa-x-sampa
fcitx-table-jyutping
fcitx-table-latex
fcitx-table-malayalam-phonetic
fcitx-table-quick-classic
fcitx-table-quick3
fcitx-table-quick5
fcitx-table-rustrad
fcitx-table-scj6
fcitx-table-stroke5
fcitx-table-t9
fcitx-table-tamil-remington
fcitx-table-thai
fcitx-table-translit
fcitx-table-translit-ua
fcitx-table-viqr
fcitx-table-wanfeng
fcitx-table-wbpy
fcitx-table-wu
fcitx-table-wubi
fcitx-table-wubi-large
fcitx-table-yawerty
fcitx-table-zhengma
fcitx-table-zhengma-large
fcitx-table-ziranma
fcitx-frontend-gtk2
fcitx-frontend-gtk3
fcitx-module-dbus
libfcitx-gclient1
fcitx-frontend-qt5
fcitx-config-common
fcitx-config-gtk
im-config
fcitx-googlepinyin
fcitx-module-kimpanel
fcitx-module-x11
fcitx-ui-classic
fcitx-ui-light
fcitx-ui-qimpanel
libqt5quickwidgets5
zenity
geany
audacity
tightvncserver
xrdp
libva-wayland2
liblua5.2-0
gparted
clinfo
dkms
fakeroot
debhelper
xinput

View File

@@ -0,0 +1,272 @@
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-base
gstreamer1.0-plugins-ugly
gstreamer1.0-tools
gstreamer1.0-alsa
gstreamer1.0-plugins-base-apps
qtmultimedia5-examples
libdw-dev
libelf-dev
liblzma-dev
libunwind-dev
libgraphene-1.0-0 libegl-dev
libgl-dev
libgles-dev
libgles1
libgles2
libglx-dev
liborc-0.4-dev
liborc-0.4-dev-bin
libpthread-stubs0-dev
libwayland-bin libwayland-dev
libx11-dev
libx11-xcb-dev
libxau-dev
libxcb1-dev
libxdmcp-dev
x11proto-dev
xorg-sgml-doctools
xtrans-dev
gdal-data
libaec0
libarmadillo10
libarpack2
libavcodec-dev
libavcodec58
libavformat-dev
libavformat58
libavresample4
libavutil-dev
libavutil56
libblas3
libcfitsio9
libcharls2
libdap27
libdapclient6v5
libdc1394-dev
libdeflate-dev
libepsilon1
libexif-dev
libfreexl1
libfyba0
libgdal28
libgdcm-dev
libgdcm3.0
libgeos-3.9.0
libgeos-c1v5
libgeotiff5
libgfortran5
libgif7
libgl2ps1.4
libgphoto2-dev
libhdf4-0-alt
libhdf5-103-1
libhdf5-hl-100
libheif1
libilmbase-dev
libjbig-dev
libjpeg-dev
libjpeg62-turbo-dev
libjsoncpp24
libkmlbase1
libkmldom1
libkmlengine1
liblapack3
liblept5
libmariadb3
libminizip1
libnetcdf18
libnorm1
libodbc1
libogdi4.1
libopencv-calib3d-dev
libopencv-calib3d4.5
libopencv-contrib-dev
libopencv-contrib4.5
libopencv-core-dev
libopencv-core4.5
libopencv-dev
libopencv-dnn-dev
libopencv-dnn4.5
libopencv-features2d-dev
libopencv-features2d4.5
libopencv-flann-dev
libopencv-flann4.5
libopencv-highgui-dev
libopencv-highgui4.5
libopencv-imgcodecs-dev
libopencv-imgcodecs4.5
libopencv-imgproc-dev
libopencv-imgproc4.5
libopencv-ml-dev
libopencv-ml4.5
libopencv-objdetect-dev
libopencv-objdetect4.5
libopencv-photo-dev
libopencv-photo4.5
libopencv-shape-dev
libopencv-shape4.5
libopencv-stitching-dev
libopencv-stitching4.5
libopencv-superres-dev
libopencv-superres4.5
libopencv-video-dev
libopencv-video4.5
libopencv-videoio-dev
libopencv-videoio4.5
libopencv-videostab-dev
libopencv-videostab4.5
libopencv-viz-dev
libopencv-viz4.5
libopenexr-dev
libopengl0
libpgm-5.3-0
libpng-dev
libpq5
libproj19
libprotobuf23
libqhull8.0
librabbitmq4
libraw1394-dev
librttopo1
libsocket++1
libsodium23
libspatialite7
libssh-gcrypt-4
libsuperlu5
libswresample-dev
libswresample3
libswscale-dev
libswscale5
libsz2
libtbb-dev
libtbb2
libtesseract4
libtiff-dev
libtiffxx5
libtk8.6
liburiparser1
libvtk9
libxerces-c3.2
libzmq5
mariadb-common
mysql-common
odbcinst
odbcinst1debian2
proj-data
libre2-9
libharfbuzz-icu0
libwoff1
libwpe-1.0-1
libwpebackend-fdo-1.0-1
libwpewebkit-1.0-3
libxslt1.1
xdg-dbus-proxy
libqt5waylandclient5
libqt5x11extras5
cheese
v4l-utils
libqt5opengl5
libavfilter7
libmysofa1
libpocketsphinx3
libpostproc55
librubberband2
libsphinxbase3
libvidstab1.1
libbrotli-dev
libdrm-dev
libdrm-etnaviv1
libdrm-freedreno1
libdrm-tegra0
libfontenc-dev
libfreetype-dev
libfreetype6-dev
libpciaccess-dev
libpixman-1-dev
libxfont-dev
libxkbfile-dev
mesa-common-dev
libid3tag0
libimlib2
libobrender32v5
libobt2v5
apt-transport-https
fonts-arphic-bsmi00lp
fonts-arphic-gbsn00lp
fonts-arphic-gkai00mp
fcitx
fcitx-table
fcitx-table-all
fcitx-table-amharic
fcitx-table-arabic
fcitx-table-array30
fcitx-table-array30-big
fcitx-table-bingchan
fcitx-table-boshiamy
fcitx-table-cangjie
fcitx-table-cangjie-big
fcitx-table-cangjie3
fcitx-table-cangjie5
fcitx-table-cantonese
fcitx-table-cantonhk
fcitx-table-cns11643
fcitx-table-compose
fcitx-table-dianbaoma
fcitx-table-easy-big
fcitx-table-emoji
fcitx-table-erbi
fcitx-table-ipa-x-sampa
fcitx-table-jyutping
fcitx-table-latex
fcitx-table-malayalam-phonetic
fcitx-table-quick-classic
fcitx-table-quick3
fcitx-table-quick5
fcitx-table-rustrad
fcitx-table-scj6
fcitx-table-stroke5
fcitx-table-t9
fcitx-table-tamil-remington
fcitx-table-thai
fcitx-table-translit
fcitx-table-translit-ua
fcitx-table-viqr
fcitx-table-wanfeng
fcitx-table-wbpy
fcitx-table-wu
fcitx-table-wubi
fcitx-table-wubi-large
fcitx-table-yawerty
fcitx-table-zhengma
fcitx-table-zhengma-large
fcitx-table-ziranma
fcitx-frontend-gtk2
fcitx-frontend-gtk3
fcitx-module-dbus
libfcitx-gclient1
fcitx-frontend-qt5
fcitx-config-common
fcitx-config-gtk
im-config
fcitx-googlepinyin
fcitx-module-kimpanel
fcitx-module-x11
fcitx-ui-classic
fcitx-ui-light
fcitx-ui-qimpanel
libqt5quickwidgets5
zenity
geany
audacity
tightvncserver
xrdp
libva-wayland2
liblua5.2-0
vlc
gparted
clinfo
dkms
fakeroot
debhelper
xinput

View File

@@ -0,0 +1,81 @@
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-base
gstreamer1.0-plugins-ugly
gstreamer1.0-tools
gstreamer1.0-alsa
gstreamer1.0-plugins-base-apps
qtmultimedia5-examples
libglib2.0-doc
libgraphene-1.0-0
libegl-dev libegl1-mesa-dev
libgl-dev libgl1-mesa-dev
libgles-dev
libgles1
libgles2-mesa-dev
libglvnd-dev
libglx-dev
libopengl-dev
libopengl0
liborc-0.4-dev
liborc-0.4-dev-bin
libpthread-stubs0-dev
libx11-dev
libx11-xcb-dev
libxau-dev
libxcb1-dev
libxdmcp-dev
x11proto-core-dev
x11proto-dev
xorg-sgml-doctools
xtrans-dev
libqt5x11extras5
libdw1 libdw-dev
libelf-dev
liblzma-dev
libunwind-dev
libavformat58
libbluray2
libjsoncpp-dev
libjsoncpp1
libminizip1
libssh-gcrypt-4
libdrm-etnaviv1
libdrm-freedreno1
libdrm-tegra0
libpciaccess-dev
libmysofa1
libnorm1
libpgm-5.2-0
librubberband2
libsodium23
libvidstab1.1
libzmq5
libxv1
liblua5.2-0
libva-wayland2
glmark2-es2
glmark2
audacity
tightvncserver
xrdp
geany
clinfo
fcitx-sunpinyin
fcitx-table-cangjie
fonts-noto-cjk-extra
fcitx-frontend-gtk3
fcitx-ui-classic
fcitx-table-wubi
fcitx-module-cloudpinyin
fcitx-ui-qimpanel
fcitx-chewing
fcitx-pinyin
fonts-noto-cjk
fcitx-frontend-qt5
fcitx-frontend-gtk2
gparted
cheese
dkms
fakeroot
debhelper
xinput

View File

@@ -0,0 +1,313 @@
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
language-selector-gnome
gnome-user-docs-fr
wogerman
wngerman
libqt5qmlworkerscript5
qml-module-qtquick2
fonts-arphic-bsmi00lp
fonts-arphic-gbsn00lp
fonts-arphic-gkai00mp
im-config
zenity
geany
python2
clinfo
fonts-noto-cjk
gnome-user-docs-zh-hans
dkms
fakeroot
debhelper
fcitx5-frontend-gtk2
fcitx5-frontend-qt5
fcitx5-frontend-gtk4
fcitx5-chinese-addons
fcitx5-module-cloudpinyin
language-pack-gnome-zh-hans
fcitx5 fonts-noto-cjk-extra
fcitx5-frontend-gtk3
language-pack-zh-hans
fcitx5-data
fcitx5-config-qt
xinput
gparted
mesa-utils
libqt5core5a
libqt5gui5
libqt5widgets5
libchromaprint1
libcec6
libcrossguid0
libfmt8
libfstrcmp0
libimagequant0
libiso9660-11
libkissfft-float131
liblirc-client0
libmicrohttpd12
libmysqlclient21
libp8-platform2
libraqm0
libraspberrypi0
libshairplay0
libtinyxml2.6.2v5
libwayland-client++0
libwayland-cursor++0
libwayland-egl++0
mailcap
mime-support
mysql-common
python3-pil
python3-pycryptodome
libjs-iscroll
gnome-bluetooth
onboard
gnome-screenshot
libqt5waylandclient5
thunderbird-locale-zh-hans
fonts-arphic-uming
libreoffice-help-zh-cn
thunderbird-locale-zh-cn
fonts-arphic-ukai
libreoffice-l10n-zh-cn

View File

@@ -0,0 +1,313 @@
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
language-selector-gnome
gnome-user-docs-fr
wogerman
wngerman
libqt5qmlworkerscript5
qml-module-qtquick2
fonts-arphic-bsmi00lp
fonts-arphic-gbsn00lp
fonts-arphic-gkai00mp
im-config
zenity
geany
python2
clinfo
fonts-noto-cjk
gnome-user-docs-zh-hans
dkms
fakeroot
debhelper
fcitx5-frontend-gtk2
fcitx5-frontend-qt5
fcitx5-frontend-gtk4
fcitx5-chinese-addons
fcitx5-module-cloudpinyin
language-pack-gnome-zh-hans
fcitx5 fonts-noto-cjk-extra
fcitx5-frontend-gtk3
language-pack-zh-hans
fcitx5-data
fcitx5-config-qt
xinput
gparted
mesa-utils
libqt5core5a
libqt5gui5
libqt5widgets5
libchromaprint1
libcec6
libcrossguid0
libfmt8
libfstrcmp0
libimagequant0
libiso9660-11
libkissfft-float131
liblirc-client0
libmicrohttpd12
libmysqlclient21
libp8-platform2
libraqm0
libraspberrypi0
libshairplay0
libtinyxml2.6.2v5
libwayland-client++0
libwayland-cursor++0
libwayland-egl++0
mailcap
mime-support
mysql-common
python3-pil
python3-pycryptodome
libjs-iscroll
gnome-bluetooth
onboard
gnome-screenshot
libqt5waylandclient5
thunderbird-locale-zh-hans
fonts-arphic-uming
libreoffice-help-zh-cn
thunderbird-locale-zh-cn
fonts-arphic-ukai
libreoffice-l10n-zh-cn

View File

@@ -0,0 +1,276 @@
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
language-selector-gnome
gnome-user-docs-fr
wogerman
wngerman
libqt5qmlworkerscript5
qml-module-qtquick2
fonts-arphic-bsmi00lp
fonts-arphic-gbsn00lp
fonts-arphic-gkai00mp
im-config
zenity
geany
python2
clinfo
fonts-noto-cjk
gnome-user-docs-zh-hans
dkms
fakeroot
debhelper
fcitx5-frontend-gtk2
fcitx5-frontend-qt5
fcitx5-frontend-gtk4
fcitx5-chinese-addons
fcitx5-module-cloudpinyin
language-pack-gnome-zh-hans
fcitx5 fonts-noto-cjk-extra
fcitx5-frontend-gtk3
language-pack-zh-hans
fcitx5-data
fcitx5-config-qt
xinput
gparted
libjsoncpp-dev
libpipewire-0.3-0

View File

@@ -0,0 +1,312 @@
rk356x_gpu_vpu_tweaks()
{
if [[ ${BOARD} =~ orangepicm4|orangepi3b && ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == xfce && ${RELEASE} == focal ]]; then
rk356x_deb+=("rk356x_packages/common/libmali/libmali-bifrost-g52-g13p0-x11-gbm_1.9-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rga2/librga2_2.2.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rga2/librga-dev_2.2.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rkaiq/camera_engine_rkaiq_rk3568_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rktoolkit/rktoolkit_1.0.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpp/librockchip-mpp1_1.5.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpp/librockchip-mpp-dev_1.5.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpp/librockchip-vpu0_1.5.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpp/rockchip-mpp-demos_1.5.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gstreamer/libgstreamer1.0-0_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gstreamer/libgstreamer1.0-dev_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gstreamer/gir1.2-gstreamer-1.0_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gstreamer/gstreamer1.0-tools_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/gstreamer1.0-alsa_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/gstreamer1.0-x_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/gstreamer1.0-gl_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-good1.0/gstreamer1.0-gtk3_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-good1.0/gstreamer1.0-qt5_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-good1.0/libgstreamer-plugins-good1.0-0_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/gst-plugins-good1.0/libgstreamer-plugins-good1.0-dev_1.16.3-0ubuntu1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libdvbv5-0_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/dvb-tools_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/ir-keytable_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libdvbv5-dev_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libdvbv5-doc_1.18.0-2build1_all.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libv4l-0_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libv4l2rds0_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libv4lconvert0_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libv4l-dev_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/libv4l-rkmpp_1.4.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/v4l-utils_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libv4l/qv4l2_1.18.0-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/chromium/chromium-x11_91.0.4472.164_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/xserver/xserver-xorg-core_1.20.13-1ubuntu1~20.04.8_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libdrm/libdrm2_2.4.107-8ubuntu1~20.04.2_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libdrm/libdrm-common_2.4.107-8ubuntu1~20.04.2_all.deb")
rk356x_deb+=("rk356x_packages/focal/libdrm/libkms1_2.4.107-8ubuntu1~20.04.2_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libdrm-cursor/libdrm-cursor_1.4.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/libdrm-cursor/libdrm-cursor-dev_1.4.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavutil56_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavutil-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libpostproc55_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libpostproc-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libswresample3_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libswresample-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libswscale5_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libswscale-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavcodec58_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavcodec-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavformat58_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavformat-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavfilter7_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavfilter-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavdevice58_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavdevice-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavresample4_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/libavresample-dev_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/ffmpeg/ffmpeg_4.2.7-0ubuntu0.1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpv/libmpv1_0.32.0-1ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpv/libmpv-dev_0.32.0-1ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/focal/mpv/mpv_0.32.0-1ubuntu1_arm64.deb")
chroot $SDCARD /bin/bash -c "chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper"
chroot $SDCARD /bin/bash -c "rm /etc/mpv/mpv.conf"
for deb in ${rk356x_deb[@]}
do
dpkg_install_deb_chroot "$EXTER/cache/sources/${deb}"
done
chroot $SDCARD /bin/bash -c "sed -i '5aexport LD_PRELOAD=libdrm-cursor.so.1' /usr/bin/X"
cp ${EXTER}/cache/sources/rk356x_packages/focal/chromium/libjpeg.so.62 $SDCARD/usr/lib/aarch64-linux-gnu/
cp ${EXTER}/packages/bsp/rk356x/etc/mpv/mpv.conf $SDCARD/etc/mpv/
## 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/"
fi
if [[ ${BOARD} =~ orangepicm4|orangepi3b && ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == xfce && ${RELEASE} == jammy ]]; then
rk356x_deb+=("rk356x_packages/common/libmali/libmali-bifrost-g52-g13p0-x11-gbm_1.9-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rga2/librga2_2.2.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rga2/librga-dev_2.2.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rkaiq/camera_engine_rkaiq_rk3568_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rktoolkit/rktoolkit_1.0.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpp/librockchip-mpp1_1.5.0-1.2_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpp/librockchip-mpp-dev_1.5.0-1.2_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpp/librockchip-vpu0_1.5.0-1.2_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpp/rockchip-mpp-demos_1.5.0-1.2_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gstreamer/gir1.2-gstreamer-1.0_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gstreamer/gstreamer1.0-tools_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gstreamer/libgstreamer1.0-0_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gstreamer/libgstreamer1.0-dev_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/gstreamer1.0-alsa_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/gstreamer1.0-gl_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/gstreamer1.0-x_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.20.3-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/gir1.2-gst-plugins-bad-1.0_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/libgstreamer-opencv1.0-0_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/gstreamer1.0-opencv_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/gstreamer1.0-plugins-bad_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/gstreamer1.0-plugins-bad-apps_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/gstreamer1.0-wpe_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-dev_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-good1.0/gstreamer1.0-gtk3_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-good1.0/gstreamer1.0-qt5_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-good1.0/libgstreamer-plugins-good1.0-0_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/gst-plugins-good1.0/libgstreamer-plugins-good1.0-dev_1.20.3-0ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libdvbv5-0_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/dvb-tools_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/ir-keytable_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libdvbv5-dev_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libdvbv5-doc_1.22.1-2build1_all.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libv4l-0_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libv4l2rds0_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libv4lconvert0_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libv4l-dev_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/libv4l-rkmpp_1.5.1-1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/v4l-utils_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libv4l/qv4l2_1.22.1-2build1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/chromium/chromium-x11_91.0.4472.164_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/xserver/xserver-xorg-core_21.1.4-2ubuntu1.7~22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/xserver/xserver-common_21.1.4-2ubuntu1.7~22.04.1_all.deb")
rk356x_deb+=("rk356x_packages/jammy/xserver/xserver-xorg-dev_21.1.4-2ubuntu1.7~22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/xserver/xserver-xorg-legacy_21.1.4-2ubuntu1.7~22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libdrm/libkms1_2.4.110-1ubuntu1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libdrm-cursor/libdrm-cursor_1.4.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/libdrm-cursor/libdrm-cursor-dev_1.4.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavutil56_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavutil-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libpostproc55_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libpostproc-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libswresample3_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libswresample-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libswscale5_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libswscale-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavcodec58_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavcodec-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavformat58_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavformat-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavfilter7_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavfilter-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavdevice58_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/libavdevice-dev_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/ffmpeg/ffmpeg_4.4.2-0ubuntu0.22.04.1_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpv/libmpv1_0.34.1-1ubuntu3_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpv/libmpv-dev_0.34.1-1ubuntu3_arm64.deb")
rk356x_deb+=("rk356x_packages/jammy/mpv/mpv_0.34.1-1ubuntu3_arm64.deb")
chroot $SDCARD /bin/bash -c "chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper"
chroot $SDCARD /bin/bash -c "apt-get install -y libgraphene-1.0-0 libqt5waylandclient5 libgdk-pixbuf2.0-0" > /dev/null
chroot $SDCARD /bin/bash -c "rm /etc/mpv/mpv.conf"
for deb in ${rk356x_deb[@]}
do
dpkg_install_deb_chroot "$EXTER/cache/sources/${deb}"
done
cp ${EXTER}/packages/bsp/rk356x/etc/mpv/mpv.conf $SDCARD/etc/mpv/
cp ${EXTER}/cache/sources/rk356x_packages/jammy/chromium/libjpeg.so.62 $SDCARD/usr/lib/aarch64-linux-gnu/
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/"
fi
if [[ ${BOARD} =~ orangepicm4|orangepi3b && ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == xfce && ${RELEASE} == bullseye ]]; then
rk356x_deb+=("rk356x_packages/common/libmali/libmali-bifrost-g52-g13p0-x11-gbm_1.9-1_arm64.deb") ##
rk356x_deb+=("rk356x_packages/common/rga2/librga2_2.2.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rga2/librga-dev_2.2.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rkaiq/camera_engine_rkaiq_rk3568_arm64.deb")
rk356x_deb+=("rk356x_packages/common/rktoolkit/rktoolkit_1.0.0-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpp/librockchip-mpp1_1.5.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpp/librockchip-mpp-dev_1.5.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpp/librockchip-vpu0_1.5.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpp/rockchip-mpp-demos_1.5.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/xserver/xserver-common_1.20.11-1_all.deb")
rk356x_deb+=("rk356x_packages/bullseye/xserver/xserver-xorg-dev_1.20.11-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/xserver/xserver-xorg-core_1.20.11-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/xserver/xserver-xorg-legacy_1.20.11-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gstreamer/gir1.2-gstreamer-1.0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gstreamer/gstreamer1.0-tools_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gstreamer/libgstreamer1.0-0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gstreamer/libgstreamer1.0-dev_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/gstreamer1.0-alsa_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/gstreamer1.0-gl_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/gstreamer1.0-x_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/gir1.2-gst-plugins-bad-1.0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/libgstreamer-opencv1.0-0_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/gstreamer1.0-opencv_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/gstreamer1.0-plugins-bad_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/gstreamer1.0-plugins-bad-apps_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/gstreamer1.0-wpe_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-dev_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-good1.0/gstreamer1.0-gtk3_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-good1.0/gstreamer1.0-qt5_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-plugins-ugly1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/gst-libav1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libdvbv5-0_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/dvb-tools_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/ir-keytable_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libdvbv5-dev_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libdvbv5-doc_1.20.0-2_all.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libv4l-0_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libv4l2rds0_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libv4lconvert0_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libv4l-dev_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/libv4l-rkmpp_1.5.1-1.1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/v4l-utils_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libv4l/qv4l2_1.20.0-2_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/chromium/chromium-x11_91.0.4472.164_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libdrm/libkms1_2.4.104-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libdrm-cursor/libdrm-cursor_1.4.1-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/libdrm-cursor/libdrm-cursor-dev_1.4.1-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-data_2022.06~git.3f1104d-1_all.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-drm_2022.06~git.3f1104d-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-es2-drm_2022.06~git.3f1104d-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-es2-wayland_2022.06~git.3f1104d-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-es2-x11_2022.06~git.3f1104d-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-wayland_2022.06~git.3f1104d-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/glmark2/glmark2-x11_2022.06~git.3f1104d-1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavutil56_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavutil-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libpostproc55_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libpostproc-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libswresample3_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libswresample-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libswscale5_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libswscale-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavcodec58_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavcodec-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavformat58_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavformat-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavresample4_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavresample-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavfilter7_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavfilter-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavdevice58_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/libavdevice-dev_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/ffmpeg/ffmpeg_4.3.5-0+deb11u1_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpv/libmpv1_0.32.0-3_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpv/libmpv-dev_0.32.0-3_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/mpv/mpv_0.32.0-3_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/cheese/cheese_3.38.0-3_arm64.deb")
rk356x_deb+=("rk356x_packages/bullseye/cheese/cheese-common_3.38.0-3_all.deb")
rk356x_deb+=("rk356x_packages/bullseye/cheese/libcheese8_3.38.0-3_arm64.deb")
chroot $SDCARD /bin/bash -c "chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper"
for deb in ${rk356x_deb[@]}
do
dpkg_install_deb_chroot "$EXTER/cache/sources/${deb}"
done
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/"
fi
}

View File

@@ -1,5 +1,6 @@
source "${BASH_SOURCE%/*}/rk3399_gpu_vpu.inc"
source "${BASH_SOURCE%/*}/rk3588_gpu_vpu.inc"
source "${BASH_SOURCE%/*}/rk356x_gpu_vpu.inc"
enable_extension "rkbin-tools"
ARCH=arm64
@@ -37,7 +38,7 @@ else
PKG_PREFIX=""
fi
if [[ $BOOTCONFIG == *3399* ]]; then
if [[ $BOOTCONFIG =~ *3399*|*3566* ]]; then
CPUMIN=${CPUMIN:="408000"}
CPUMAX=${CPUMAX:="1800000"}
@@ -62,6 +63,14 @@ elif [[ $BOARDFAMILY == "rockchip-rk3588" ]]; then
BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}"
DDR_BLOB="${DDR_BLOB:=rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.08.bin}"
BL31_BLOB='rk35/rk3588_bl31_v1.28.elf'
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'
@@ -129,6 +138,16 @@ uboot_custom_postprocess()
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
@@ -150,6 +169,9 @@ uboot_custom_postprocess()
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
fi
:
@@ -243,6 +265,7 @@ family_tweaks()
[[ "$BRANCH" =~ legacy|current ]] && rk3399_gpu_vpu_tweaks
[[ "$BRANCH" =~ legacy && $BOARDFAMILY == "rockchip-rk3588" ]] && rk3588_gpu_vpu_tweaks
[[ "$BRANCH" == legacy && $BOARDFAMILY == "rockchip-rk356x" ]] && rk356x_gpu_vpu_tweaks
#if [[ ${BOARD} == orangepi800 && ${SELECTED_CONFIGURATION} == desktop && ${RELEASE} =~ bullseye|bookworm ]]; then

View File

@@ -0,0 +1,49 @@
source "${BASH_SOURCE%/*}/include/rockchip64_common.inc"
BOOTBRANCH='branch:v2017.09-rk3588'
OVERLAY_PREFIX="rk356x"
case $BRANCH in
legacy)
KERNELBRANCH='branch:orange-pi-5.10-rk35xx'
LINUXCONFIG='linux-rockchip-rk356x-legacy'
;;
esac
prepare_boot_configuration
install_balenaEtcher(){
if [[ $BUILD_DESKTOP == yes && $install_balena_etcher == yes ]]; then
balena_etcher_deb=balena-etcher-electron_1.7.9+5945ab1f_arm64.deb
balena_etcher_url="https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/${balena_etcher_deb}"
balena_etcher=${EXTER}/cache/debs/arm64/${balena_etcher_deb}
if [[ ! -f ${balena_etcher} ]]; then
wget -P ${EXTER}/cache/debs/arm64 ${balena_etcher_url}
fi
install_deb_chroot ${balena_etcher}
fi
}
family_tweaks_bsp()
{
:
}
family_tweaks_s() {
rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk356x/* ${SDCARD}/
install_docker
install_balenaEtcher
install_wiringop
if [[ -f ${SDCARD}/etc/pulse/default.pa && ${SELECTED_CONFIGURATION} == desktop && ${BOARD} =~ orangepicm4|orangepi3b ]]; then
sed -i "s/auto-profiles = yes/auto-profiles = no/" ${SDCARD}/usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf
echo "load-module module-alsa-sink device=hw:0,0 sink_name=AudioCodec-Playback sink_properties=\"device.description='Headphone'\"" >> ${SDCARD}/etc/pulse/default.pa
echo "load-module module-alsa-sink device=hw:1,0 sink_name=HDMI-Playback sink_properties=\"device.description='HDMI Audio'\"" >> ${SDCARD}/etc/pulse/default.pa
fi
}

View File

@@ -283,6 +283,31 @@ prepare_board() {
rfkill unblock all
/usr/bin/hciattach_opi -n -s 1500000 /dev/ttyBT0 sprd &
;;
orangepicm4|orangepi3b)
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
rfkill unblock all
/usr/bin/hciattach_opi -n -s 1500000 /dev/ttyBT0 sprd &
#rfkill unblock all
#brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
# --baudrate 1500000 --patchram /lib/firmware/cyw43455/BCM4345C0.hcd /dev/ttyS1 &
;;
esac

View File

@@ -0,0 +1,33 @@
Section "Device"
Identifier "Rockchip Graphics"
Driver "modesetting"
### Use Rockchip RGA 2D HW accel
# Option "AccelMethod" "exa"
### Use GPU HW accel
Option "AccelMethod" "glamor"
Option "DRI" "2"
### Set to "always" to avoid tearing, could lead to up 50% performance loss
Option "FlipFB" "always"
### Limit flip rate and drop frames for "FlipFB" to reduce performance lost
# Option "MaxFlipRate" "60"
Option "NoEDID" "true"
Option "UseGammaLUT" "true"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Rockchip Graphics"
Monitor "Default Monitor"
EndSection
### Valid values for rotation are "normal", "left", "right"
Section "Monitor"
Identifier "Default Monitor"
Option "Rotate" "normal"
EndSection

View File

@@ -0,0 +1,5 @@
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,141 @@
#
# mpv configuration file
#
# Warning:
#
# The commented example options usually do _not_ set the default values. Call
# mpv with --list-options to see the default values for most options. There is
# no builtin or example mpv.conf with all the defaults.
#
#
# Configuration files are read system-wide from /usr/local/etc/mpv.conf
# and per-user from ~/.config/mpv/mpv.conf, where per-user settings override
# system-wide settings, all of which are overridden by the command line.
#
# Configuration file settings and the command line options use the same
# underlying mechanisms. Most options can be put into the configuration file
# by dropping the preceding '--'. See the man page for a complete list of
# options.
#
# Lines starting with '#' are comments and are ignored.
#
# See the CONFIGURATION FILES section in the man page
# for a detailed description of the syntax.
#
# Profiles should be placed at the bottom of the configuration file to ensure
# that settings wanted as defaults are not restricted to specific profiles.
##################
# video settings #
##################
# Start in fullscreen mode by default.
#fs=yes
# force starting with centered window
#geometry=50%:50%
# don't allow a new window to have a size larger than 90% of the screen size
#autofit-larger=90%x90%
# Do not close the window on exit.
#keep-open=yes
# Do not wait with showing the video window until it has loaded. (This will
# resize the window once video is loaded. Also always shows a window with
# audio.)
#force-window=immediate
# Disable the On Screen Controller (OSC).
#osc=no
# Keep the player window on top of all other windows.
#ontop=yes
# Specify high quality video rendering preset (for --vo=gpu only)
# Can cause performance problems with some drivers and GPUs.
#profile=gpu-hq
# Force video to lock on the display's refresh rate, and change video and audio
# speed to some degree to ensure synchronous playback - can cause problems
# with some drivers and desktop environments.
#video-sync=display-resample
# Enable hardware decoding if available. Often, this does not work with all
# video outputs, but should work well with default settings on most systems.
# If performance or energy usage is an issue, forcing the vdpau or vaapi VOs
# may or may not help.
hwdec=rkmpp
# Specify default video output.
vo=xv
##################
# audio settings #
##################
# Specify default audio device. You can list devices with: --audio-device=help
# The option takes the device string (the stuff between the '...').
#audio-device=alsa/default
# Do not filter audio to keep pitch when changing playback speed.
#audio-pitch-correction=no
# Output 5.1 audio natively, and upmix/downmix audio with a different format.
#audio-channels=5.1
# Disable any automatic remix, _if_ the audio output accepts the audio format.
# of the currently played file. See caveats mentioned in the manpage.
# (The default is "auto-safe", see manpage.)
#audio-channels=auto
##################
# other settings #
##################
# Pretend to be a web browser. Might fix playback with some streaming sites,
# but also will break with shoutcast streams.
#user-agent="Mozilla/5.0"
# cache settings
#
# Use 150MB input cache by default. The cache is enabled for network streams only.
#cache-default=153600
#
# Use 150MB input cache for everything, even local files.
#cache=153600
#
# Disable the behavior that the player will pause if the cache goes below a
# certain fill size.
#cache-pause=no
#
# Read ahead about 5 seconds of audio and video packets.
#demuxer-readahead-secs=5.0
#
# Raise readahead from demuxer-readahead-secs to this value if a cache is active.
#cache-secs=50.0
# Display English subtitles if available.
#slang=en
# Play Finnish audio if available, fall back to English otherwise.
#alang=fi,en
# Change subtitle encoding. For Arabic subtitles use 'cp1256'.
# If the file seems to be valid UTF-8, prefer UTF-8.
# (You can add '+' in front of the codepage to force it.)
#sub-codepage=cp1256
# You can also include other configuration files.
#include=/path/to/the/file/you/want/to/include
############
# Profiles #
############
# The options declared as part of profiles override global default settings,
# but only take effect when the profile is active.
# The following profile can be enabled on the command line with: --profile=eye-cancer
#[eye-cancer]
#sharpen=5

View File

@@ -0,0 +1 @@
export COGL_DRIVER=gles2

View File

@@ -0,0 +1,74 @@
export GST_GL_API=gles2
export GST_GL_PLATFORM=egl
export GST_DEBUG_NO_COLOR=1
export GST_INSPECT_NO_COLORS=1
# Skip vstride aligning, which is not required when using RKVENC.
# export GST_MPP_ENC_UNALIGNED_VSTRIDE=1
# Convert to NV12(using RGA) when output format is NV12_10.
# export GST_MPP_DEC_DISABLE_NV12_10=1
# Convert to NV12(using RGA) when output format is not NV12.
# export GST_MPP_VIDEODEC_DEFAULT_FORMAT=NV12
# Try to use ARM AFBC to get better performance, but not work for all sinks.
# export GST_MPP_VIDEODEC_DEFAULT_ARM_AFBC=1
# Use below env variables to configure kmssink plane ZPOS.
# export KMSSINK_PLANE_ZPOS=0
# export KMSSINK_PLANE_ON_TOP=1
# export KMSSINK_PLANE_ON_BOTTOM=1
# There's an extra vsync waiting in kmssink, which is only needed for BSP 4.4
# kernel(due to ecac2033831e FROMLIST: drm: skip wait on vblank for set plane).
# Skip it would bring better performance with frame dropping.
# export KMSSINK_DISABLE_VSYNC=1
# The waylandsink is async by default, which allows frame dropping.
# export WAYLANDSINK_SYNC_FRAME=1
# Put video surface above UI window in waylandsink.
# export WAYLANDSINK_PLACE_ABOVE=1
# Preferred formats for V4L2
export GST_V4L2_PREFERRED_FOURCC=NV12:YU12:NV16:YUY2
# Preferred formats for videoconvert
export GST_VIDEO_CONVERT_PREFERRED_FORMAT=NV12:NV16:I420:YUY2
# Using libv4l2 for V4L2
export GST_V4L2_USE_LIBV4L2=1
# Default device for v4l2src
export GST_V4L2SRC_DEFAULT_DEVICE=/dev/video-camera0
# Available RK devices for v4l2src
export GST_V4L2SRC_RK_DEVICES=_mainpath:_selfpath:_bypass:_scale
# Max resolution for v4l2src
export GST_V4L2SRC_MAX_RESOLUTION=3840x2160
# Preferred sinks for playbin3(autoaudiosink/autovideosink) and playbin.
# export AUTOAUDIOSINK_PREFERRED=alsasink
# export AUTOVIDEOSINK_PREFERRED=waylandsink
# export PLAYBIN2_PREFERRED_AUDIOSINK=alsasink
# export PLAYBIN2_PREFERRED_VIDEOSINK=waylandsink
# Try RGA 2D accel in videoconvert, videoscale and videoflip.
# NOTE: Might not success, and might behave different from the official plugin.
# export GST_VIDEO_CONVERT_USE_RGA=1
# export GST_VIDEO_FLIP_USE_RGA=1
export GST_MPP_NO_RGA=1
# Default rotation for camerabin2:
# clockwise(90)|rotate-180|counterclockwise(270)|horizontal-flip|vertical-flip
# export CAMERA_FLIP=clockwise
if [ $CAMERA_FLIP ]; then
CAMERA_FILTER="videoflip method=$CAMERA_FLIP"
export CAMERABIN2_PREVIEW_FILTER=$CAMERA_FILTER
export CAMERABIN2_IMAGE_FILTER=$CAMERA_FILTER
export CAMERABIN2_VIDEO_FILTER=$CAMERA_FILTER
export CAMERABIN2_VIEWFINDER_FILTER=$CAMERA_FILTER
fi

View File

@@ -0,0 +1,13 @@
#!/bin/sh
# The env variables below can be overridden
# option: adb acm hid mtp ntb rndis uac1 uac2 ums uvc
export USB_FUNCS="adb"
export UMS_FILE=/userdata/ums_shared.img
export UMS_SIZE=256M
export UMS_FSTYPE=vfat
export UMS_MOUNT=0
export UMS_MOUNTPOINT=/mnt/ums
export UMS_RO=0

View File

@@ -0,0 +1,2 @@
export DISPLAY=${DISPLAY:-:0}
export TERM=${TERM:-linux}

View File

@@ -0,0 +1,35 @@
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
## Configuration file for PulseAudio clients. See pulse-client.conf(5) for
## more information. Default values are commented out. Use either ; or # for
## commenting.
; default-sink =
; default-source =
default-server = unix:/tmp/pulse-socket
; default-dbus-server =
; autospawn = yes
; daemon-binary = /usr/bin/pulseaudio
; extra-arguments = --log-target=syslog
; cookie-file =
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; auto-connect-localhost = no
; auto-connect-display = no

View File

@@ -0,0 +1,92 @@
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out. Use either ; or # for
## commenting.
; daemonize = no
; fail = yes
; allow-module-loading = yes
allow-exit = no
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no
; high-priority = yes
; nice-level = -11
; realtime-scheduling = yes
; realtime-priority = 5
exit-idle-time = -1
; scache-idle-time = 20
; dl-search-path = (depends on architecture)
; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa
; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0
; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; remixing-produce-lfe = no
; remixing-consume-lfe = no
; lfe-crossover-freq = 0
; flat-volumes = no
; rescue-streams = yes
; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000
; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right
; default-fragments = 4
; default-fragment-size-msec = 25
; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0

View File

@@ -0,0 +1,143 @@
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)
.fail
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties
load-module module-switch-on-connect blacklist=""
### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif
### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse-socket
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv
### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor
### Load additional modules from GSettings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Honour intended role device property
load-module module-intended-roles
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif
### Enable positioned event sounds
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
load-module module-role-cork
### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
### Make some devices default
#set-default-sink output
set-default-source alsa_input.platform-es8388-sound.HiFi__hw_rockchipes8388__source
set-default-sink alsa_output.platform-es8388-sound.HiFi__hw_rockchipes8388__sink

View File

@@ -0,0 +1 @@
SUBSYSTEM=="drm", ACTION=="change", ENV{HOTPLUG}=="1", RUN+="/sbin/start-stop-daemon -Sbox /usr/local/bin/drm-hotplug.sh"

View File

@@ -0,0 +1 @@
ACTION=="remove", SUBSYSTEM=="typec", RUN+="/usr/local/bin/typec_usb2.sh"

View File

@@ -0,0 +1 @@
ACTION=="add", SUBSYSTEM=="video4linux", ENV{ID_V4L_PRODUCT}=="*_mainpath", SYMLINK+="video-camera0"

View File

@@ -0,0 +1,61 @@
# do not edit this file, it will be overwritten on update
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
SUBSYSTEM!="sound", GOTO="pulseaudio_end"
ACTION!="change", GOTO="pulseaudio_end"
KERNEL!="card*", GOTO="pulseaudio_end"
SUBSYSTEMS=="usb", GOTO="pulseaudio_check_usb"
#ATTRS{id}=="rockchiphdmi0", ACTION=="change", ENV{PULSE_PROFILE_SET}="pulse-rockchip-hdmi0.conf"
#ATTRS{id}=="rockchiphdmi1", ACTION=="change", ENV{PULSE_PROFILE_SET}="pulse-rockchip-hdmi1.conf"
#ATTRS{id}=="rockchiprk168hd", ACTION=="change", ENV{PULSE_PROFILE_SET}="pulse-rockchip.conf"
#ATTRS{id}=="ROCKCHIPSPDIF", ACTION=="change", ENV{PULSE_PROFILE_SET}="pulse-rockchip.conf"
SUBSYSTEMS=="platform", DRIVERS=="thinkpad_acpi", ENV{PULSE_IGNORE}="1"
GOTO="pulseaudio_end"
LABEL="pulseaudio_check_usb"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="baff", ENV{PULSE_PROFILE_SET}="native-instruments-traktorkontrol-s4.conf"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="4711", ENV{PULSE_PROFILE_SET}="native-instruments-korecontroller.conf"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="041d", ENV{PULSE_PROFILE_SET}="native-instruments-traktor-audio2.conf"
# There appear to be two IDs in use for Traktor Audio 6 (or maybe 17cc:1011
# is just incorrect - 17cc:1010 has been verified to be correct at least
# for some hardware).
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1010", ENV{PULSE_PROFILE_SET}="native-instruments-traktor-audio6.conf"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1011", ENV{PULSE_PROFILE_SET}="native-instruments-traktor-audio6.conf"
ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1021", ENV{PULSE_PROFILE_SET}="native-instruments-traktor-audio10.conf"
ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2012", ENV{PULSE_PROFILE_SET}="maudio-fasttrack-pro.conf"
ATTRS{idVendor}=="045e", ATTRS{idProduct}=="02bb", ENV{PULSE_PROFILE_SET}="kinect-audio.conf"
ATTRS{idVendor}=="041e", ATTRS{idProduct}=="322c", ENV{PULSE_PROFILE_SET}="sb-omni-surround-5.1.conf"
ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="4014", ENV{PULSE_PROFILE_SET}="dell-dock-tb16-usb-audio.conf"
ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1260", ENV{PULSE_PROFILE_SET}="steelseries-arctis-usb-audio.conf"
# ID 1038:12ad is for the 2018 refresh of the Arctis 7.
# ID 1038:1294 is for Arctis Pro Wireless (which works with the Arctis 7
# configuration).
ATTRS{idVendor}=="1038", ATTRS{idProduct}=="12ad", ENV{PULSE_PROFILE_SET}="steelseries-arctis-usb-audio.conf"
ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1294", ENV{PULSE_PROFILE_SET}="steelseries-arctis-usb-audio.conf"
ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="4987", ENV{PULSE_PROFILE_SET}="st2557-pc-usb-audio.conf"
# Sugon W330-H35A
ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="491b", ENV{PULSE_PROFILE_SET}="22d4-us-usb-audio.conf"
LABEL="pulseaudio_end"

View File

@@ -0,0 +1,20 @@
ACTION=="remove", GOTO="permissions_end"
# VPU devices
KERNEL=="avsd", MODE="0660", GROUP="video"
KERNEL=="vepu", MODE="0660", GROUP="video"
KERNEL=="h265e", MODE="0660", GROUP="video"
KERNEL=="rkvdec", MODE="0660", GROUP="video"
KERNEL=="rkvenc", MODE="0660", GROUP="video"
KERNEL=="mpp_service", MODE="0660", GROUP="video"
KERNEL=="vpu[_-]service", MODE="0660", GROUP="video"
KERNEL=="hevc[_-]service", MODE="0660", GROUP="video"
# RGA device
KERNEL=="rga", MODE="0660", GROUP="video"
# MALI devices (/dev/mali for mali400)
KERNEL=="mali*", MODE="0660", GROUP="video"
LABEL="permissions_end"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View File

@@ -0,0 +1,80 @@
person
bicycle
car
motorcycle
airplane
bus
train
truck
boat
traffic light
fire hydrant
stop sign
parking meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
backpack
umbrella
handbag
tie
suitcase
frisbee
skis
snowboard
sports ball
kite
baseball bat
baseball glove
skateboard
surfboard
tennis racket
bottle
wine glass
cup
fork
knife
spoon
bowl
banana
apple
sandwich
orange
broccoli
carrot
hot dog
pizza
donut
cake
chair
couch
potted plant
bed
dining table
toilet
tv
laptop
mouse
remote
keyboard
cell phone
microwave
oven
toaster
sink
refrigerator
book
clock
vase
scissors
teddy bear
hair drier
toothbrush

Binary file not shown.

View File

@@ -0,0 +1,3 @@
#!/bin/bash
sudo ./rknn_yolov5_demo ./model/RK356X/yolov5s-640-640.rknn ./model/bus.jpg

Binary file not shown.

View File

@@ -0,0 +1,44 @@
#!/bin/bash
killall brcm_patchram_plus1
echo 0 > /sys/class/rfkill/rfkill0/state
sleep 2
echo 1 > /sys/class/rfkill/rfkill0/state
sleep 2
COMPATIBLE=$(cat /proc/device-tree/compatible)
if [[ $(expr $COMPATIBLE : ".*rk3588") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS8 &
hciconfig hci0 up
sleep 1
elif [[ $(expr $COMPATIBLE : ".*rk3568") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS8 &
hciconfig hci0 up
sleep 1
elif [[ $(expr $COMPATIBLE : ".*rk3566") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS0 &
hciconfig hci0 up
sleep 1
elif [[ $(expr $COMPATIBLE : ".*rk3399") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS0 &
hciconfig hci0 up
sleep 1
elif [[ $(expr $COMPATIBLE : ".*rk3288") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS0 &
hciconfig hci0 up
sleep 1
elif [[ $(expr $COMPATIBLE : ".*rk3326") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS1 &
hciconfig hci0 up
sleep 1
elif [[ $(expr $COMPATIBLE : ".*px30") -ne 0 ]]; then
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS1 &
hciconfig hci0 up
sleep 1
else
brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/ /dev/ttyS0 &
hciconfig hci0 up
sleep 1
fi

View File

@@ -0,0 +1,5 @@
#!/bin/sh
killall start_rknn.sh > /dev/null 2>&1
killall rknn_server > /dev/null 2>&1
start_rknn.sh &

Binary file not shown.

BIN
external/packages/bsp/rk356x/usr/bin/rknn_demo vendored Executable file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,7 @@
#!/bin/sh
while true
do
sleep 1
rknn_server #>/dev/null 2>&1
done

View File

@@ -0,0 +1,25 @@
#! /bin/sh
sleep 1
dev_path=/sys$1
state=`cat ${dev_path}/state`
if [ "$state"x != "config"x ] ; then
UDC=`ls /sys/class/udc/| awk '{print $1}'`
echo $UDC > /sys/kernel/config/usb_gadget/rockchip/UDC
functions=`cat /sys/kernel/config/usb_gadget/rockchip/configs/b.1/strings/0x409/configuration`
# if no "_" string to "cut" command, it will set the full string to output.
# add "_" to string functions avoiding no "_" case
i=2
functions=_${functions}
tmp=`echo $functions | cut -d _ -f $i`
until [ -z "$tmp" ]; do
if [ "$tmp" == "mtp" ]; then
mtp-server&
break
fi
i=`expr $i + 1`
tmp=`echo $functions | cut -d _ -f $i`
done
fi

620
external/packages/bsp/rk356x/usr/bin/usbdevice vendored Executable file
View File

@@ -0,0 +1,620 @@
#!/bin/sh -e
# Uncomment below to see more logs
# set -x
# Load default env variables from profiles
. /etc/profile
LOG_FILE=/tmp/usbdevice.log
USB_FUNCS_FILE=/tmp/.usbdevice
alias usb_enable='touch $USB_FUNCS_FILE'
alias usb_disable='rm -f $USB_FUNCS_FILE'
alias usb_is_enabled='[ -f $USB_FUNCS_FILE ]'
alias usb_set_started='echo $USB_FUNCS > $USB_FUNCS_FILE'
usb_get_started()
{
usb_is_enabled || return 0
cat $USB_FUNCS_FILE
}
CONFIGFS_DIR=/sys/kernel/config
USB_GROUP=rockchip
USB_STRINGS_ATTR=strings/0x409
USB_GADGET_DIR=$CONFIGFS_DIR/usb_gadget/$USB_GROUP
USB_GADGET_STRINGS_DIR=$USB_GADGET_DIR/$USB_STRINGS_ATTR
USB_FUNCTIONS_DIR=$USB_GADGET_DIR/functions
USB_CONFIGS_DIR=$USB_GADGET_DIR/configs/b.1
USB_CONFIGS_STRINGS_DIR=$USB_CONFIGS_DIR/$USB_STRINGS_ATTR
# Make sure that we own this session (pid equals sid)
if ! ps x -o cmd,pid,sid | grep -wq "$$$"; then
setsid $0 $@
exit $?
fi
# ---- helper functions
usb_msg()
{
logger -t $(basename $0) "[$$]: $@"
echo "[$(date +"%F %T")] $@"
}
usb_pid()
{
case $1 in
ums) echo 0x0000;;
mtp) echo 0x0001;;
uvc) echo 0x0005;;
adb) echo 0x0006;;
adb_mtp) echo 0x0011;;
adb_ums) echo 0x0018;;
adb_uvc) echo 0x0015;;
ntb_uvc) echo 0x0017;;
acm) echo 0x1005;;
*) echo 0x0019;;
esac
}
usb_instances()
{
for func in $@; do
VAR=$(echo $func | tr 'a-z' 'A-Z')_INSTANCES
eval echo "\${$VAR:-$func.gs0}"
done
}
usb_run_stage()
{
for f in $1_pre_$2_hook $1_$2 $1_post_$2_hook; do
type $f >/dev/null 2>/dev/null || continue
usb_msg "Run stage: $f"
eval $f || break
done
}
usb_wait_files()
{
for i in `seq 200`;do
fuser -s $@ 2>/dev/null && break
sleep .01
done
}
usb_release_files()
{
for i in `seq 200`;do
fuser -s -k $@ 2>/dev/null || break
sleep .01
done
}
# usage: usb_mount <src> <mountpoint> <options>
usb_mount()
{
mkdir -p $2
mountpoint -q $2 || mount $@
}
usb_umount()
{
mountpoint -q $1 || return 0
usb_release_files -m $1
umount $1
}
usb_symlink()
{
mkdir -p $1
[ -e $2 ] || ln -s $1 $2
}
usb_try_symlink()
{
usb_symlink $@ &>/dev/null || true
}
usb_write()
{
if echo "x$1" | grep -q "^x-"; then
OPTS=$1
shift
fi
FILE=$1
shift
if [ -r $FILE ] && [ "$(cat $FILE)" = "$@" ]; then
return 0
fi
echo $OPTS "$@" > $FILE
}
usb_try_write()
{
usb_write $@ &>/dev/null || true
}
usb_start_daemon()
{
NAME=$(echo $1 | sed "s#^[^ ]*/\([^ ]*\).*#\1#")
TAG_FILE=/tmp/.usb_$NAME
# Enable spawn
touch $TAG_FILE
# Already started
[ -z "$(usb_get_started)" ] || return 0
# Start and spawn background daemon
{
exec 3<&-
cd /
while usb_is_enabled; do
# Don't spawn after stopped
[ ! -f $TAG_FILE ] ||
start-stop-daemon -Sqx $@ || true
sleep .5
done
}&
}
usb_stop_daemon()
{
NAME=$(echo $1 | sed "s#^[^ ]*/\([^ ]*\).*#\1#")
TAG_FILE=/tmp/.usb_$NAME
# Stop and disable spawn
rm -f $TAG_FILE
start-stop-daemon -Kqox $@
}
usb_load_config()
{
USB_CONFIG_FILE=$(find /etc/ -name .usb_config | head -n 1)
[ -n "$USB_CONFIG_FILE" -a -r $USB_CONFIG_FILE ] || return 0
ums_parse()
{
grep "\<$1=" $USB_CONFIG_FILE | cut -d'=' -f2
}
UMS_FILE=$(ums_parse ums_block)
UMS_SIZE=$(ums_parse ums_block_size || echo 0)M
UMS_FSTYPE=$(ums_parse ums_block_type)
UMS_MOUNT=$([ "$(ums_parse ums_block_auto_mount)" != on ]; echo $?)
UMS_RO=$([ "$(ums_parse ums_block_ro)" != on ]; echo $?)
USB_FUNCS=$(grep "usb_.*_en" $USB_CONFIG_FILE | cut -d'_' -f2 | xargs)
}
# ---- adb
ADB_INSTANCES=${ADB_INSTANCES:-ffs.adb}
adb_prepare()
{
usb_mount adb /dev/usb-ffs/adb -o uid=2000,gid=2000 -t functionfs
usb_start_daemon /usr/bin/adbd
usb_wait_files -m /dev/usb-ffs/adb
}
adb_stop()
{
usb_stop_daemon /usr/bin/adbd
}
# ---- ntb
NTB_INSTANCES=${NTB_INSTANCES:-ffs.ntb}
ntb_prepare()
{
usb_mount ntb /dev/usb-ffs/ntb -o uid=2000,gid=2000 -t functionfs
}
# ---- uac1
uac1_prepare()
{
for f in $(find . -name "*_feature_unit"); do
echo 1 >$f
done
}
# ---- uac2
uac2_prepare()
{
uac1_prepare
}
# ---- mtp
mtp_prepare()
{
echo "MTP" > os_desc/interface.MTP/compatible_id
echo 1 > $USB_GADGET_DIR/os_desc/use
}
mtp_start()
{
usb_start_daemon /usr/bin/mtp-server
usb_wait_files /dev/mtp_usb
}
mtp_stop()
{
usb_stop_daemon /usr/bin/mtp-server
usb_release_files /dev/mtp_usb
echo 0 > $USB_GADGET_DIR/os_desc/use
}
# ---- acm
ACM_INSTANCES=${ACM_INSTANCES:-acm.gs6}
# ---- rndis
# Nothing special
# ---- uvc
UVC_INSTANCES=${UVC_INSTANCES:-uvc.gs6}
uvc_add_yuyv()
{
WIDTH=$(echo $1 | cut -d'x' -f1)
HEIGHT=$(echo $1 | cut -d'x' -f2)
DIR=${HEIGHT}p
[ ! -d $DIR ] || return 0
mkdir -p $DIR
echo $WIDTH > $DIR/wWidth
echo $HEIGHT > $DIR/wHeight
echo 333333 > $DIR/dwDefaultFrameInterval
echo $((WIDTH * HEIGHT * 20)) > $DIR/dwMinBitRate
echo $((WIDTH * HEIGHT * 20)) > $DIR/dwMaxBitRate
echo $((WIDTH * HEIGHT * 2)) > $DIR/dwMaxVideoFrameBufferSize
echo -e "333333\n666666\n1000000\n2000000" > $DIR/dwFrameInterval
}
uvc_add_mjpeg()
{
WIDTH=$(echo $1 | cut -d'x' -f1)
HEIGHT=$(echo $1 | cut -d'x' -f2)
DIR=${HEIGHT}p
[ ! -d $DIR ] || return 0
mkdir -p $DIR
echo $WIDTH > $DIR/wWidth
echo $HEIGHT > $DIR/wHeight
echo 333333 > $DIR/dwDefaultFrameInterval
echo $((WIDTH * HEIGHT * 20)) > $DIR/dwMinBitRate
echo $((WIDTH * HEIGHT * 20)) > $DIR/dwMaxBitRate
echo $((WIDTH * HEIGHT * 2)) > $DIR/dwMaxVideoFrameBufferSize
echo -e "333333\n666666\n1000000\n2000000" > $DIR/dwFrameInterval
}
uvc_add_h264()
{
WIDTH=$(echo $1 | cut -d'x' -f1)
HEIGHT=$(echo $1 | cut -d'x' -f2)
DIR=${HEIGHT}p
[ ! -d $DIR ] || return 0
mkdir -p $DIR
echo $WIDTH > $DIR/wWidth
echo $HEIGHT > $DIR/wHeight
echo 333333 > $DIR/dwDefaultFrameInterval
echo $((WIDTH * HEIGHT * 10)) > $DIR/dwMinBitRate
echo $((WIDTH * HEIGHT * 10)) > $DIR/dwMaxBitRate
echo -e "333333\n666666\n1000000\n2000000" > $DIR/dwFrameInterval
}
uvc_support_resolutions()
{
case ${1:-yuyv} in
yuyv) echo "640x480 1280x720";;
mjpeg) echo "640x480 1280x720 1920x1080 2560x1440 2592x1944";;
h264) echo "640x480 1280x720 1920x1080";;
esac
}
uvc_prepare()
{
UVC_DIR=$(pwd)
usb_symlink $UVC_DIR/control/header/h $UVC_DIR/control/class/fs/h
usb_symlink $UVC_DIR/control/header/h $UVC_DIR/control/class/ss/h
usb_symlink $UVC_DIR/streaming/header/h $UVC_DIR/streaming/class/fs/h
usb_symlink $UVC_DIR/streaming/header/h $UVC_DIR/streaming/class/hs/h
usb_symlink $UVC_DIR/streaming/header/h $UVC_DIR/streaming/class/ss/h
UVC_YUYV_RES=$(uvc_support_resolutions yuyv)
if [ -n "$UVC_YUYV_RES" ]; then
usb_try_symlink $UVC_DIR/streaming/uncompressed/u \
$UVC_DIR/streaming/header/h/u
cd $UVC_DIR/streaming/uncompressed/u
for res in $UVC_YUYV_RES; do
uvc_add_yuyv $res
done
fi
UVC_MJPEG_RES=$(uvc_support_resolutions mjpeg)
if [ -n "$UVC_MJPEG_RES" ]; then
usb_try_symlink $UVC_DIR/streaming/mjpeg/m \
$UVC_DIR/streaming/header/h/m
cd $UVC_DIR/streaming/mjpeg/m
for res in $UVC_MJPEG_RES; do
uvc_add_mjpeg $res
done
fi
UVC_H264_RES=$(uvc_support_resolutions h264)
if [ -n "$UVC_H264_RES" ]; then
usb_try_symlink $UVC_DIR/streaming/framebased/f \
$UVC_DIR/streaming/header/h/f
cd $UVC_DIR/streaming/framebased/f
for res in $UVC_H264_RES; do
uvc_add_h264 $res
done
usb_try_write -ne guidFormat "\\x48\\x32\\x36\\x34\\x00\\x00\\x10\\x00\\x80\\x00\\x00\\xaa\\x00\\x38\\x9b\\x71"
fi
}
# TODO: Start UVC daemon in uvc_start
# TODO: Stop UVC daemon in uvc_stop
# ---- hid
HID_INSTANCES=${HID_INSTANCES:-hid.usb0}
hid_prepare()
{
echo 1 > protocol
echo 1 > subclass
echo 8 > report_length
echo -ne "\\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0" \
> report_desc
}
# ---- ums
UMS_INSTANCES=${UMS_INSTANCES:-mass_storage.0}
ums_prepare()
{
if [ ! -f $UMS_FILE ]; then
usb_msg "Formating $UMS_FILE($UMS_SIZE) to $UMS_FSTYPE"
truncate -s $UMS_SIZE $UMS_FILE
mkfs.$UMS_FSTYPE $UMS_FILE || \
usb_msg "Failed to format $UMS_FILE to $UMS_FSTYPE"
fi
}
ums_stop()
{
echo > lun.0/file
usb_umount $UMS_MOUNTPOINT
[ "$UMS_MOUNT" -eq 1 ] || return 0
# Try auto fstype firstly
usb_mount $UMS_FILE $UMS_MOUNTPOINT -o sync 2>/dev/null || \
usb_mount $UMS_FILE $UMS_MOUNTPOINT -o sync -t $UMS_FSTYPE
}
ums_start()
{
case "$USB_STATE" in
CONFIGURED)
if [ "$(cat lun.0/ro)" != "$UMS_RO" ]; then
echo > lun.0/file
echo $UMS_RO > lun.0/ro
fi
if ! grep -wq $UMS_FILE lun.0/file; then
usb_umount $UMS_MOUNTPOINT
echo $UMS_FILE > lun.0/file
fi
;;
DISCONNECTED)
ums_stop
;;
esac
}
# ---- global
usb_init()
{
usb_msg "Initializing"
echo 0x2207 > idVendor
echo 0x0310 > bcdDevice
echo 0x0200 > bcdUSB
mkdir -p $USB_GADGET_STRINGS_DIR
SERIAL=$(grep Serial /proc/cpuinfo | cut -d':' -f2)
echo ${SERIAL:-0123456789ABCDEF} > $USB_GADGET_STRINGS_DIR/serialnumber
echo $USB_GROUP > $USB_GADGET_STRINGS_DIR/manufacturer
echo "rk3xxx" > $USB_GADGET_STRINGS_DIR/product
mkdir -p $USB_CONFIGS_DIR
echo 500 > $USB_CONFIGS_DIR/MaxPower
echo 0x1 > os_desc/b_vendor_code
echo MSFT100 > os_desc/qw_sign
ln -s $USB_CONFIGS_DIR os_desc/
mkdir -p $USB_CONFIGS_STRINGS_DIR
}
usb_funcs_grep()
{
echo $USB_FUNCS | xargs -n 1 | sort | uniq | grep $@ || true
}
usb_funcs_sort()
{
{
for func in $@; do
usb_funcs_grep -E $func
done
usb_funcs_grep -vE $(echo $@ | tr ' ' '|')
} | uniq | xargs
}
usb_prepare()
{
usb_load_config
# Allow function/variable overriding
[ -d /etc/usbdevice.d ] && . /etc/usbdevice.d/*
UMS_FILE=${UMS_FILE:-/userdata/ums_shared.img}
UMS_SIZE=${UMS_SIZE:-256M}
UMS_FSTYPE=${UMS_FSTYPE:-vfat}
UMS_MOUNT=${UMS_MOUNT:-0}
UMS_MOUNTPOINT=${UMS_MOUNTPOINT:-/mnt/ums}
UMS_RO=${UMS_RO:-0}
# Put RNDIS & UAC & UVC at first (required by kernel)
USB_FUNCS=$(usb_funcs_sort rndis uac uvc)
if [ ! -d $USB_GADGET_DIR ]; then
mountpoint -q $CONFIGFS_DIR || \
mount -t configfs none $CONFIGFS_DIR
mkdir -p $USB_GADGET_DIR
cd $USB_GADGET_DIR
# Global initialize
usb_run_stage usb init
fi
USB_STATE=$(cat /sys/class/android_usb/android0/state)
USB_UDC=$(ls /sys/class/udc/ | head -n 1)
# Parse started USB functions
OLD_FUNCS=$(usb_get_started)
# Stop old USB functions when USB functions changed
if [ -n "$OLD_FUNCS" ] && [ "$OLD_FUNCS" != "$USB_FUNCS" ]; then
usb_msg "Functions changed $OLD_FUNCS -> $USB_FUNCS"
usb_stop
fi
}
usb_start()
{
usb_msg "Starting functions: $USB_FUNCS"
echo $USB_FUNCS | tr ' ' '_' > $USB_CONFIGS_STRINGS_DIR/configuration
for func in $USB_FUNCS; do
for instance in $(usb_instances $func); do
usb_msg "Preparing instance: $instance"
if ! mkdir -p $USB_FUNCTIONS_DIR/$instance 2>/dev/null; then
usb_msg "Failed to create instance: $instance"
continue
fi
cd $USB_FUNCTIONS_DIR/$instance &>/dev/null || continue
usb_run_stage $func prepare
# Make symlink after prepared (required by UVC)
usb_symlink $USB_FUNCTIONS_DIR/$instance \
$USB_CONFIGS_DIR/f-$instance
done
done
usb_write $USB_GADGET_DIR/UDC $USB_UDC
for func in $USB_FUNCS; do
for instance in $(usb_instances $func); do
cd $USB_FUNCTIONS_DIR/$instance &>/dev/null || continue
usb_msg "Starting instance: $instance"
usb_run_stage $func start
done
done
# Store started functions
usb_set_started
}
usb_stop()
{
if [ -n "$OLD_FUNCS" ]; then
usb_msg "Stopping functions: $OLD_FUNCS"
fi
usb_write $USB_GADGET_DIR/UDC ""
for func in $USB_FUNCS; do
for instance in $(usb_instances $func); do
cd $USB_FUNCTIONS_DIR/$instance &>/dev/null || continue
usb_msg "Stopping instance: $instance"
usb_run_stage $func stop
done
done
rm -f $USB_CONFIGS_DIR/f-*
# Clear functions to avoid stopping them again
unset OLD_FUNCS
}
usb_restart()
{
usb_run_stage usb stop
usb_run_stage usb start
}
ACTION=${1:-update}
if [ "$ACTION" = update ]; then
usb_is_enabled || exit 0
fi
# Lock it
exec 3<$0
flock -x 3
echo "Starting $0 ${ACTION}, log saved to $LOG_FILE"
# Redirect outputs to log file
exec >>$LOG_FILE 2>&1
usb_msg "Handling ${ACTION} request"
usb_run_stage usb prepare
case "$ACTION" in
start|update)
usb_enable
usb_run_stage usb start
;;
stop)
usb_disable
usb_run_stage usb stop
;;
restart)
usb_enable
usb_run_stage usb restart
;;
*)
echo "Usage: usbdevice [start|stop|restart|update]" >&2
;;
esac
usb_msg "Done $ACTION request"
echo
# Unlock it
flock -u 3

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,5 @@
[Service]
ExecStartPre=/bin/sh -c 'exec /bin/sleep 10'
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin orangepi %I $TERM
Type=idle

View File

@@ -0,0 +1,5 @@
[Service]
ExecStartPre=/bin/sh -c 'exec /bin/sleep 10'
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin orangepi %I $TERM
Type=idle

View File

@@ -0,0 +1,12 @@
[Unit]
Description=Manage USB device functions
DefaultDependencies=no
After=local-fs.target
[Service]
Type=forking
ExecStart=/usr/bin/usbdevice start
ExecStop=/usr/bin/usbdevice stop
[Install]
WantedBy=sysinit.target

View File

@@ -0,0 +1,29 @@
# rockchip internal storage links: /dev/disk/by-partlabel and /dev/block/by-name
ACTION=="remove", GOTO="rk_internal_storage_end"
ENV{UDEV_DISABLE_ROCKCHIP_STORAGE_RULES_FLAG}=="1", GOTO="rk_internal_storage_end"
SUBSYSTEM!="block|mtd", GOTO="rk_internal_storage_end"
KERNEL!="mmcblk*[0-9]|rkflash*|rknand*|mtd*|nvme*", GOTO="rk_internal_storage_end"
# ignore partitions that span the entire disk
TEST=="whole_disk", GOTO="rk_internal_storage_end"
# for partitions import parent information
ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
# for rknand parameter partition name
ENV{DEVNAME}=="/dev/rknand*", ENV{DEVTYPE}=="disk", ENV{DEVPATH}=="/devices/virtual/block/rknand", ENV{ID_RKNAND_PART_NAME}=""
# for rkflash gpt partition name by-partlabel and /dev/block/by-name link
ENV{DEVTYPE}=="partition", ENV{PARTNAME}=="?*", SYMLINK+="disk/by-partlabel/$env{PARTNAME}", SYMLINK+="block/by-name/$env{PARTNAME}"
# for emmc gpt partition name /dev/block/by-name link
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="block/by-name/$env{ID_PART_ENTRY_NAME}"
# for mtd partition name /dev/block/by-name link
ENV{DEVNAME}=="/dev/mtd*", ENV{DEVTYPE}=="mtd", ATTRS{name}=="?*", SYMLINK+="block/by-name/$attr{name}"
# for nvme partition name /dev/block/by-name link
ENV{DEVNAME}=="/dev/nvme*", ENV{DEVTYPE}=="disk", ATTRS{name}=="?*", SYMLINK+="block/by-name/$attr{name}"
LABEL="rk_internal_storage_end"

View File

@@ -0,0 +1 @@
SUBSYSTEM=="android_usb",ACTION=="change",RUN+="/usr/bin/usbdevice update"

View File

@@ -0,0 +1,29 @@
#!/bin/bash
if [[ -z $1 ]]; then
user=root
else
user=$1
fi
[[ -d /lib/systemd/system/getty@.service.d/ ]] && rm /lib/systemd/system/getty@.service.d/ -rf
[[ -f /lib/systemd/system/serial-getty@.service.d/override.conf ]] && rm /lib/systemd/system/serial-getty@.service.d/override.conf -f
[[ -d /etc/systemd/system/getty@.service.d/ ]] && rm /etc/systemd/system/getty@.service.d/ -rf
[[ -f /etc/systemd/system/serial-getty@.service.d/override.conf ]] && rm /etc/systemd/system/serial-getty@.service.d/override.conf -f
if [[ $1 == "-d" ]]; then
exit
fi
mkdir -p /etc/systemd/system/getty@.service.d/
mkdir -p /etc/systemd/system/serial-getty@.service.d/
cat <<-EOF > \
/etc/systemd/system/serial-getty@.service.d/override.conf
[Service]
ExecStartPre=/bin/sh -c 'exec /bin/sleep 10'
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin ${user} %I \$TERM
Type=idle
EOF
cp /etc/systemd/system/serial-getty@.service.d/override.conf \
/etc/systemd/system/getty@.service.d/override.conf

Binary file not shown.

View File

@@ -0,0 +1,3 @@
#!/bin/bash
cat /proc/cpuinfo | grep "Serial"

View File

@@ -0,0 +1,20 @@
#!/bin/bash
sudo apt-get update
sudo apt-get install -y build-essential zlib1g-dev \
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev curl libbz2-dev
version=3.9.9
[[ -n $1 ]] && version=$1
# optimize build time with 100% CPU usage
CPUS=$(grep -c 'processor' /proc/cpuinfo)
CTHREADS="-j$((CPUS + CPUS/2))"
wget https://cdn.npmmirror.com/binaries/python/$version/Python-${version}.tgz
tar xvf Python-${version}.tgz
cd Python-${version}
./configure --enable-optimizations
make ${CTHREADS}
sudo make altinstall

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
#!/bin/bash
if [[ -z $1 ]]; then
user=root
else
user=$1
fi
sudo sed -i '/autologin-user=/d' /etc/lightdm/lightdm.conf.d/22-orangepi-autologin.conf
sudo echo autologin-user=${user} >> /etc/lightdm/lightdm.conf.d/22-orangepi-autologin.conf
sudo sed -i 's/root/anything/' /etc/pam.d/lightdm-autologin

View File

@@ -0,0 +1,5 @@
#!/bin/bash
sudo sed -i \
"s/autologin-user=.*/#&/" \
/etc/lightdm/lightdm.conf.d/22-orangepi-autologin.conf

View File

@@ -0,0 +1,77 @@
#!/bin/bash -x
export DISPLAY=${DISPLAY:-:0}
function prepare_env() {
# Try to figure out XAUTHORITY and DISPLAY
for pid in $(pgrep X 2>/dev/null || \
ls /proc|grep -ow "[0-9]*"|sort -rn); do
PROC_DIR=/proc/$pid
# Filter out non-X processes
readlink $PROC_DIR/exe|grep -qwE "X$|Xorg$" || continue
# Parse auth file and display from cmd args
export XAUTHORITY=$(cat $PROC_DIR/cmdline|tr '\0' '\n'| \
grep -w "\-auth" -A 1|tail -1)
export DISPLAY=$(cat $PROC_DIR/cmdline|tr '\0' '\n'| \
grep -w "^:.*" || echo ":0")
logger -t $0 "Found auth: $XAUTHORITY for dpy: $DISPLAY"
return
done
}
function xrandr_wrapper() {
xrandr --screen ${SCREEN:-0} $@
}
if ! xdpyinfo &>/dev/null; then
# Try to setup env
prepare_env
if ! xdpyinfo &>/dev/null; then
# Try to switch to an authorized user
for XUSER in root $(users);do
sudo -u $XUSER xdpyinfo &>/dev/null || continue
logger -t $0 "Switch to user: $XUSER"
sudo -u $XUSER $0; exit 0
done
logger -t $0 "Unable to contact Xserver!"
exit 0
fi
fi
TMP=$(mktemp)
SCREENS=$(xdpyinfo|grep screens|cut -d':' -f2)
for SCREEN in $(seq 0 ${SCREENS:-0}); do
# Get monitors and current mode info
xrandr_wrapper 2>&1|grep -oE "^.*connected|^.*\*"|tee $TMP
# Result:
# eDP-1 connected
# 1536x2048 59.99*
# DP-1 disconnected
# HDMI-1 connected
# 1920x1080 60.00*
#
# "*" means valid current mode.
# Make sure every connected monitors been enabled with a valid mode.
for MONITOR in $(grep -w connected $TMP|cut -d' ' -f1); do
# Find monitors without a valid current mode
if ! grep -w $MONITOR $TMP -A 1|grep "\*"; then
# Ether disabled or wrongly configured
xrandr_wrapper --output $MONITOR --auto
logger -t $0 "Output $MONITOR enabled."
fi
done
done
rm -rf $TMP
exit 0

View File

@@ -0,0 +1,4 @@
#!/bin/bash
sudo systemctl enable docker.service
sudo systemctl start docker.service

View File

@@ -0,0 +1,8 @@
#!/bin/bash
mmc_dev=$(ls -d -1 /dev/mmcblk* | grep -w 'mmcblk[0-9]' | cut -d '/' -f3)
sed -i "s/^rootdev=.*/rootdev=\/dev\/${mmc_dev}p2/" /boot/orangepiEnv.txt
sed -i '/boot/d' /etc/fstab
echo "/dev/${mmc_dev}p1 /boot vfat defaults 0 2" >> /etc/fstab
echo "Done"

View File

@@ -0,0 +1,9 @@
#!/bin/bash
while true; do
gpu_load=$(cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/load | cut -d "@" -f 1)
echo $(date "+%H:%M:%S") : GPU load is : ${gpu_load}%
sleep 1
done

View File

@@ -0,0 +1,4 @@
#!/bin/bash
wget -O install.sh \
http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

View File

@@ -0,0 +1,17 @@
#!/bin/bash
distributor_id=$(lsb_release -is)
distributor_id=${distributor_id,}
sudo apt-get remove -y docker docker-engine docker-ce docker.io
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://repo.huaweicloud.com/docker-ce/linux/${distributor_id}/gpg | sudo apt-key add -
echo "deb [arch=$(dpkg --print-architecture)] https://repo.huaweicloud.com/docker-ce/linux/${distributor_id} $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo groupadd docker
sudo usermod -aG docker $USER

View File

@@ -0,0 +1,19 @@
#!/bin/bash
release=$(lsb_release -cs)
sudo apt update
if [[ $release =~ focal|bionic|buster ]]; then
sudo apt-get -y install qt5-default qttools5-dev-tools qtbase5-doc-html qt5-assistant qt5-doc
elif [[ $release =~ bullseye|jammy ]]; then
sudo apt-get -y install qttools5-dev-tools qtbase5-doc-html qt5-assistant qt5-doc qt5-qmake qt5-qmake-bin
else
echo "Unsupported system!"
exit
fi
sudo apt-get -y install qtcreator qmlscene gdb qtdeclarative5-dev qtbase5-examples cmake
sudo chown orangepi:orangepi /usr/lib/aarch64-linux-gnu/qt5/examples -R
qmake -v

View File

@@ -0,0 +1,74 @@
#!/bin/bash
#mirror_url=http://mirrors.ustc.edu.cn
mirror_url=https://repo.huaweicloud.com
if [[ -n $1 && $1 =~ ros1|ros2 ]]; then
version=$1
else
echo "usage: install_ros.sh ros1/ros2"
exit
fi
release=$(lsb_release -cs)
if [[ $version == "ros1" && $release =~ focal ]]; then
[[ -f /etc/apt/sources.list.d/ros-latest.list ]] && sudo rm /etc/apt/sources.list.d/ros-latest.list
sudo sh -c "echo deb ${mirror_url}/ros/ubuntu $(lsb_release -sc) main > /etc/apt/sources.list.d/ros1.list"
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install -y ros-noetic-desktop-full
sudo sh -c 'echo "source /opt/ros/noetic/setup.bash" >> /root/.bashrc'
echo "source /opt/ros/noetic/setup.bash" >> /home/orangepi/.bashrc
sudo apt install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo sh -c 'echo "151.101.84.133 raw.githubusercontent.com" >> /etc/hosts'
source /opt/ros/noetic/setup.bash
sudo rosdep init
rosdep update
exit
fi
if [[ $version == "ros2" && $release =~ focal ]]; then
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
echo "deb [arch=$(dpkg --print-architecture)] ${mirror_url}/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt install -y ros-galactic-desktop
sudo apt install -y ros-dev-tools
sudo sh -c 'echo "source /opt/ros/galactic/setup.bash" >> /root/.bashrc'
echo "source /opt/ros/galactic/setup.bash" >> /home/orangepi/.bashrc
source /opt/ros/galactic/setup.bash
ros2 -h
exit
fi
if [[ $version == "ros2" && $release =~ jammy ]]; then
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
echo "deb [arch=$(dpkg --print-architecture)] ${mirror_url}/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt install -y ros-humble-desktop
sudo apt install -y ros-dev-tools
sudo sh -c 'echo "source /opt/ros/humble/setup.bash" >> /root/.bashrc'
echo "source /opt/ros/humble/setup.bash" >> /home/orangepi/.bashrc
source /opt/ros/humble/setup.bash
ros2 -h
exit
fi
echo "Unsupported System!"

BIN
external/packages/bsp/rk356x/usr/local/bin/io vendored Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
#!/bin/bash
sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server

View File

@@ -0,0 +1,4 @@
#!/bin/bash
sudo bash -c "echo device > /sys/kernel/debug/usb/fc000000.usb/mode"
sudo systemctl restart usbdevice

View File

@@ -0,0 +1,37 @@
#!/bin/bash
if [[ -n $1 && $1 =~ left|right|inverted|none ]]; then
type=$1
else
echo "usage: set_lcd_rotate.sh [left|right|inverted|none]"
exit
fi
case $1 in
left)
rotate=3
matrix="0 -1 1 1 0 0 0 0 1"
;;
right)
rotate=1
matrix="0 1 0 -1 0 1 0 0 1"
;;
inverted)
rotate=2
matrix="-1 0 1 0 -1 1 0 0 1"
;;
none)
rotate=0
matrix="1 0 0 0 1 0 0 0 1"
;;
esac
sudo sed -i '/TransformationMatrix/d' /usr/share/X11/xorg.conf.d/40-libinput.conf
sudo sed -i "/libinput touchscreen catchall/a Option \"TransformationMatrix\" \"${matrix}\"" /usr/share/X11/xorg.conf.d/40-libinput.conf
sudo sed -i '/extraargs=fbcon=rotate/d' /boot/orangepiEnv.txt
sudo bash -c "echo extraargs=fbcon=rotate:${rotate} >> /boot/orangepiEnv.txt"
sudo sed -i 's/bootlogo=true/bootlogo=false/g' /boot/orangepiEnv.txt
sudo sync
sudo reboot

View File

@@ -0,0 +1,21 @@
#!/bin/bash
[[ -d ~/.vnc ]] && rm -rf ~/.vnc
vncserver
vncserver -kill :1
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
cat <<-EOF > \
~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
EOF
chmod +x ~/.vnc/xstartup
vncserver
sudo chown orangepi:root .Xauthority
sync

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,34 @@
#!/bin/bash
export DISPLAY=:0.0
device_id0=$(v4l2-ctl --list-devices | grep -A1 rkisp-vir0 |grep -v rkisp-vir0 |awk -F ' ' '{print $NF}')
device_id1=$(v4l2-ctl --list-devices | grep -A1 rkisp-vir1 |grep -v rkisp-vir1 |awk -F ' ' '{print $NF}')
echo "Start MIPI CSI Camera Preview!"
if [[ ! -z $device_id0 ]]; then
su root -c "gst-launch-1.0 v4l2src device=${device_id0} io-mode=4 ! videoconvert \
! video/x-raw,format=NV12,width=1280,height=720 \
! autovideosink 2>&1 > /dev/null &"
fi
if [[ ! -z $device_id1 ]]; then
su root -c "gst-launch-1.0 v4l2src device=${device_id1} io-mode=4 ! videoconvert \
! video/x-raw,format=NV12,width=640,height=480 \
! autovideosink 2>&1 > /dev/null &"
fi
echo "[Ctrl + C] exit"
while true
do
sleep 10
done
trap 'onCtrlC' INT
function onCtrlC () {
echo 'Ctrl+C is captured'
killall gst-launch-1.0
exit 0
}

View File

@@ -0,0 +1,11 @@
#!/bin/bash
export DISPLAY=:0.0
#export GST_DEBUG=*:5
#export GST_DEBUG_FILE=/tmp/2.txt
# xv vo
while true
do
mpv --hwdec=rkmpp --vd-lavc-software-fallback=no --vo=xv /usr/local/test.mp4
done

View File

@@ -0,0 +1,14 @@
#!/bin/bash
export DISPLAY=:0.0
if [[ -z $1 ]]; then
video=/usr/local/test.mp4
else
video=$1
fi
while true
do
gst-play-1.0 $video --videosink=xvimagesink
done

View File

@@ -0,0 +1,43 @@
#!/bin/bash
if [[ -n $1 && $1 =~ main|headset ]]; then
type=$1
else
echo "usage: test_record.sh main/headset"
exit
fi
card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
if [[ $type == "main" ]]; then
tinymix -D 2 3 4
tinymix -D 2 4 2
tinymix -D 2 14 192
tinymix -D 2 16 0
tinymix -D 2 17 0
tinymix -D 2 31 1
tinymix -D 2 32 1
tinymix -D 2 33 1
else
tinymix -D 2 3 2
tinymix -D 2 4 1
tinymix -D 2 14 192
tinymix -D 2 16 0
tinymix -D 2 17 0
tinymix -D 2 31 0
tinymix -D 2 32 0
tinymix -D 2 33 0
fi
echo "Start recording: /tmp/test.wav"
arecord -D hw:${card},0 -d 5 -f cd -t wav /tmp/test.wav
echo "Start playing"
aplay /tmp/test.wav -D hw:1,0
aplay /tmp/test.wav -D hw:2,0
#aplay /tmp/test.wav -D hw:0,0

View File

@@ -0,0 +1,7 @@
#!/bin/sh
echo "Start RKNN_DEMO Camera Preview!"
echo performance | tee $(find /sys/ -name *governor)
sudo service lightdm stop
/usr/bin/npu_transfer_proxy&
rknn_demo

View File

@@ -0,0 +1,29 @@
#!/bin/bash
if [[ -f /opt/ros/noetic/setup.bash ]]; then
source /opt/ros/noetic/setup.bash
roscore &
sleep 5
rosrun turtlesim turtlesim_node &
rosrun turtlesim turtle_teleop_key
fi
if [[ -f /opt/ros/galactic/setup.bash ]]; then
source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_cpp talker &
ros2 run demo_nodes_py listener
fi
if [[ -f /opt/ros/humble/setup.bash ]]; then
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker &
ros2 run demo_nodes_py listener
fi

View File

@@ -0,0 +1,13 @@
#!/bin/sh
export DISPLAY=:0.0
#export GST_DEBUG=*:5
#export GST_DEBUG_FILE=/tmp/2.txt
# server:
# vlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 \
# :v4l2-height=480 --sout="#transcode{vcodec=h264,vb=800,scale=1,\
# acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:8554/}" -I dummy
gst-launch-1.0 rtspsrc location=rtsp://192.168.31.163:8554/ ! \
! rtph264depay ! h264parse ! mppvideodec ! rkximagesink sync=false

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More