diff --git a/example/drivers/README_zh.md b/example/drivers/README_zh.md index 22df9a8f3a79e047cbe4ccc58a2bc9f4d734edb7..dfd00474d7252d941f4d2345f3474e8bf0849454 100644 --- a/example/drivers/README_zh.md +++ b/example/drivers/README_zh.md @@ -263,7 +263,7 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 OHOS已经开启SELinux特性,需要对新增的进程和服务配置相应的SELinux规则,用于运行host进程启动访问某些资源、发布HDI服务。对于调用者来说,也需要配置SELinux规则运行获取和调用某个HDI服务。 - 在```base/security/selinux/sepolicy/ohos_policy/drivers/adapter/vendor/type.te```文件中配置nnrt_host进程安全上下文,新增配置如下: + 在```base/security/selinux/sepolicy/ohos_policy/drivers/adapter/vendor/type.te```文件中配置```nnrt_host```进程安全上下文,新增配置如下,如果没有type.te文件只需新建并添加即可: ```text # 新增配置 type nnrt_host, hdfdomain, domain; @@ -297,7 +297,17 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 allow sh nnrt_host:fd { use }; ``` -6. 删除out目录编译整个系统。 +6. 部件编译入口配置。 + + 在此文件中添加部件配置:productdefine/common/inherit/chipset_common.json。 + ```shell + { + "component": "drivers_peripheral_nnrt", + "features": [] + } + ``` + +7. 删除out目录编译整个系统。 ```shell # 删除out目录 rm -rf ./out @@ -315,7 +325,7 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 cd test/xts/hats # 编译hats测试用例 - ./build.sh suite=hats system_size=standard --product-name rk3568 + ./build.sh suite=hats system_size=standard product_name=rk3568 # 回到代码根目录 cd - @@ -346,6 +356,10 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 [ PASSED ] 47 tests. ``` +4. 如果没有编译成功,可能遇到了selinux拦截。 + + 将```/system/etc/selinux/config```文件取出,设置```SELINUX=permission```,再替换掉原来的配置,重启开发板即可。 + ### 开发实例 完整Demo代码可以参考[社区实现](../drivers/nnrt/)。 1. 拷贝```example/driver/nnrt```目录到```drivers/peripheral```路径下。 @@ -354,19 +368,19 @@ NNRt通过HDI接口实现与设备芯片的对接,由HDI接口实现跨进程 ``` 2. 补充bundle.json文件到```drivers/peripheral/nnrt```,bundle.json参考本教程上面的[开发步骤](#开发步骤)章节。 3. 由于Demo依赖MindSpore-Lite CPU算子,故需要添加MindSpore-Lite依赖文件。 - - 下载MindSpore-Lite的头文件,[mindspore 1.5.0](https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.5.0/MindSpore/lite/release/linux/mindspore-lite-1.5.0-linux-x64.tar.gz)。 + - 下载MindSpore-Lite的头文件,[mindspore 1.8.1](https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.8.1/MindSpore/lite/release/linux/x86_64/mindspore-lite-1.8.1-linux-x64.tar.gz)。mindspore需要保持和```third_party```下的mindspore一样的版本,应下载Linux-x86_64操作系统,版本号不同的需要去mindspore官网下载。 - 在```drivers/peripheral/nnrt```目录下新建mindspore目录,用于存放mindspore依赖库和头文件。 ```shell mkdir drivers/peripheral/nnrt/mindspore ``` - - 解压mindspore-lite-1.5.0-linux-x64.tar.gz文件,将```runtime/include```目录拷贝到```drivers/peripheral/nnrt/mindspore```目录下。 + - 解压mindspore-lite-1.8.1-linux-x64.tar.gz文件,将```runtime/include```目录拷贝到```drivers/peripheral/nnrt/mindspore```目录下。 - Demo还依赖mindspore的schema文件。 ```shell # 创建mindspore_schema目录 mkdir drivers/peripheral/nnrt/hdi_cpu_service/include/mindspore_schema - # 拷贝mindspore schema文件 - cp third_party/mindspore/mindspore/lite/schema/* drivers/peripheral/nnrt/hdi_cpu_service/include/mindspore_schema/ + # 拷贝mindspore schema文件,复制后需要把inner中文件替换掉所有mindspore schema同名文件 + cp third_party/mindspore/mindspore-src/source/mindspore/lite/schema/* drivers/peripheral/nnrt/hdi_cpu_service/include/mindspore_schema/ ``` - 编译MindSpore-Lite的动态库,并将动态库放到mindspore目录下。 ```shell