diff --git "a/sig/Hygon Arch/content/1-\345\256\211\345\205\250\345\212\237\350\203\275\347\216\257\345\242\203\351\205\215\347\275\256/1-\345\256\211\350\243\205\346\223\215\344\275\234\347\263\273\347\273\237\345\222\214\345\206\205\346\240\270.md" "b/sig/Hygon Arch/content/1-\345\256\211\345\205\250\345\212\237\350\203\275\347\216\257\345\242\203\351\205\215\347\275\256/1-\345\256\211\350\243\205\346\223\215\344\275\234\347\263\273\347\273\237\345\222\214\345\206\205\346\240\270.md"
index 548f83c54e6893b836350a7e4f3d7f808c1b339d..1d9c58fe70bd2d6f82fcc18d0e2cb463d49b7c35 100644
--- "a/sig/Hygon Arch/content/1-\345\256\211\345\205\250\345\212\237\350\203\275\347\216\257\345\242\203\351\205\215\347\275\256/1-\345\256\211\350\243\205\346\223\215\344\275\234\347\263\273\347\273\237\345\222\214\345\206\205\346\240\270.md"
+++ "b/sig/Hygon Arch/content/1-\345\256\211\345\205\250\345\212\237\350\203\275\347\216\257\345\242\203\351\205\215\347\275\256/1-\345\256\211\350\243\205\346\223\215\344\275\234\347\263\273\347\273\237\345\222\214\345\206\205\346\240\270.md"
@@ -3,13 +3,29 @@
## 安装开源操作系统
从下面的镜像中任选一个,下载并完成安装。
-1. http://mirrors.openanolis.org/anolis/8.4/isos/GA/x86_64/AnolisOS-8.4-x86_64-dvd.iso (**该系统安装时内核可以选择,在Kernel Selection 选项中选择4.19版本的内核安装**)
+1. [Anolis OS 8.10](https://mirrors.openanolis.cn/anolis/8.10/isos/GA/x86_64/AnolisOS-8.10-x86_64-dvd.iso)
+
+系统安装后执行下面命令更新系统组件
+```
+sudo yum makecache
+sudo yum update kernel*
+```
2. https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso
+
+ 该系统不具有完整的csv功能,请参考[安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh) 安装更新相应的组件。
3. 麒麟server V10 SP3 2403,向麒麟确认获取
-**注:不同版本可能存在差异,可以根据实际情况调整。**
+系统安装后执行下面命令更新系统组件
+```
+sudo yum makecache
+sudo yum update kernel*
+```
+## grub 配置
+
+主机系统grub 需要配置内核命令行参数用来支持CSV功能,具体如何配置请参考[安装CSV软件 - 主机Linux内核需配置内核命令行参数](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)
+
## 下载测试代码仓库
如果仓库较大clone困难,可以加参数 --depth 1 进行精简clone 。
@@ -26,13 +42,6 @@ $ sudo ./install_hag.sh
$ sudo cp /opt/hygon/bin/hag /usr/bin
```
-## 更新内核
-
-```
-$ git clone -b devel-5.10 https://gitee.com/anolis/cloud-kernel.git
-$ cd cloud-kernel
-$ git checkout d3c7bd9fa87b
-$ sudo /opt/hygon/build_kernel.sh
-```
+## 导入通用安全证书
-更新完成后重启,选择新安装的内核进入系统,**麒麟系统不会安装主机内核,使用系统自带内核,但仍然需要重启使配置生效**。
+使能海光安全功能,必须导入通用安全证书,请参考[导入通用安全证书](https://openanolis.cn/sig/Hygon-Arch/doc/865622274698254162)
\ No newline at end of file
diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md"
index be352c2ae3dcb6d70e5ec419273cdf110c61f951..a231f01f8c75d1db6fe182b63b085dc150f16ce7 100644
--- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md"
+++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/1-\345\256\211\350\243\205CSV\350\275\257\344\273\266.md"
@@ -11,8 +11,54 @@
$ sudo /opt/hygon/csv/install_csv_sw.sh
```
+## 内核安装
+### 编译内核
+龙蜥社区提供了编译好的内核rpm,在http://mirrors.openanolis.cn/anolis/8.10/kernel-5.10/x86_64/os/Packages/ 页面中寻找内核rpm 包进行下载安装,
+同时提供了deb 包下载方法:
+```
+wget -c https://download.sourcefind.cn:65024/directlink/8/c86-devkit/previous-release/csv/pkg/kernel-5.10.134-deb.tgz
+```
+
+如果不能满足需要,请按照下面方法进行编译。
+```
+# 这里使用了龙蜥社区的内核,该内核支持完整的CSV能力
+git clone -b devel-5.10 https://gitee.com/anolis/cloud-kernel.git
+cd cloud-kernel
+git checkout d3c7bd9fa87b
+sudo /opt/hygon/build_kernel.sh
+```
+### 安装内核
+
+ubuntu 系统执行下面操作
+
+```
+sudo dpkg -i /opt/hygon/kernel/*deb
+version=$(basename "$(ls /opt/hygon/kernel/linux-image-*deb | head -n1)" | grep -oP '[0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1)
+
+sudo -E sed -i "s/GRUB_DEFAULT=.*/GRUB_DEFAULT=\"Advanced options for Debian GNU\/Linux>Debian GNU\/Linux, with Linux $version-csv\"/g" /etc/default/grub
+sudo update-grub
+# 重启使内核生效,重启后uname -a 检查内核是否生效
+sudo reboot
+```
+**虚拟机内核替换遵循同样的方法,将/opt/hygon/kernel.tgz 拷贝到启动好的虚拟机中进行安装**
+
+类centos 系统执行下面操作
+*下面方法是系统支持grubby 工具流程制作方法,如果不支持请上网查找安装方法*
+```
+sudo rpm -ivh --force --nodeps /opt/hygon/kernel/*rpm
+version=$(ls /opt/hygon/kernel/kernel-[0-9]*.rpm | grep -vE 'headers|devel' | head -n1 | grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)')
+sudo -E grubby --set-default=/boot/vmlinuz-${version}-csv
+# 查看内核设置是否生效
+sudo grubby --default-kernel
+sudo reboot
+# 查看内核设置是否生效
+uname -a
+```
+**虚拟机内核替换遵循同样的方法,将/opt/hygon/kernel.tgz 拷贝到启动好的虚拟机中进行安装**
+
## 安装qemu
-**麒麟系统不需要该步骤,使用系统自带即可,kata 测试不需要该步骤***
+
+龙蜥社区提供了编译好的qemu rpm,在https://mirrors.openanolis.cn/anolis/8/AppStream/x86_64/os/Packages/ 页面中寻找qemu rpm 包下载安装,如果不能满足需要,请按照下面方法进行编译安装。
```
$ git clone https://gitee.com/anolis/hygon-qemu.git
$ cd hygon-qemu/
@@ -21,7 +67,7 @@ $ sudo /opt/hygon/csv/build_qemu.sh
## 安装grub
-**麒麟系统不需要该步骤,使用系统自带即可,kata 测试不需要该步骤***
+
```
$ wget https://ftp.gnu.org/gnu/grub/grub-2.06.tar.gz
$ tar -xvf grub-2.06.tar.gz
@@ -30,9 +76,15 @@ $ sudo /opt/hygon/csv/build_grub.sh
```
## 安装edk2
-**麒麟系统不需要该步骤,使用系统自带即可,kata 测试不需要该步骤**
**编译依赖安装grub章节**
+
+下面提供了编译好的组件
+```
+wget -c https://download.sourcefind.cn:65024/directlink/8/c86-devkit/previous-release/csv/pkg/OVMF.fd -O /opt/hygon/csv/OVMF.fd
+wget -c https://download.sourcefind.cn:65024/directlink/8/c86-devkit/previous-release/csv/pkg/OVMF_CODE.fd -O /opt/hygon/csv/OVMF_CODE.fd
+```
+如果不能满足需要,请按照下面方法进行编译安装。
```
$ git clone https://gitee.com/anolis/hygon-edk2.git
$ cd hygon-edk2/
@@ -44,27 +96,22 @@ $ sudo /opt/hygon/csv/build_edk2.sh
```
$ cd /opt/hygon/csv/
-$ sudo ./make_vm_img.sh
$ git clone -b master https://github.com/guanzhi/GmSSL.git
$ sudo ./build_devkit.sh
```
-## 安装虚拟机内核
-**kata 测试不需要该步骤**
+## 准备虚拟机
+客户根据需要选择对应的虚拟机,通常选择和主机配套的虚拟机,虚拟机root账号的登录密码为root。
-### 运行虚拟机
+- AnolisOS-8.10-x86_64-ANCK.qcow2
```
-$ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:0 -object sev-guest,id=sev0,policy=0x1,cbitpos=47,reduced-phys-bits=5 -machine memory-encryption=sev0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nographic
+wget -c https://download.sourcefind.cn:65024/directlink/8/c86-devkit/previous-release/csv/AnolisOS-8.10-x86_64-ANCK.qcow2 -O /opt/hygon/csv/vm.qcow2
```
-### 安装虚拟机内核
-虚拟机内核使用主机编译好的内核,登录虚拟机,虚拟机账号为root,密码为root。
+如果客户使用自己定制的虚拟机,且不确定虚拟机中的内核是否支持CSV完整功能,请参考上面**内核安装**更新虚拟机内核。
+
+安装虚拟机内核可以用下面命令启动虚拟机,然后在虚拟机中安装内核
```
-# dhclient
-# scp host@hostip:/opt/hygon/kernel.tgz ./
-# scp host@hostip:/opt/hygon/csv/vm_kernel_install.sh ./
-# chmod +x vm_kernel_install.sh
-# ./vm_kernel_install.sh
-# poweroff
+sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 6114 -hda /opt/hygon/csv/vm.qcow2 -drive if=pflash,format=raw,unit=0,file=/opt/hygon/csv/OVMF_CODE.fd,readonly=on -qmp tcp:127.0.0.1:2222,server,nowait -vnc 0.0.0.0:0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-pci,netdev=net0,romfile= -nographic
```
## 安装后确认主机支持的机密计算类型
@@ -139,15 +186,16 @@ dmesg | grep CSV
表1 主机Linux内核命令行参数及其说明
-| CPU | 主机Linux的内核命令行参数 |
-| --- | --- |
-| 海光2号 | kvm-amd.sev=1 mem_encrypt=on1 |
-| 海光C86-3G | kvm-amd.sev=1 kvm-amd.sev_es=1 mem_encrypt=on1 |
+| CPU | 主机Linux的内核命令行参数 |
+| ---------- | ------------------------------------------------------------ |
+| 海光2号 | kvm-amd.sev=1 mem_encrypt=on1 |
+| 海光C86-3G | kvm-amd.sev=1 kvm-amd.sev_es=1 mem_encrypt=on1 |
| 海光C86-4G | kvm-amd.sev=1 kvm-amd.sev_es=1 mem_encrypt=on1 csv_mem_percentage=XX2 |
- 1. `mem_encrypt=on`表示主机Linux开启SME功能,开启该功能可以保证主机Linux运行时,内存中的数据是加密的,是一种主机侧的内存保护;这是一个可选内核命令行参数,运行海光机密虚拟机不强制要求添加该内核命令行参数。
- 2. `csv_mem_percentage=XX`是使用CSV3功能时,最大可占用服务器总物理内存的比例,其中[XX](#csv3-mem-cmdline)是十进制数字,[XX](#csv3-mem-cmdline)最大为80。例如,当系统内存总量为200G,[XX](#csv3-mem-cmdline)为50时,表示可提供服务器总物理内存的 *50%* (即100G)给CSV3功能使用。
-
+- 3. 通常将上述参数设置在/etc/default/grub 文件的GRUB_CMDLINE_LINUX 中,设置完使其生效,ubuntu系统使用sudo update-grub使其生效,类centos系统使用grub2-mkconfig -o /boot/efi/EFI/OS/grub.cfg,OS 为具体的系统类型,客户根据具体使用的系统进行替换,或者直接通过sudo grubby --update-kernel=ALL --args="csv_mem_percentage=50 amd_iommu=on mem_encrypt=on kvm-amd.sev=1 kvm-amd.sev_es=1"进行设置,sudo grubby --info=$(sudo grubby --default-kernel) 查看grubby 参数设置是否生效,重启系统,系统重新启动后cat /proc/cmdline 检查grub 设置是否生效,cat /sys/module/kvm_amd/parameters/sev 为Y或者1 表示主机支持csv虚拟机,否则表示不支持,cat /sys/module/kvm_amd/parameters/sev_es 为Y或者1 表示主机支持csv2虚拟机,否则表示不支持,cat /proc/meminfo |grep -i cma 输出的内容如果不为0表示cma 内存设置生效,csv3 虚拟机必须设置cma 内存,csv3支持的条件为:硬件支持 + csv + csv2 + cma配置。
+
### 海光机密计算虚拟机分配内存说明
**虚拟机分配内存**:是指qemu/libvirt指定的虚拟机的内存。例如,`/usr/bin/qemu-system-x86_64 ... -m 2G ...`表示为虚拟机分配内存为2G。下表2列出了海光机密计算**虚拟机分配内存**要求: