Support RK3588S Orange Pi 5

This commit is contained in:
orangepi-xunlong
2022-12-02 19:51:41 +08:00
parent 564f03addc
commit 35069ec81c
128 changed files with 17176 additions and 258 deletions

1
.gitignore vendored
View File

@@ -36,6 +36,7 @@ external/cache/sources/oh-my-zsh
external/cache/sources/sunxi-tools
external/cache/sources/rkbin-tools
external/cache/sources/orangepi-test
external/cache/sources/rk3588_packages
external/cache/sources/rk-rootfs-build*
external/cache/sources/orangepi-firmware*
external/cache/sources/ffmpeg_kodi*

Binary file not shown.

View File

@@ -4,8 +4,8 @@ OBJECTS = mixer.o pcm.o
LIB = libtinyalsa.so
CC=gcc
all: $(LIB) tinyplay tinycap tinymix
cp tinyplay tinycap tinymix /usr/local/bin
all: $(LIB) tinyplay tinycap tinymix tinypcminfo
cp tinyplay tinycap tinymix tinypcminfo /usr/local/bin
cp libtinyalsa.so /usr/lib/
tinyplay: $(LIB) tinyplay.o

View File

@@ -92,7 +92,7 @@ static const char *format_lookup[] = {
/* Returns a human readable name for the format associated with bit_index,
* NULL if bit_index is not known.
*/
inline const char *pcm_get_format_name(unsigned bit_index)
char *pcm_get_format_name(unsigned bit_index)
{
return bit_index < ARRAY_SIZE(format_lookup) ? format_lookup[bit_index] : NULL;
}

14
external/config/boards/orangepi5.conf vendored Normal file
View File

@@ -0,0 +1,14 @@
# Rockchip RK3588s SoC
BOARD_NAME="Orange Pi 5"
BOARDFAMILY="rockchip-rk3588"
BOOTCONFIG="orangepi_5_defconfig"
KERNEL_TARGET="legacy"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588s-orangepi-5.dtb"
BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"
BOOT_SUPPORT_SPI="yes"
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
DISTRIB_TYPE_LEGACY="bullseye jammy"
BOOTFS_TYPE="fat"
REVISION="1.0.0"

View File

@@ -0,0 +1,71 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/orangepiEnv.txt to set supported parameters
#
setenv load_addr "0x9000000"
setenv overlay_error "false"
# default values
setenv rootdev "/dev/nvme0n1p1"
setenv verbosity "1"
setenv console "both"
setenv bootlogo "false"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv earlycon "off"
echo "Boot script loaded from ${devtype} ${devnum}"
#if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt
env import -t ${load_addr} ${filesize}
#fi
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.orangepi ${consoleargs}"; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
#if test "${overlay_error}" = "true"; then
# echo "Error applying DT overlays, restoring original DT"
# load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
#else
# if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr; then
# echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
# source ${load_addr}
# fi
# if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
# load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
# echo "Applying user provided fixup script (fixup.scr)"
# source ${load_addr}
# fi
#fi
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -26,7 +26,6 @@ linux-base
man-db
networkd-dispatcher
nfs-common
nfs-kernel-server
python3-distutils
python3-lib2to3
sudo

View File

@@ -26,6 +26,8 @@ libproc-processtable-perl
nfs-common
ntfs-3g
pciutils
plymouth
plymouth-themes
pv
qrencode
rfkill

View File

@@ -23,7 +23,6 @@ linux-base
man-db
networkd-dispatcher
nfs-common
nfs-kernel-server
python3-distutils
python3-lib2to3
selinux-policy-default

View File

@@ -25,6 +25,8 @@ libproc-processtable-perl
nfs-common
ntfs-3g
pciutils
plymouth
plymouth-themes
pv
qrencode
rfkill

View File

@@ -17,3 +17,4 @@ resolvconf
sysstat
wget
wireless-tools
wpasupplicant

View File

@@ -49,7 +49,6 @@ gtk2-engines-murrine
gtk2-engines-pixbuf
gvfs-backends
hplip
hunspell-en-us
inputattach
inxi
keyutils
@@ -77,10 +76,7 @@ mesa-utils
mousepad
mousetweaks
network-manager-gnome
network-manager-l2tp
network-manager-openconnect
network-manager-openvpn
network-manager-pptp
network-manager-ssh
network-manager-vpnc
numix-gtk-theme
@@ -120,6 +116,7 @@ xdg-user-dirs
xdg-user-dirs-gtk
xfce4
xfce4-notifyd
xfce4-power-manager
xfce4-screenshooter
xfce4-terminal
xfonts-100dpi
@@ -128,13 +125,9 @@ xfonts-base
xfonts-encodings
xfonts-scalable
xfonts-utils
xinit
xorg-docs-core
xscreensaver
xserver-xorg
xserver-xorg-video-fbdev
xterm
xtermcontrol
xtermset
xwallpaper
zip

View File

@@ -1 +1,9 @@
hexchat
pidgin
purple-discord
purple-lurch
purple-matrix
purple-mm-sms
purple-rocketchat
telegram-purple
telegram-desktop

View File

@@ -1,3 +1,4 @@
bleachbit
fbi
gparted
system-monitoring-center

View File

@@ -1,3 +1,4 @@
celluloid
eog
gimp
mpv

View File

@@ -1 +1,3 @@
remmina
remmina-plugin-vnc
remmina-plugin-rdp

View File

@@ -2,45 +2,28 @@ alsa-base
anacron
at-spi2-core
bubblewrap
colord
cups
dbus-x11
dictionaries-common
dmz-cursor-theme
eject
evolution-data-server
evolution-data-server-common
fonts-freefont-ttf
fonts-noto-cjk
fonts-noto-cjk-extra
fonts-ubuntu
fonts-ubuntu-console
fonts-urw-base35
foomatic-db-compressed-ppds
gconf2
gcr
gdebi
gdm3
genisoimage
geoclue-2.0
ghostscript
ghostscript-x
gir1.2-accountsservice-1.0
gir1.2-atspi-2.0
gir1.2-gck-1
gir1.2-gcr-3
gir1.2-gdesktopenums-3.0
gir1.2-gdm-1.0
gir1.2-geoclue-2.0
gir1.2-gnomebluetooth-1.0
gir1.2-gnomedesktop-3.0
gir1.2-goa-1.0
gir1.2-graphene-1.0
gir1.2-gweather-3.0
gir1.2-ibus-1.0
gir1.2-json-1.0
gir1.2-mutter-8
gir1.2-nm-1.0
gir1.2-nma-1.0
gir1.2-polkit-1.0
gir1.2-rsvg-2.0
gir1.2-snapd-1
gir1.2-soup-2.4
gir1.2-upowerglib-1.0
gist
gjs
gnome-control-center
gnome-desktop3-data
@@ -54,71 +37,35 @@ gnome-settings-daemon-common
gnome-shell
gnome-shell-common
gnome-shell-extension-appindicator
gnome-shell-extension-trash
gnome-system-monitor
gnome-terminal
gvfs-backends
hunspell-en-us
inputattach
libaccountsservice0
inxi
libasound2-plugins
libaspell15
libatk-adaptor
libcairo-gobject-perl
libcairo-perl
libcamel-1.2-63
libcue2
libdee-1.0-4
libebackend-1.2-10
libebook-1.2-20
libebook-contacts-1.2-3
libecal-2.0-1
libedata-book-1.2-26
libedata-cal-2.0-1
libedataserver-1.2-26
libedataserverui-1.2-3
libenchant-2-2
libexempi8
libexiv2-27
libextutils-depends-perl
libextutils-pkgconfig-perl
libfontenc1
libgck-1-0
libgcr-base-3-1
libgcr-ui-3-1
libgdata22
libgdata-common
libgdm1
libgeoclue-2-0
libgeocode-glib0
libgexiv2-2
libgjs0g
libglib-object-introspection-perl
libglib-perl
libglu1-mesa
libgnome-autoar-0-0
libgnome-bluetooth13
libgnome-desktop-3-19
libgoa-1.0-0b
libgoa-1.0-common
libgraphene-1.0-0
libgs9
libgs9-common
libgsf-1-114
libgsf-1-common
libgtk3-perl
libgweather-3-16
libgweather-common
libgxps2
libibus-1.0-5
libical3
libidn11
libidn12
libijs-0.35
libimobiledevice6
libjavascriptcoregtk-4.0-18
libjbig2dec0
libmutter-8-0
libnautilus-extension1a
libnma0
libnotify-bin
libpaper1
libphonenumber8
@@ -136,9 +83,8 @@ libunity9
libunity-protocol-private0
libunity-scopes-json-def-desktop
libunwind8
libupower-glib3
libusbmuxd6
libwebkit2gtk-4.0-37
libxapp1
libxaw7
libxfont2
libxkbfile1
@@ -147,11 +93,14 @@ libxmuu1
libxtst6
libxxf86dga1
libyelp0
lightdm
lightdm-settings
linux-sound-base
mutter
mutter-common
nautilus
nautilus-data
network-manager-openvpn-gnome
openprinting-ppds
p11-kit
p11-kit-modules
@@ -171,6 +120,8 @@ python3-distupgrade
python3-update-manager
python3-xkit
python3-yaml
qalculate-gtk
slick-greeter
software-properties-gtk
spice-vdagent
system-config-printer
@@ -178,6 +129,7 @@ terminator
tracker
tracker-extract
tracker-miner-fs
tree
ubuntu-business-defaults
ubuntu-desktop-minimal
ubuntu-session
@@ -192,13 +144,14 @@ x11-session-utils
x11-utils
x11-xkb-utils
x11-xserver-utils
xapp
xapps-common
xarchiver
xdg-dbus-proxy
xdg-desktop-portal
xdg-user-dirs
xdg-user-dirs-gtk
xfonts-base
xinit
xinput
xorg
xorg-docs-core

View File

@@ -12,7 +12,12 @@ profile=/etc/dconf/profile/user
install -Dv /dev/null $keys
install -Dv /dev/null $profile
echo "[org/gnome/desktop/background]
# set default shortcuts
echo "
[org/gnome/shell]
favorite-apps = ['terminator.desktop', 'org.gnome.Nautilus.desktop', 'google-chrome.desktop', 'thunderbird.desktop', 'code.desktop', 'Zoom.desktop']
[org/gnome/desktop/background]
picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg'
picture-options='zoom'
primary-color='#456789'
@@ -29,8 +34,6 @@ system-db:local" >> $profile
dconf update
#sudo apt-get -y remove gnome-shell-extension-desktop-icons
#compile schemas
if [ -d /usr/share/glib-2.0/schemas ]; then
glib-compile-schemas /usr/share/glib-2.0/schemas

View File

@@ -1 +1 @@
csc
supported

View File

@@ -41,7 +41,12 @@ ghostscript-x
gist
gnome-font-viewer
gnome-screenshot
gnome-user-docs-zh-hans
gnome-user-docs-de
gnome-user-docs-es
gnome-user-docs-it
gnome-user-docs-pt
gnome-user-docs-ru
gnome-user-docs-sl
gnome-system-monitor
gstreamer1.0-packagekit
gstreamer1.0-plugins-base-apps
@@ -51,16 +56,19 @@ gtk2-engines-murrine
gtk2-engines-pixbuf
gvfs-backends
hplip
hunspell-en-us
indicator-printers
inputattach
inxi
kerneloops
keyutils
language-pack-gnome-de
language-pack-gnome-en
language-pack-gnome-zh-hans
language-pack-gnome-zh-hant
language-selector-gnome
language-pack-gnome-es
language-pack-gnome-fr
language-pack-gnome-it
language-pack-gnome-pt
language-pack-gnome-ru
language-pack-gnome-sl
laptop-detect
libatk-adaptor
libfont-afm-perl
@@ -86,10 +94,7 @@ mesa-utils
mousepad
mousetweaks
network-manager-gnome
network-manager-l2tp
network-manager-openconnect
network-manager-openvpn
network-manager-pptp
network-manager-ssh
network-manager-vpnc
numix-gtk-theme
@@ -103,13 +108,12 @@ pasystray
pavucontrol
pavucontrol-qt
pavumeter
pinta
policykit-1
policykit-1-gnome
policykit-desktop-privileges
printer-driver-all
profile-sync-daemon
pulseaudio-module-bluetooth
qalculate-gtk
redshift
slick-greeter
smbclient
@@ -147,6 +151,7 @@ xdg-user-dirs
xdg-user-dirs-gtk
xfce4
xfce4-notifyd
xfce4-power-manager
xfce4-screenshooter
xfce4-terminal
xfonts-100dpi
@@ -155,13 +160,8 @@ xfonts-base
xfonts-encodings
xfonts-scalable
xfonts-utils
xinit
xorg-docs-core
xscreensaver
xserver-xorg
xserver-xorg-video-fbdev
xterm
xtermcontrol
xtermset
xwallpaper
zip

View File

@@ -1 +1 @@
gdm3 ubuntu-session
ubuntu-session

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,263 @@
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

View File

@@ -0,0 +1,130 @@
rk3588_gpu_vpu_tweaks()
{
if [[ ${BOARD} =~ orangepi5 && ${SELECTED_CONFIGURATION} == desktop && ${RELEASE} == bullseye ]]; then
chroot $SDCARD /bin/bash -c "chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper"
#chroot $SDCARD /bin/bash -c "apt-get update"
#chroot $SDCARD /bin/bash -c "apt-get upgrade -y"
# RK GPU VPU
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rkaiq/camera-engine-rkaiq_rk3588_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rga2/librga2_2.2.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rga2/librga-dev_2.2.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/librockchip-mpp1_1.5.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/librockchip-mpp-dev_1.5.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/librockchip-vpu0_1.5.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpp/rockchip-mpp-demos_1.5.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-rkmpp/gstreamer1.0-rockchip1_1.14-4_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/gir1.2-gstreamer-1.0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/gstreamer1.0-tools_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/libgstreamer1.0-0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gstreamer/libgstreamer1.0-dev_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gir1.2-gst-plugins-base-1.0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-alsa_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-gl_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-plugins-base-apps_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/gstreamer1.0-x_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-base1.0/libgstreamer-plugins-base1.0-dev_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gir1.2-gst-plugins-bad-1.0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/libgstreamer-opencv1.0-0_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-opencv_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-plugins-bad_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-plugins-bad-apps_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/gstreamer1.0-wpe_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-dev_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-gtk3_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-plugins-good_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-pulseaudio_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-good1.0/gstreamer1.0-qt5_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-plugins-ugly1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/gst-libav1.0/gstreamer1.0-plugins-ugly_1.18.5-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libdvbv5-0_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/dvb-tools_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/ir-keytable_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libdvbv5-dev_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libdvbv5-doc_1.20.0-2_all.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l-0_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l2rds0_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4lconvert0_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l-dev_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/libv4l-rkmpp_1.4.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/v4l-utils_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libv4l/qv4l2_1.20.0-2_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-xorg-core_1.20.11-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-common_1.20.11-1_all.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-xorg-dev_1.20.11-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/xserver/xserver-xorg-legacy_1.20.11-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/chromium/chromium-x11_91.0.4472.164_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libdrm/libkms1_2.4.104-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libdrm-cursor/libdrm-cursor_1.4.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libdrm-cursor/libdrm-cursor-dev_1.4.0-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-data_2021.02+ds-1_all.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-drm_2021.02+ds-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-es2-drm_2021.02+ds-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-es2-wayland_2021.02+ds-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-es2-x11_2021.02+ds-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-wayland_2021.02+ds-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/glmark2/glmark2-x11_2021.02+ds-1_arm64.deb"
dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/rktoolkit/rktoolkit_1.0.0-1_arm64.deb"
install_deb_chroot "$EXTER/cache/sources/rk3588_packages/libmali/libmali-valhall-g610-g6p0-x11_1.9-1_arm64.deb"
#apt install libva-wayland2 liblua5.2-0
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libaom0_1.0.0.errata1-3_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libcodec2-0.9_0.9.2-4_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavutil56_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavutil-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libpostproc55_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libpostproc-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswresample3_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswresample-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswscale5_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libswscale-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavcodec58_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavcodec-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavformat58_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavformat-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavresample4_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavresample-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavfilter7_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavfilter-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavdevice58_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/libavdevice-dev_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/ffmpeg/ffmpeg_4.3.2-0+deb11u2_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpv/libmpv1_0.32.0-3_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpv/libmpv-dev_0.32.0-3_arm64.deb"
#dpkg_install_deb_chroot "$EXTER/cache/sources/rk3588_packages/mpv/mpv_0.32.0-3_arm64.deb"
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,4 +1,5 @@
source "${BASH_SOURCE%/*}/rk3399_gpu_vpu.inc"
source "${BASH_SOURCE%/*}/rk3588_gpu_vpu.inc"
enable_extension "rkbin-tools"
ARCH=arm64
@@ -12,7 +13,7 @@ OVERLAY_PREFIX='rockchip'
SERIALCON=${SERIALCON:=$([ $BRANCH == "legacy" ] && echo "ttyFIQ0:1500000" || echo "ttyS2:1500000")}
GOVERNOR="ondemand"
BOOTBRANCH="branch:v2020.10-rockchip64"
PACKAGE_LIST_FAMILY="ethtool"
PACKAGE_LIST_FAMILY="ethtool can-utils"
if [[ $RELEASE == "jammy" ]]; then
PACKAGE_LIST_DESKTOP_FAMILY="fcitx fonts-wqy-zenhei xfce4-volumed"
@@ -56,6 +57,11 @@ if [[ $BOARD =~ orangepir1plus|orangepir1plus-lts ]]; then
MINILOADER_BLOB='rk33/rk322xh_miniloader_v2.50.bin'
BL31_BLOB='rk33/rk322xh_bl31_v1.44.elf'
elif [[ $BOARD == orangepi5 ]]; 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'
else
ATFPATCHDIR='atf-rk3399'
@@ -82,6 +88,12 @@ prepare_boot_configuration()
ATFSOURCE=''
ATF_COMPILE='no'
elif [[ $BOOT_SCENARIO == "spl-blobs" ]]; then
UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB spl/u-boot-spl.bin u-boot.dtb u-boot.itb;;idbloader.img u-boot.itb"
ATFSOURCE=''
ATF_COMPILE='no'
elif [[ $BOOT_USE_BLOBS == yes ]]; then
UBOOT_TARGET_MAP="u-boot-dtb.bin;;idbloader.bin uboot.img trust.bin"
@@ -91,7 +103,7 @@ prepare_boot_configuration()
if [[ $BOOT_SUPPORT_SPI == yes ]]; then
UBOOT_TARGET_MAP+=" rkspi_loader.img"
UBOOT_TARGET_MAP="${UBOOT_TARGET_MAP} rkspi_loader.img"
fi
}
@@ -99,6 +111,26 @@ prepare_boot_configuration()
uboot_custom_postprocess()
{
if [[ $BOOT_SUPPORT_SPI == yes ]]; then
if [[ $BOARD == "orangepi5" ]]; then
tools/mkimage -n rk3588 -T rksd -d $RKBIN_DIR/$DDR_BLOB:spl/u-boot-spl.bin idbloader.img
dd if=/dev/zero of=rkspi_loader.img bs=1M count=0 seek=16
/sbin/parted -s rkspi_loader.img mklabel gpt
/sbin/parted -s rkspi_loader.img unit s mkpart idbloader 64 7167
/sbin/parted -s rkspi_loader.img unit s mkpart vnvm 7168 7679
/sbin/parted -s rkspi_loader.img unit s mkpart reserved_space 7680 8063
/sbin/parted -s rkspi_loader.img unit s mkpart reserved1 8064 8127
/sbin/parted -s rkspi_loader.img unit s mkpart uboot_env 8128 8191
/sbin/parted -s rkspi_loader.img unit s mkpart reserved2 8192 16383
/sbin/parted -s rkspi_loader.img unit s mkpart uboot 16384 32734
dd if=idbloader.img of=rkspi_loader.img seek=64 conv=notrunc
dd if=u-boot.itb of=rkspi_loader.img seek=16384 conv=notrunc
fi
fi
if [[ $BOOT_USE_MAINLINE_ATF == yes || $BOOT_USE_TPL_SPL_BLOB == yes ]]; then
if [[ $BOOT_SUPPORT_SPI == yes ]]; then
@@ -116,9 +148,14 @@ uboot_custom_postprocess()
loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000
trust_merger --replace bl31.elf $RKBIN_DIR/$BL31_BLOB trust.ini
elif [[ $BOOT_SCENARIO == "spl-blobs" || $BOOT_SCENARIO == "tpl-blob-atf-mainline" ]]; then
:
else
echo "Unsupported u-boot processing configuration!"
echo "[uboot_custom_postprocess]: Unsupported u-boot processing configuration!"
exit 1
fi
if [[ ${MERGE_UBOOT} ]]; then
@@ -152,7 +189,7 @@ write_uboot_platform()
dd if=$1/trust.bin of=$2 seek=24576 conv=notrunc status=none >/dev/null 2>&1
else
echo "Unsupported u-boot processing configuration!"
echo "[write_uboot_platform]: Unsupported u-boot processing configuration!"
exit 1
fi
@@ -204,6 +241,7 @@ family_tweaks()
[[ $(type -t family_tweaks_s) == function ]] && family_tweaks_s
[[ "$BRANCH" =~ legacy|current ]] && rk3399_gpu_vpu_tweaks
[[ "$BRANCH" =~ legacy && "$BOARD" =~ orangepi5 ]] && rk3588_gpu_vpu_tweaks
#if [[ ${BOARD} == orangepi800 && ${SELECTED_CONFIGURATION} == desktop && ${RELEASE} =~ bullseye|bookworm ]]; then

View File

@@ -0,0 +1,46 @@
source "${BASH_SOURCE%/*}/include/rockchip64_common.inc"
OVERLAY_PREFIX='rk3588'
BOOTDELAY=0
CPUMIN=408000
CPUMAX=2400000
case $BRANCH in
legacy)
BOOTBRANCH='branch:v2017.09-rk3588'
UBOOT_COMPILER="aarch64-linux-gnu-"
UBOOT_USE_GCC='< 8.0'
KERNELBRANCH='branch:orange-pi-5.10-rk3588'
KERNELPATCHDIR='rockchip-rk3588-legacy'
;;
esac
prepare_boot_configuration
family_tweaks_bsp() {
install -m 755 $EXTER/packages/bsp/adb/adbd-${ARCH} ${destination}/usr/bin/adbd
}
family_tweaks_s() {
rsync -a "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
# enable additional services
chroot "${SDCARD}" /bin/bash -c "systemctl --no-reload enable usbdevice.service >/dev/null 2>&1"
install_deb_chroot "$EXTER/cache/debs/arm64/wiringpi_2.46.deb"
chroot $SDCARD /bin/bash -c "apt-get -y -qq install lm-sensors vlc" >/dev/null 2>&1
chroot $SDCARD /bin/bash -c "rm /etc/profile.d/im-config_wayland.sh" >/dev/null 2>&1
sed "s/^SIZE=.*/SIZE=200M/" -i "${SDCARD}"/etc/default/orangepi-ramlog
#install_docker
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -3,17 +3,17 @@
<channel name="xfce4-power-manager" version="1.0">
<property name="xfce4-power-manager" type="empty">
<property name="power-button-action" type="empty"/>
<property name="brightness-switch-restore-on-exit" type="int" value="-1"/>
<property name="brightness-switch" type="int" value="0"/>
<property name="show-tray-icon" type="int" value="1"/>
<property name="lid-action-on-battery" type="uint" value="1"/>
<property name="logind-handle-lid-switch" type="bool" value="false"/>
<property name="lid-action-on-ac" type="uint" value="0"/>
<property name="inactivity-sleep-mode-on-battery" type="uint" value="1"/>
<property name="sleep-button-action" type="uint" value="1"/>
<property name="hibernate-button-action" type="uint" value="1"/>
<property name="dpms-enabled" type="bool" value="true"/>
<property name="blank-on-ac" type="int" value="0"/>
<property name="lock-screen-suspend-hibernate" type="bool" value="false"/>
<property name="critical-power-action" type="uint" value="4"/>
<property name="critical-power-level" type="uint" value="5"/>
<property name="logind-handle-lid-switch" type="bool" value="false"/>
<property name="show-tray-icon" type="bool" value="false"/>
<property name="general-notification" type="bool" value="true"/>
<property name="presentation-mode" type="bool" value="false"/>
<property name="lid-action-on-battery" type="uint" value="0"/>
<property name="lid-action-on-ac" type="uint" value="0"/>
<property name="handle-brightness-keys" type="bool" value="true"/>
<property name="brightness-switch-restore-on-exit" type="int" value="1"/>
<property name="brightness-switch" type="int" value="0"/>
</property>
</channel>

BIN
external/packages/bsp/adb/adbd-arm64 vendored Executable file

Binary file not shown.

BIN
external/packages/bsp/adb/adbd-armhf vendored Executable file

Binary file not shown.

View File

@@ -97,6 +97,33 @@ prepare_board() {
rockpro64|renegade-elite|pinebook-pro|station-p1)
BOARDFAMILY=rk3399
;;
orangepi5)
echo host > /sys/kernel/debug/usb/fc000000.usb/mode
if [[ -c /dev/mpp_service ]]; then
chmod 666 /dev/mpp_service
# Create dummy video node for chromium V4L2 VDA/VEA with rkmpp plugin
echo dec > /dev/video-dec0
echo enc > /dev/video-enc0
chmod 660 /dev/video-*
chown root.video /dev/video-*
fi
if [[ ${DISTRIBUTION_CODENAME} == "bullseye" ]]; then
for p in $(modetest|grep "^Planes:" -A 9999|grep -o "^[0-9]*");
do
modetest -M rockchip -aw $p:ASYNC_COMMIT:1 &>/dev/null
done
fi
bt_status=$(cat /proc/device-tree/wireless-bluetooth/status)
if [[ ${bt_status} == "okay" ]]; then
rfkill unblock all
brcm_patchram_plus --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
--baudrate 1500000 --patchram /lib/firmware/ap6275p/BCM4362A2.hcd /dev/ttyS9 &
fi
;;
orangepi3-lts)
#aplay /usr/share/sounds/alsa/audio.wav -D hw:0,0 > /dev/null 2>&1
rfkill unblock all
@@ -164,7 +191,7 @@ prepare_board() {
rfkill unblock all
/usr/bin/brcm_patchram_plus -d --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 \
--baudrate 1500000 --patchram /lib/firmware/brcm/BCM4345C5.hcd /dev/ttyS0
--baudrate 1500000 --patchram /lib/firmware/brcm/BCM4345C5.hcd /dev/ttyS0 &
;;
orangepi4-lts)
# RK3399 - 1.8GHz

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

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 @@
export QT_XCB_GL_INTEGRATION=xcb_egl

View File

@@ -0,0 +1 @@
export QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --disable-es3-gl-context --ignore-gpu-blacklist --ignore-gpu-blocklist --enable-accelerated-video-decode"

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.

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/rk3588/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/rk3588/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

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=orangepi/#autologin-user=orangepi/" \
/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,3 @@
#!/bin/bash
sudo systemctl enable docker.service

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,22 @@
#!/bin/bash
source /etc/orangepi-release
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 gnupg lsb-release
codename=$(lsb_release -cs)
distributor_id=$(lsb_release -is)
distributor_id=${distributor_id,}
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/${distributor_id}/gpg | sudo apt-key add -
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://mirrors.aliyun.com/docker-ce/linux/${distributor_id} \
${codename} stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER

BIN
external/packages/bsp/rk3588/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

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,11 @@
#!/bin/bash
export DISPLAY=:0.0
#export GST_DEBUG=*:5
#export GST_DEBUG_FILE=/tmp/2.txt
echo "Start MIPI CSI Camera Preview!"
export XDG_RUNTIME_DIR=/run/user/1000
gst-launch-1.0 v4l2src device=/dev/video11 io-mode=4 ! queue ! video/x-raw,format=NV12,width=2112,height=1568,framerate=30/1 ! glimagesink

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,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

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