按照EB-Hi3516DV300快速入门手册学习的时候,产生了一些疑问,第2.1小结已经使用tar命令对SDK包进行了解压,第2.2小结又执行./sdk.unpack文件,说的是展开SDK包的内容,由此产生了疑问,不是都已经解压过了,为什么是展开?展开是作用是?文档里面说的是“将会展开SDK包打包压缩存放的内容”,感觉不清晰,对此研究了一下。
我本来以为是SDK压缩包里面的压缩包进行解压作用的(也就是解压完以后还存在的压缩包),但是对比了一下前后文件,发现并没有那么简单。
运行的时候会出现一些警告和提示:
之前下意识的忽略了,仔细看了一下打印出的提示,说的是创建drv、osal、smp文件夹,但是并没有发现这些文件夹,就只有一个smp,还多了一个osdrv,于是,疑问就产生了。
突然发现sdk.unpack是一个文件,不是一个简单的命令,于是进入到这个文件阅读其源码
第一行是使用bash来编译shell
第二行:加载执行名为 common.sh
的脚本。这个脚本可能包含一些定义的函数和变量,用于整个安装过程。
第三行及后面出现的ECHO,就是一个打印信息到终端的作业的,类似print
第十七行:set +e
— 这个命令告诉 Bash,如果接下来的命令返回非零值(表示错误),不要立即退出脚本。
第二十一行:创建名为 drv
的目录,-p
参数意味着如果上级目录不存在则创建它,-v
参数意味着打印出具体执行的每个步骤
第二十二行:这是一个自定义命令,旨在处理 tar 存档并展示进度。它使用 tar
解压 drv.tgz
文件,并使用 wc -l
命令来计算文件数量以展示进度。
第二十五行:创建一个osal文件夹
按理说这些文件夹都应该有才对,但是确没有,根据提示,去安装交叉编译工具链,安装完成之后,重新进行unpack,发现该有的文件夹都有了