diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM12.png b/sig/Hygon Arch/assets/HCT/HCT_VM12.png new file mode 100644 index 0000000000000000000000000000000000000000..0989a02fe8012c43730b1985d666f6accd603ba6 Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM12.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM14.png b/sig/Hygon Arch/assets/HCT/HCT_VM14.png new file mode 100644 index 0000000000000000000000000000000000000000..f028d548d9e0f6c42e8816c0ef9a4957de4c7293 Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM14.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM15.png b/sig/Hygon Arch/assets/HCT/HCT_VM15.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9ed6bbb571c8968b8820c6e3632fd46a58ea18 Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM15.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM16.png b/sig/Hygon Arch/assets/HCT/HCT_VM16.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ab8a8a2c8f4e0a0c45b05f0f6a883bf58e073c Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM16.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM17.png b/sig/Hygon Arch/assets/HCT/HCT_VM17.png new file mode 100644 index 0000000000000000000000000000000000000000..99d7cd8220664666585edd347b951b8090df2e94 Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM17.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM18.png b/sig/Hygon Arch/assets/HCT/HCT_VM18.png new file mode 100644 index 0000000000000000000000000000000000000000..5c24a485a71c8fc16f895b4cf9915d2f35098dca Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM18.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM19.png b/sig/Hygon Arch/assets/HCT/HCT_VM19.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf5ebcfe6bec8334c02cb7fd7a179ecef16d909 Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM19.png differ diff --git a/sig/Hygon Arch/assets/HCT/HCT_VM20.png b/sig/Hygon Arch/assets/HCT/HCT_VM20.png new file mode 100644 index 0000000000000000000000000000000000000000..d8cff3bd79a7012621678578bd177eb227e3a9f7 Binary files /dev/null and b/sig/Hygon Arch/assets/HCT/HCT_VM20.png differ diff --git "a/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/1-HCT\347\224\250\346\210\267\346\211\213\345\206\214.md" "b/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/1-HCT\347\224\250\346\210\267\346\211\213\345\206\214.md" index e5f65291223fd1e26c1d8f103b19fd3f1dd93e28..da320cfdcef7f360cde4edd9d6d4a13f348777e2 100644 --- "a/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/1-HCT\347\224\250\346\210\267\346\211\213\345\206\214.md" +++ "b/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/1-HCT\347\224\250\346\210\267\346\211\213\345\206\214.md" @@ -12,14 +12,14 @@ | 组件 | 版本信息 | |--------------|-----------------------| -| CPU | 双路7285 C86 CPU | -| 内存 | 512GB DDR4 | -| 操作系统内核 | Linux kernel 5.4.19 | -| 操作系统 | CentOS 7.9 | -| gcc | 9.3.0 | +| CPU | Hygon C86 7265 | +| 内存 | 128GB DDR4 | +| 操作系统内核 | Linux kernel 5.10 | +| 操作系统 | Ubuntu 18.04 | +| gcc | 7.5.0 | | OpenSSL | 1.1.1c | | numa | 2.0.12 | -| HCT套件 | hct_2.0.0.20240430_release | +| HCT套件 | hct_2.1.0.20241030_release | # **2. HCT下载和环境配置** @@ -42,8 +42,8 @@ hygon-devkit/ │ ├── hct_1.0.1.20230512_rc │ ├── hct_1.1.0.20230730_rc │ ├── hct_1.1.1.20230930_rc - │ └── hct_2.0.0.20240430_release - │ + │ ├── hct_2.0.0.20240430_release + | └── hct_2.1.0.20241030_release └── README.md ``` @@ -75,7 +75,7 @@ sudo yum install numactl -y ``` wget "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1c.tar.gz" -tar –zxvf openssl-1.1.1c.tar.gz +tar -zxvf openssl-1.1.1c.tar.gz cd openssl-1.1.1c ./config --prefix=/usr/local make @@ -103,8 +103,8 @@ sudo yum install libuuid-devel -y Centos: ``` -cd hct/pkg/hct_2.0.0.20240430_release -sudo rpm -ivh --nodeps hct_2.0.0.20240430_release.x86_64.rpm +cd hct/pkg/hct_2.1.0.20241030_release +sudo rpm -ivh --nodeps hct-2.1.0-2024-1030-release.x86_64.rpm ``` **注意:** 安装时必须加上`--nodeps`选项。 @@ -112,29 +112,24 @@ sudo rpm -ivh --nodeps hct_2.0.0.20240430_release.x86_64.rpm Ubuntu: ``` -cd hct/pkg/hct_2.0.0.20240430_release -sudo dpkg -i hct_2.0.0.20240430_release.x86_64.deb +cd hct/pkg/hct_2.1.0.20241030_release +sudo dpkg -i hct-2.1.0-2024-1030-release.x86_64.deb ``` 3\. 安装HCT内核模块 **编译安装HCT内核模块要求内核版本在4.10及以上。** -请将hct_2.0.0.20240430_release目录(如果使用其他版本HCT,请找到对应版本目录)下的Makefile文件下载到任意空目录中,并在该目录下执行以下命令编译并安装HCT内核模块。 +请将hct_2.1.0.20241030_release目录(如果使用其他版本HCT,请找到对应版本目录)下的Makefile文件下载到任意空目录中,并在该目录下执行以下命令编译并安装HCT内核模块。 ``` make sudo make install ``` -4\. 检测并加载必须的内核模块 - -``` -sudo modprobe vfio vfio-pci vfio_iommu_type1 mdev vfio_mdev hct -``` **注意:** modprobe前请确保系统内只有一份HCT内核模块 -5\. 执行配置,绑定CCP +4\. 执行配置,绑定CCP ``` sudo /opt/hygon/hct/hct/script/hctconfig start @@ -157,28 +152,28 @@ cd /opt/hygon/hct/bin cd /opt/hygon/hct/bin #同步多进程CCP硬件计算测试 -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd ccp sm2enc -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd ccp sm2sign -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd ccp -bytes 1024 -evp sm3 -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd ccp -bytes 1024 -evp sm4 +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd ccp sm2enc +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd ccp sm2sign +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd ccp -bytes 1024 -evp sm3 +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd ccp -bytes 1024 -evp sm4 #同步多进程CPU软件计算测试 -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd sw_avx sm2enc -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd sw_avx sm2sign -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd sw_avx -bytes 1024 -evp sm3 -./hct_speed -elapsed -engine hct -multi 128 -seconds 60 -cmd sw_avx -bytes 1024 -evp sm4 +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd sw_avx sm2enc +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd sw_avx sm2sign +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd sw_avx -bytes 1024 -evp sm3 +./hct_speed -elapsed -engine hct -multi 128 -seconds 10 -cmd sw_avx -bytes 1024 -evp sm4 # 异步多进程CCP硬件计算测试 -./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 60 -cmd ccp sm2enc -./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 60 -cmd ccp sm2sign -./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 60 -cmd ccp -bytes 1024 -evp sm3 -./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 60 -cmd ccp -bytes 1024 -evp sm4 +./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 10 -cmd ccp sm2enc +./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 10 -cmd ccp sm2sign +./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 10 -cmd ccp -bytes 1024 -evp sm3 +./hct_speed -elapsed -engine hct -multi 128 -async_jobs 512 -seconds 10 -cmd ccp -bytes 1024 -evp sm4 #同步多线程CCP硬件计算测试 -./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 60 -cmd ccp sm2enc -./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 60 -cmd ccp sm2sign -./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 60 -cmd ccp -bytes 1024 -evp sm3 -./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 60 -cmd ccp -bytes 1024 -evp sm4 +./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 10 -cmd ccp sm2enc +./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 10 -cmd ccp sm2sign +./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 10 -cmd ccp -bytes 1024 -evp sm3 +./hct_speed -elapsed -engine hct -multi-thread -multi 128 -seconds 10 -cmd ccp -bytes 1024 -evp sm4 ``` **Tips:** hct_speed各个参数说明以及所有用法均可通过`./hct_speed --help`进行查询 @@ -206,7 +201,7 @@ __另外部分旧有的BIOS也可以采用在线升级的方式更新BIOS,详 ``` **说明:CPU芯片中包含两类CCP协处理器,一类为PSP CCP,一类为NTB CCP,通常BIOS只会将NTB CCP配置给用户使用,PSP CCP一般用于可信计算场景。如果BIOS支持将PSP CCP配置给用户(C86)使用,那么HCT就可以获得更多的协处理器资源,表现出更高的性能。** -3\. hct_2.0.0.20240430_release版本支持noiommu使用场景,支持2M大页和1G大页两种模式,可参考如下提示使用 +3\. hct_2.0.0.20240430_release版本之后支持noiommu使用场景,支持2M大页和1G大页两种模式,可参考如下提示使用 ``` 提示: Ⅰ. 确保内核CONFIG_VFIO_NOIOMMU配置为打开状态 @@ -216,4 +211,6 @@ __另外部分旧有的BIOS也可以采用在线升级的方式更新BIOS,详 Ⅴ. 若开启了内存加密,即在grub中配置了sme=on,则需要加载hct.ko,否则该功能无法正常使用 ``` -4\. hct_2.0.0.20240430_release版本相较于以往版本,在用户态代码(hct.so和libhcts.so)和内核模块代码(hct.c)均有较多改动,建议这两部分同步进行更新,若升级此版本时,只更新用户态代码或只更新内核模块代码,则可能出现异常 +4\. hct_2.1.0.20241030_release版本相较于以往版本,在用户态代码(hct.so和libhcts.so)和内核模块代码(hct.c)均有较多改动,建议这两部分同步进行更新,若升级此版本时,只更新用户态代码或只更新内核模块代码,则可能出现异常 + +5\. hct_2.1.0.20241030_release版本支持openssl-3.0.xx,可根据需要选择对应的openssl版本进行安装,步骤同2.2节中安装openssl-1.1.1c \ No newline at end of file diff --git "a/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/3-HCT\350\231\232\346\213\237\345\214\226\346\214\207\345\257\274\346\226\207\346\241\243.md" "b/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/3-HCT\350\231\232\346\213\237\345\214\226\346\214\207\345\257\274\346\226\207\346\241\243.md" index 386f9168614088b36431e89f94cf6609926c16aa..60500448523771a61a70e6fa910e45018fbbf596 100644 --- "a/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/3-HCT\350\231\232\346\213\237\345\214\226\346\214\207\345\257\274\346\226\207\346\241\243.md" +++ "b/sig/Hygon Arch/content/3-HCT\346\265\213\350\257\225\346\226\207\346\241\243/3-HCT\350\231\232\346\213\237\345\214\226\346\214\207\345\257\274\346\226\207\346\241\243.md" @@ -1,14 +1,24 @@ ## 1. 宿主机环境准备 +测试环境 +| 组件 | 版本信息 | +|--------------|-----------------------| +| CPU | Hygon C86 7265 | +| 操作系统 | Ubuntu 18.04 | +| 操作系统内核 | Linux kernel 5.16.20 | +| OpenSSL | 1.1.1c | +| libvirt | 5.8.0 | +| HCT套件 | hct_2.1.0.20241030_release | ### 1.1 安装HCT开发包 -参照[《HCT用户手册》](./1-HCT用户手册.md)在宿主机中搭建开发环境,当主机HCT环境验证通过后,请务必通过下列命令重新绑定HCT驱动: +参照[《HCT用户手册》](./1-HCT用户手册.md)在宿主机中搭建开发环境,当主机HCT环境验证通过后,请通过下列命令重新绑定HCT驱动: ``` $ sudo /opt/hygon/hct/hct/script/hctconfig stop -$ sudo /opt/hygon/hct/hct/script/hctconfig start +$ sudo /opt/hygon/hct/hct/script/hctconfig start -p 16 -q 128 ``` +此处-p 16是创建16个宿主机使用的mdev设备,-q 128是创建128个虚拟机使用的mdev,用户可根据需求自行修改。 -Tips:主机HCT环境验证通过后,驱动会被初始化为主机使用模式,无法再支持虚拟化,因此需要先解绑驱动,将HCT环境重置 +如需启动带vTKM功能的虚拟机,请先参照[《密钥管理功能测试》](./2-密钥管理功能测试.md)在宿主机中搭建开发环境。 ### 1.2 编译安装qemu @@ -17,14 +27,20 @@ Tips:主机HCT环境验证通过后,驱动会被初始化为主机使用模 $ sudo apt install libnuma-dev libpixman-1-dev -y ``` 从如下链接获取支持HCT虚拟化功能的qemu源码,本文档以qemu-6.2.0为例,用户可根据需求切换qemu的版本号:https://gitee.com/anolis/hygon-qemu -Tips:当前支持的版本有:2.12.0, 4.1.0, 6.2.0, 7.2.0。支持hct虚拟化功能的commit-id 如下: +Tips:当前支持的版本有:2.12.0, 4.1.0, 6.2.0, 7.2.0。支持hct虚拟化功能的commit-id如下: | 版本 | commit-id | |-----------------|-----------------------| -|2.12.0 | 4647a04c4d18101bac28f1f4b565ff4030f1a1ae
949469447da28932384cfa8a3dfe9b567806320c | -|4.1.0 | 5e27416a21450f54f4d4eb040532069771f1b5d3
32097e5ec58f70d59022321ad5752e4c46863c2b | -|6.2.0 | 1886abda05f878303b140a345d53ffd899675be6
b046474dbc2560434dc1d2f4485b8b474d7d23e0 | -|7.2.0 | 6e868fb05ab96a27d26aaa71ecbf99352f29a5e5
950ae0538455f3505e9935807f4c1d1511674eb4 | +|2.12.0 | 4647a04c4d18101bac28f1f4b565ff4030f1a1ae
949469447da28932384cfa8a3dfe9b567806320c
f105775ec610cff1982a14ec766d236ad55b5109 | +|4.1.0 | 5e27416a21450f54f4d4eb040532069771f1b5d3
32097e5ec58f70d59022321ad5752e4c46863c2b
a841c63f46321d1937d0e41c5cc76076b5bad2be| +|6.2.0 | 1886abda05f878303b140a345d53ffd899675be6
b046474dbc2560434dc1d2f4485b8b474d7d23e0
77e0f539ef8daacd27ea0f77dfed4b3a5c35d610| +|7.2.0 | 6e868fb05ab96a27d26aaa71ecbf99352f29a5e5
950ae0538455f3505e9935807f4c1d1511674eb4
21e118a70be9fac634f9910aa0029e4cdcdc94f1| + +如需使用vTKM完整功能,请获取如下patch(当前仅支持6.2.0版本) +| 版本 | commit-id | +|-----------------|-----------------------| +|6.2.0 |9b4396f8c8db6ebef8bd0b315d6649365123db0e(支持密钥隔离)
76a47a90f9ecee19f86039fdea992c7d5c1f4d22 (CSV虚拟机功能支持)
c5b9286549f37f14e8ddbfb7831a6b7d125b1f65(CSV虚拟机功能支持)
da768933bfcec318425f788524b792e58bdf51ad (CSV虚拟机功能支持)| + qemu源码下载完成后执行如下命令进行编译安装。如使用7.2.0版本,请安装libslirp-dev,并在./configure后加上--enable-slirp参数。 ``` @@ -44,8 +60,8 @@ $ tree ../output 下载操作系统镜像。 ``` $ cd .. -$ mkdir ios -$ cd ios +$ mkdir iso +$ cd iso $ wget http://mirrors.aliyun.com/ubuntu-releases/18.04/ubuntu-18.04.6-live-server-amd64.iso ``` 用如下命令创建一个大小为20G的虚拟磁盘。 @@ -75,9 +91,18 @@ $ xtightvncviewer $ /opt/hygon/hct/hct/script/start_qemu.py -q ../output/qemu-output/bin/qemu-system-x86_64 -n 1 -i hct.qcow2 ``` -q后的参数为qemu可执行程序,可根据安装位置自行指定,默认为系统目录下的qemu-system-x86_64;-n后的参数为启动虚拟机的数量;-i后的参数为装有操作系统的虚拟磁盘,需要指定路径。 - ![](../../assets/HCT/HCT_VM11.png) +如需启动带vTKM功能的虚拟机,先使用hag工具创建vid。并在脚本后请加--vid {vid_num} 参数。 +``` +$ cd /opt/hygon/bin +$ sudo ./hag tkm vtkm_create -mode shared +$ /opt/hygon/hct/hct/script/start_qemu.py -q ../output/qemu-output/bin/qemu-system-x86_64 -n 1 -i hct.qcow2 --vid 1 +``` +![](../../assets/HCT/HCT_VM17.png) + + + 虚拟机成功启动后,使用如下命令查询虚拟机状态及对应端口号。 ``` $ /opt/hygon/hct/hct/script/start_qemu.py -s @@ -91,8 +116,8 @@ $ ssh -p 2220 hygon@localhost ``` ![](../../assets/HCT/HCT_VM5.png) -注意,此后的操作均在虚拟机中执行。 -安装依赖的软件。安装软件前请保持虚拟机和宿主机的apt源一致。 +注意,此后的操作如无特殊说明,均在虚拟机中执行。 +安装依赖软件。安装软件前请保持虚拟机和宿主机的apt源一致。 ``` $ sudo apt install -y make build-essential python ``` @@ -125,7 +150,11 @@ $ sudo bash -c "echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode" $ cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode ``` ![](../../assets/HCT/HCT_VM8.png) + +如需验证vTKM功能,请先参照[《密钥管理功能测试》](./2-密钥管理功能测试.md) 1.1节,在虚拟机中安装对应的deb/rpm包。 + ## 3. 功能测试 +### 3.1 HCT功能测试 将CCP设备绑定到vfio-pci驱动。 ``` $ sudo /opt/hygon/hct/hct/script/hctconfig start -m vfio-pci @@ -140,6 +169,41 @@ $ sudo /opt/hygon/hct/bin/hct_speed -elapsed -engine hct -multi 1 -seconds 10 sm ``` ![](../../assets/HCT/HCT_VM10.png) + +### 3.2 vTKM功能测试 +如无vTKM功能需求,可跳过。 + +1\. 在主机中生成sm2签名密钥,这里以类型为sm2索引为666号密钥为例,然后使用该密钥对一个数据摘要进行签名(宿主机中进行); +``` +$ echo 87654321 | xxd -r -ps > intl.auth +$ sudo ./hag tkm rand_get -len 32 -out data32.plain +$ sudo ./hag tkm intl_key_gen -type sm2sign -idx 666 -auth intl.auth +$ sudo ./hag tkm sm2_sign -handle 0xa00029a -auth intl.auth -in data32.plain -out sm2_sign.bin +``` +![](../../assets/HCT/HCT_VM18.png) + +2\. 将主机中生成的data32.plain和sm2_sign.bin拷贝到虚拟机中(虚拟机中进行); +``` +$ scp {hostuser}@{hostip}:{file_path}/data32.plain ./ +$ scp {hostuser}@{hostip}:{file_path}/sm2_sign.bin ./ +``` +3\. 在虚拟机中通过与主机相同的密钥句柄导出其公钥(虚拟机中进行); +``` +$ sudo ./hag tkm pubkey_export -handle 0xa00029a -out sm2_pubkey.bin +``` +![](../../assets/HCT/HCT_VM19.png) + +4\. 使用公钥对主机的签名值进行验签(虚拟机中进行); +``` +$ sudo ./hag tkm sm2_verify -dgst data32.plain -pub sm2_pubkey.bin -sig sm2_sign.bin +``` +![](../../assets/HCT/HCT_VM20.png) + +5\. 清理主机环境(宿主机中进行)。 +``` +$ sudo ./hag tkm key_destroy -handle 0xa00029a -auth intl.auth +``` + ## 4. 备注 ### 4.1 注意事项 虚拟机与宿主机一样,都支持1G和2M内存大页,默认为2M,如需使用1G内存大页,可参考[《HCT用户手册》](./1-HCT用户手册.md)。 @@ -159,4 +223,127 @@ start_qemu.py启动虚拟机的参数为 ../output/qemu-output/bin/qemu-system-x |-object memory-backend-ram,id=mem0,size=4G,policy=bind,host-nodes=2 |创建一个内存对象,分配4G内存,并将它绑定在宿主机的numa2上| |-numa node,memdev=mem0,cpus=0-5,cpus=18-23,nodeid=0 |创建一个numa节点,关联内存,并指定与vcpu关联| |-device hct,sysfsdev=/sys/bus/mdev/devices/{uuid} |虚拟机中添加一个hct设备 | -|-daemonize |后台运行虚拟机 | \ No newline at end of file +|-daemonize |后台运行虚拟机 | + + +## 5. libvirt中使用虚拟机 +使用前请自行安装4.5及以上版本的libvirt。可参考官方文档https://libvirt.org/docs.html +### 5.1 配置文件修改 + +编辑/etc/libvirt/qemu.conf,并设置用户参数。 +``` +user = "root" +group = "root" +``` +![](../../assets/HCT/HCT_VM12.png) + +安装libvirt及lxml的python插件。 +``` +$ sudo pip3 install libvirt-python +$ sudo pip3 install lxml +``` +更新/etc/libvirt/qemu.conf中的cgroup_device_acl设备列表。 +``` +$ sudo /opt/hygon/hct/hct/script/start_qemu.py --update_qemu_conf +``` +如需使用vTKM功能,请在cgroup_device_acl中加入"/dev/hygon_psp_config"设备。 + +重启libvirt服务。 + +``` +$ sudo service libvirtd restart +``` + +### 5.2 导入虚拟机 +导入新的虚拟机,并查看状态。 +``` +$ sudo virsh define test.xml +$ sudo virsh list --all +``` +![](../../assets/HCT/HCT_VM15.png) + +如需使用vTKM功能,请在test.xml中的部分加入 +。 + +### 5.3 更新xml配置 +更新xml中的hct设备。 +``` +$ sudo /opt/hygon/hct/hct/script/start_qemu.py --update_xml hct_test01 +``` +![](../../assets/HCT/HCT_VM14.png) + +启动虚拟机。 +``` +$ sudo virsh start hct_test01 +``` +![](../../assets/HCT/HCT_VM16.png) + +虚拟机开启后可通过ssh或是vnc登录。 + +### 5.4 xml示例配置 +如下为启动一个hct功能虚拟机的基本配置,仅供参考。注意将配置中emulatorsource file中的{your_path}替换成真实路径。如需在其他虚拟机配置中使用hct,确保配置文件中存在qemu:commandline即可。 +``` + + hct_test01 + 16 + 16 + 32 + + /machine + + + hvm + + + + destroy + restart + destroy + + /{your_path}/qemu-system-x86_64 + + + + + + +
+ + + +
+ + + + + + + +