OPTEE
关于本次实验
来自论文:《Trusted-DNN: A TrustZone-based Adaptive Isolation Strategy for Deep Neural Networks》
项目的gitee代码地址
Ubuntu上运行
编译op-tee
首先要去op-tee官方文档安装依赖,相当多,略慢(取决于网速)。
学长的项目之中的编译过程如下:
1 | repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml |
有几个问题:
-
repo大概率不好用,即使挂着梯子也无法下载。这时候需要换源。可供参考的方法
-
repo sync开始需要挂梯子运行,而且需要编译的包比较大,下载也许需要2-5G的流量,如果是梯子要提前看好。
-
第一条命令如果想要指定OP-TEE的版本,可以指定指定分支。具体可以看这里有指定版本的命令。不过我个人用的最新版本命令,也没事儿。
-
可以使用
-j
命令,但是我个人并不建议,因为在编译过程中很容易出问题,使用了这个命令很难确定到底断在哪里以及出了什么问题。 -
如果不能科学上网需要自己下载每一个包然后手动编译,比较麻烦,还是尽量找梯子。
-
make run 的运行速度极慢,我的电脑大概跑了5H才跑完,再加上前面的试错时间,难蚌。。。
运行程序
本项目的代码,之下的很多子目录并不能同时编译,只能一次运行一个。操作很简单,就是把程序放到examples之下然后重新make run,这次就快了。
关于数据集
首先,需要自己下载Tiny ImageNet数据集。然后自行下载 alexnet人家训练好的参数。然后运行tools里的程序做好划分。
然后,重点来了,如何上传数据集:
项目地址之下的方法貌似并不好用,至少和我这个最新的optee和qemu不太匹配,更好的方法是参考这个仓库。
直接把数据集拷贝到out-br/target/root之下。
但是我遇到的问题是一旦数据集和参数超过了467MB就不成功了,因此只进行了压缩以后的参数进行实验。
一旦超过467MB提示如下:
1 | [ end Kernel panic - not syncing: VFS: Unable to mount root fsunknown-block(0,0) -] |
而通过df -h命令查看的结果如下:
1 | Filesystemdevtmpfs Size Used Available Use% Mounted on |
看起来我的数据集和参数加在一起只有467MB的时候应该还可以,不知道为什么会有这个问题。
此问题暂时无解。
整体情况
由于数据集的图片过多,因此在重新 make run 之后,编译速度还是比较慢,应该是有一些链接的过程,导致的特别慢。因此需要等待。
最后就可以顺利跑起来了。
树莓派
首先,我拿到的是树莓派3B+。
硬件安装步骤基本上看官网就好,B站也有。其实就两步,一是贴散热片,二是安装到亚克力板子里(这玩意儿到底咋拆啊)。
格式化原来的SD卡
我拿到的SD卡里面有人家之前的系统,要先格式化。
确实遇到了一些小问题,就是插上卡以后并不是一个16G的盘,而是一个2G和一个260MB的盘。。。
然后我使用的是这个教程:此处是一个格式化教程
注意,无论是使用工具还是命令,格式化都万分危险!务必谨慎,并做好数据备份,不然万劫不复!
然后顺利格式化,终于看到了一个14.8G大小的盘了:)
理论上树莓派自己的官方烧录镜像软件也会替你格式化,但是据说有风险hhh
烧录镜像
主要过程来自这个参考
在探索的过程中发现有个更好玩儿的?这个没进行尝试,未来有时间可以看看。
烧录镜像直接采用 Raspberry Pi Imager
默认镜像,烧录很快,大概一刻钟就完成了。
遇到问题1