From fe4c591259cecce2ae7c9aa7981dad4c2ceb1386 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sat, 2 Jul 2022 02:10:33 -0700 Subject: [PATCH] Add avs-device-sdk servie --- .../avs-device-sdk/avs-device-sdk_1.26.0.bb | 17 ++++++++++++-- .../files/avs-device-sdk.service | 14 +++++++++++ .../avs-device-sdk/files/setup_avs.sh | 23 +++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/avs-device-sdk.service create mode 100644 meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/setup_avs.sh diff --git a/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/avs-device-sdk_1.26.0.bb b/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/avs-device-sdk_1.26.0.bb index 9d7deb1f4..91ab60ab8 100644 --- a/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/avs-device-sdk_1.26.0.bb +++ b/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/avs-device-sdk_1.26.0.bb @@ -13,6 +13,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d92e60ee98664c54f68aa515a6169708" DEPENDS = "useradd curl nghttp2 sqlite3 openssl gstreamer1.0 gstreamer1.0-plugins-base libopus libarchive cjson" SRC_URI = "git://xajhuang.com:3100/avs/avs-device-sdk.git;protocol=https;branch=master \ + file://avs-device-sdk.service \ + file://setup_avs.sh \ file://AlexaClientSDKConfig.json \ file://feier/appLWA.json \ file://feier/asound.conf \ @@ -68,7 +70,7 @@ KWDRESDIR = "${S}/extension/avs-weakup-sdk/wakeword-models/x1f8" KWDINSDIR = "${D}/data/avs/wakeword-models/x1f8" EXTRA_OECMAKE = "${S} -DBUILD_TESTING=OFF \ - -DCMAKE_INSTALL_PREFIX=/home/avs/SampleApp -DCOMPANION_APP_AUTH=OFF \ + -DCMAKE_INSTALL_PREFIX=/home/avs/SampleApp -DCOMPANION_APP_AUTH=ON \ -DGSTREAMER_MEDIA_PLAYER=ON -DASPMIC=ON -DCMAKE_BUILD_TYPE=DEBUG -DPKCS11=ON \ -DCURL_INCLUDE_DIR=${STAGING_DIR_HOST}${includedir}/curl \ -DCURL_LIBRARY=${STAGING_DIR_HOST}${libdir}/libcurl.so \ @@ -80,7 +82,10 @@ EXTRA_OECMAKE = "${S} -DBUILD_TESTING=OFF \ -DEXTENSION_PATH=${S}/extension/avs-cpp-sdk/KWD \ -DASPMIC_INCLUDE_DIR=${S}/extension/mic-asp-sdk/include \ " -inherit cmake +inherit cmake systemd + +SYSTEMD_SERVICE_${PN} = "avs-device-sdk.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" FILES_${PN} = "/home/avs/SampleApp/* /etc/* /lib/* /data/dingdong/*" FILES_${PN} += "/data/dingdong/etc/ /data/database/" @@ -111,6 +116,14 @@ do_install_append() { install -d -o avs -g avs ${D}/data/dingdong/etc/ install -d -o avs -g avs ${D}/data/database/ + install -d ${D}${sysconfdir}/ + install -d ${D}${sysconfdir}/systemd/system/ + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/avs-device-sdk.service ${D}${systemd_unitdir}/system + + install -m 0755 -o avs -g avs ${WORKDIR}/setup_avs.sh ${D}/home/avs/SampleApp/setup_avs.sh + install -m 0644 -o avs -g avs ${WORKDIR}/AlexaClientSDKConfig.json ${D}/data/avs/AlexaClientSDKConfig.json install -m 0644 -o avs -g avs ${WORKDIR}/feier/asound.conf ${D}/etc/asound.conf diff --git a/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/avs-device-sdk.service b/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/avs-device-sdk.service new file mode 100644 index 000000000..396ac5908 --- /dev/null +++ b/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/avs-device-sdk.service @@ -0,0 +1,14 @@ +[Unit] +Description=Appmainprog +After=appmainprog.service network-online.target + +[Service] +Type=simple +ExecStart=/bin/bash /home/avs/SampleApp/setup_avs.sh >& ttyS0 +StandardOutput=tty +StandardError=tty +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target diff --git a/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/setup_avs.sh b/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/setup_avs.sh new file mode 100644 index 000000000..c328c8c3a --- /dev/null +++ b/meta/meta-mediatek-aud/recipes-avs/avs-device-sdk/files/setup_avs.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +source /etc/softhsm +#INS=`find /data/.softhsm2/tokens/ -name "generation" | awk '{print $0}'` +if [ ! -d "/data/.softhsm2" ] +then + mkdir -p /data/.softhsm2/tokens + chmod -R 700 /data/.softhsm2 + echo "directories.tokendir = /data/.softhsm2/tokens" > /data/.softhsm2/softhsm2.conf + chown -R avs:avs /data/.softhsm2 + /sbin/start-stop-daemon --start -c avs --exec /usr/bin/softhsm2-util -- --init-token --slot 0 \ + --label $ACSDK_PKCS11_TOKEN --so-pin $ACSDK_PKCS11_SO_PIN --pin $ACSDK_PKCS11_PIN + + /sbin/start-stop-daemon --start -c avs --exec /usr/bin/pkcs11-tool -- --module $SOFTHSM_PATH --login \ + --pin $ACSDK_PKCS11_PIN \ + --token-label $ACSDK_PKCS11_TOKEN --keygen \ + --key-type aes:32 --private --sensitive \ + --label $ACSDK_PKCS11_MAIN_KEY +fi + +setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /home/avs/SampleApp/SampleApp + +/sbin/start-stop-daemon --start -c avs --exec /home/avs/SampleApp/SampleApp -- /data/avs/AlexaClientSDKConfig.json ERROR