部署修改后文件系统
操作步骤
- 执行以下命令切换到root用户,后续操作都需要以root用户执行。
su - root
- 解压软件包获取中的{soc version}-driver-{software version}-minios.aarch64-src.tar.gz。
解压后的driver/source/vendor/hisi/tools/signtool/image_pack目录中有加密与打包工具,用于文件系统压缩步骤。
例如在/usr/local/software/目录下执行如下解压命令:
tar -zxvf {soc version}-driver-{software version}-minios.aarch64-src.tar.gz
说明:如果进行驱动源码编译时已经解压了此源码包,则可跳过此步骤。
- 进入/usr/local/filesys_modify/目录,并删除原有的raw-Ascend310P.cpio与Ascend310P.cpio.gz文件。
cd /usr/local/filesys_modify/
rm raw-Ascend310P.cpio
rm Ascend310P.cpio.gz
- 进入tempdir目录,并将tempdir目录中的内容打包成raw-Ascend310P.cpio.gz。
cd tempdir
find . | cpio -o -H newc | gzip > ../raw-Ascend310P.cpio.gz
命令执行完成后,会在上级目录filesys_modify目录下生成压缩后的文件系统raw-Ascend310P.cpio.gz。
- 对文件系统镜像文件进行签名前预处理。
- 切换到上一级的文件系统制作的filesys_modify目录下,并为文件系统增加签名头。
python3 /usr/local/software/driver/source/vendor/hisi/tools/signtool/image_pack/esbc_header.py -raw_img raw-Ascend310P.cpio.gz -out_img header-Ascend310P.cpio.gz -version 1.1.1.1.1 -nvcnt 0 -tag initrd -platform hi1910p
- /usr/local/software/为2中{soc version}-driver-{software version}-minios.aarch64-src.tar.gz解压目录。
- -raw_img:原始镜像文件路径,保持与示例一致即可。
- -out_img:重新打包后的镜像文件输出路径,保持与示例一致即可。
- -version:镜像版本号,格式为x.x.x.x.x用户可自定义。
- 其他参数请保持默认值即可。
- 执行如下命令,生成文件系统的摘要信息文件“initrd.ini”。
digest=`sha256sum header-Ascend310P.cpio.gz | awk '{print $1}'`
echo "initrd, ${digest};" > ./initrd.ini
- 切换到上一级的文件系统制作的filesys_modify目录下,并为文件系统增加签名头。
- 对摘要信息文件“initrd.ini”进行签名,详细操作请参见生成开放态文件系统CMS签名文件。
- 将上述步骤生成的CMS签名文件initrd.ini.p7s和initrd.ini.crl拷贝到/usr/local/filesys_modify/目录。
- 进入/usr/local/filesys_modify/目录,执行如下命令将文件系统和签名文件打包并增加签名头。python3 /usr/local/software/driver/source/vendor/hisi/tools/signtool/image_pack/image_pack.py -raw_img ./header-Ascend310P.cpio.gz -out_img ./Ascend310P.cpio.gz -cms ./initrd.ini.p7s -ini ./initrd.ini -crl ./initrd.ini.crl --addcms -version 1.1.1.1.1 -platform hi1910p --pss
- /usr/local/software/为2中{soc version}-driver-{software version}-minios.aarch64-src.tar.gz解压目录。
- -raw_img:原始镜像文件路径,保持与示例一致即可。
- -out_img:重新打包后的镜像文件输出路径,保持与示例一致即可。
- -cms:CMS签名文件。
- -ini:签名文件的摘要信息。
- -crl:签名机构的吊销列表证书。
- -addcms:增加CMS签名的标志。
- -version:镜像版本号,格式为x.x.x.x.x用户可自定义。
- 其他参数请保持默认值即可。
命令执行完成后,会在filesys_modify目录下生成增加签名头后的文件系统镜像文件Ascend310P.cpio.gz。
- 部署修改后的文件系统。替换Driver安装目录下device文件夹下的的Ascend310P.cpio.gz。
- 为Ascend310P.cpio.gz文件添加写权限。
chattr -i /usr/local/Ascend/driver/device/Ascend310P.cpio.gz
- 替换/usr/local/Ascend/driver/device/目录下的Ascend310P.cpio.gz。
替换前请先备份 /usr/local/Ascend/driver/device/目录下的Ascend310P.cpio.gz文件到其他目录,防止文件系统编译出错。
cp -rf /usr/local/filesys_modify/Ascend310P.cpio.gz /usr/local/Ascend/driver/device/
- 取消Ascend310P.cpio.gz文件的写权限。
chattr +i /usr/local/Ascend/driver/device/Ascend310P.cpio.gz
文件系统替换完成后,为节省空间,可删除/usr/local/filesys_modify/下的tempdir文件夹。
- 为Ascend310P.cpio.gz文件添加写权限。
- 重启Host。
reboot