custom: Edit NPU custom files to support ODROID-M1/M1S/M2

Support ODROID-M1/M1S/M2 models using the same custom scripts. The basic
structure is almost the same as before, however, minor changes are as follows:

- Remove rga udev rule because same rule is already loaded on the
  startup
- Rename S15-add-repository to S25-add-repository to resolve dependency
  with key-signing at S20-install-packages
- Install packages and edit files differently based on the models.

Signed-off-by: phillip.choi <phillip.choi@hardkernel.com>
Change-Id: I15d658534bf2666cc12f1cd75431825210d09e05
This commit is contained in:
phillip.choi
2024-10-17 16:47:23 +09:00
committed by Dongjin Kim
parent 3ba8a8c4b6
commit aa8f25b1cf
8 changed files with 71 additions and 41 deletions

View File

@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
repo=ppa:deadsnakes/ppa REPO=ppa:deadsnakes/ppa
if [ -z $(which add-apt-repository) ]; then if [ -z $(which add-apt-repository) ]; then
apt update -y apt update -y
@@ -8,5 +8,6 @@ apt install @@DEFAULT_APT_OPTIONS@@ \
software-properties-common software-properties-common
fi fi
add-apt-repository ${repo} -y add-apt-repository ${REPO} -y
apt update -y apt update -y

View File

@@ -0,0 +1,10 @@
#!/bin/sh
BOARD=@@DEFAULT_BOARD@@
case ${BOARD} in
odroidm1s | odroidm2)
sed -i "/video_rkisp/d" /overlay/etc/modules
rm -f /overlay/etc/udev/rules.d/99-odroid-video.rules
;;
esac

View File

@@ -1,5 +1,14 @@
#!/bin/sh #!/bin/sh
BOARD=@@DEFAULT_BOARD@@
OVERLAYS="rknpu"
if [ -f /boot/config.ini ]; then if [ -f /boot/config.ini ]; then
sed -i '/generic/,/overlays/ s/^overlays=.*$/overlays=\"rknpu ov5647\"/' /boot/config.ini case ${BOARD} in
odroidm1)
OVERLAYS="${OVERLAYS} ov5647"
;;
esac
sed -i '/generic/,/overlays/ s/^\(overlays=".*\)"/\1 '"${OVERLAYS}"'"/' /boot/config.ini
fi fi

View File

@@ -0,0 +1,9 @@
#!/bin/sh
BOARD=@@DEFAULT_BOARD@@
case ${BOARD} in
odroidm1)
apt install -y rkaiq
;;
esac

View File

@@ -1,34 +1,35 @@
#!/bin/sh #!/bin/sh
CV2=/usr/lib/python3/dist-packages/cv2.cpython-38-aarch64-linux-gnu.so CUSTOM_USER=@@DEFAULT_USER@@
HOME=/home/odroid USER=${CUSTOM_USER:-odroid}
RKNN=/home/odroid/rknpu2/runtime/Linux/librknn_api/aarch64/librknnrt.so HOME=/home/${USER}
WHL=${HOME}/rknn-toolkit2/rknn-toolkit-lite2-v1.2.0/packages/rknn_toolkit_lite2-1.2.0-cp39-cp39-linux_aarch64.whl RKNN=${HOME}/rknn-toolkit2/rknpu2/runtime/Linux/librknn_api/aarch64/librknnrt.so
WHL=${HOME}/rknn-toolkit2/rknn-toolkit-lite2/packages/rknn_toolkit_lite2-2.1.0-cp39-cp39-linux_aarch64.whl
MPP_PATH=${HOME}/rknn-toolkit2/rknpu2/examples/3rdparty/mpp/Linux/aarch64
virtualenv ${HOME}/.rknn --python=3.9 --system-site-package echo "I: cloning rknn-toolkit2 repository"
git clone https://github.com/hardkernel/rknn-toolkit2 ${HOME}/rknn-toolkit2 --depth=1
git clone https://github.com/hardkernel/rknn_model_zoo ${HOME}/rknn_model_zoo --depth=1
echo "========== symlink cv2 start ==========" echo "I: creating python virtual environment (using: Pyhton3.9)"
[ -f ${CV2} ] && ln -s ${CV2} ${HOME}/.rknn/lib/python3.9/site-packages/cv2.so python3.9 -m venv ${HOME}/.rknn
echo "========== symlink cv2 finish =========="
echo "========== git clone start ==========" [ -f ${WHL} ] && ${HOME}/.rknn/bin/python3.9 -m pip install ${WHL}
git clone https://github.com/hardkernel/rknpu2 ${HOME}/rknpu2 yes | ${HOME}/.rknn/bin/python3.9 -m pip install opencv-python
git clone https://github.com/hardkernel/rknn-toolkit2 ${HOME}/rknn-toolkit2
echo "========== git clone finish =========="
echo "========== pip install start ==========" echo "I: setting up environment"
yes | ${HOME}/.rknn/bin/python3.9 -m pip install -I opencv-python [ -f "${MPP_PATH}/librockchip_mpp.so.0" ] \
[ -f ${WHL} ] && ${HOME}/.rknn/bin/python3 -m pip install ${WHL} && [ -L "${MPP_PATH}/librockchip_mpp.so.1" ] \
yes | ${HOME}/.rknn/bin/python3.9 -m pip uninstall opencv-python && [ -L "${MPP_PATH}/librockchip_mpp.so" ] \
echo "========== pip install finish ==========" && cd ${MPP_PATH} \
&& ln -sf librockchip_mpp.so.0 librockchip_mpp.so.1 \
&& ln -sf librockchip_mpp.so.0 librockchip_mpp.so \
&& cd ${HOME}
chown -R ${USER}:${USER} ${HOME}/rknn-toolkit2/
chown -R ${USER}:${USER} ${HOME}/rknn_model_zoo/
chown -R ${USER}:${USER} ${HOME}/.rknn/
[ -f ${RKNN} ] && cp ${RKNN} /usr/lib/librknnrt.so
echo "========== examples seting start ==========" # activate venv at start up
chown -R odroid:odroid ${HOME}/rknpu2/
chown -R odroid:odroid ${HOME}/rknn-toolkit2/
chown -R odroid:odroid ${HOME}/.rknn/
[ -f ${RKNN} ] && ln -s ${RKNN} /usr/lib/librknnrt.so
echo "========== examples seting finish =========="
echo "# activate venv at first"
echo "source ${HOME}/.rknn/bin/activate" >> ${HOME}/.bashrc echo "source ${HOME}/.rknn/bin/activate" >> ${HOME}/.bashrc
echo "export LD_LIBRARY_PATH=${HOME}/rknpu2/examples/rknn*/install/*/lib" >> ${HOME}/.bashrc

View File

@@ -0,0 +1,9 @@
#!/bin/sh
BOARD=@@DEFAULT_BOARD@@
if [ ! -z "${BOARD}" ]; then
BOARD=$(echo ${BOARD} | tr '[:lower:]' '[:upper:]' | sed -E 's/ODROID/ODROID-/')
fi
echo "echo \"You are using the ${BOARD} NPU image. Welcome!\"" >> "${HOME}/.bashrc"

View File

@@ -1,2 +0,0 @@
# /dev/rga
SUBSYSTEM=="misc", ENV{DEVNAME}=="/dev/rga", GROUP="odroid", MODE="0660"

View File

@@ -3,16 +3,9 @@ g++
git git
libopencv-dev libopencv-dev
librga-dev librga-dev
make python3-dev
python3-opencv
python3-pip python3-pip
python3.6 python3-venv
python3.6-dev
python3.7
python3.7-dev
python3.8
python3.8-dev
python3.9 python3.9
python3.9-dev python3.9-dev
rkaiq python3.9-venv
virtualenv