From c78daccefe9b9e9e325a7a9be39cb986b0d0ae77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:12:12 +0000 Subject: [PATCH 01/19] =?UTF-8?q?add=20docs/zh/docs/Virtualization/Libcare?= =?UTF-8?q?plus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...43\345\206\263\346\226\271\346\263\225.md" | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 "docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" new file mode 100644 index 000000000..8c97fb940 --- /dev/null +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -0,0 +1,83 @@ +问题1:如何使用libcareplus工具制作qemu热补丁? +制作方法如下: +a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致。 + ```shell +# 下载qemu源码并解压 +yum download --source qemu +rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id +b.编译qemu制品仓代码 + ``` +将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) +编译qemu.spec + ```shell +rpmbuild -ba qemu.spec + ``` +有两份成果物: +/root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 +/root/rpmbuild/RPMS/中生成qemu相关的rpm包。 + +c.制作patch + + 使用git format-patch指令制作patch即可。 + + ```shell + # cat 0001-hack-hmp-qtree-info.patch + From bb2f4e6fe43ca7b3d73026966ac3411b2d8342b9 Mon Sep 17 00:00:00 2001 + From: zhangsan + Date: Mon, 7 Mar 2022 20:53:41 +0800 + Subject: [PATCH 1/3] hack hmp qtree info + + --- + softmmu/qdev-monitor.c | 1 + + 1 file changed, 1 insertion(+) + + diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c + index 05e1d88d99..96fd596c2e 100644 + --- a/softmmu/qdev-monitor.c + +++ b/softmmu/qdev-monitor.c + @@ -833,6 +833,7 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent) + + void hmp_info_qtree(Monitor *mon, const QDict *qdict) + { + + fprintf(stderr, "---------------you hack me---------------------"); + if (sysbus_get_default()) + qbus_print(mon, sysbus_get_default(), 0); + } + -- + 2.33.0 + + ``` + +d.配置/etc/libcare.conf + 填写patch修改的函数名。 + + ```shell + # cat /etc/libcare.conf + hmp_info_qtree + ``` + + 获取Qemu版本基线 + + 查看qemu buildID + + ```shell + # whereis qemu-kvm + qemu-kvm: /usr/bin/qemu-kvm /usr/libexec/qemu-kvm + # file /usr/libexec/qemu-kvm + /usr/libexec/qemu-kvm: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b, for GNU/Linux 3.7.0, stripped + ``` +注:/usr/libexec/qemu-kvm为上述编rpm包并安装到openEuler环境来的。 + +e.制作热补丁 + +在/home/abuild/rpmbuild/BUILD/qemu-6.2.0/build中执行热补丁制作指令,**注意是build目录!!!** + +```shell +# libcare-patch-make --clean -s ../ 0002-patch-hello-qdm.patch -i 0001 --buildid=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b -j 64 +``` +参数说明: +--clean 类似make clean +-s ../ 指定源文件夹,这里是上层目录 +-i 0001 热补丁id +buildid=xxx 保持和系统中qemu-kvm buildid一致 +-j 64 多线程编译 \ No newline at end of file -- Gitee From 55f6be1d1886a98305d9dc6dcc66489b721b6366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:13:01 +0000 Subject: [PATCH 02/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...4\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index 8c97fb940..c948427b4 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -1,4 +1,5 @@ 问题1:如何使用libcareplus工具制作qemu热补丁? + 制作方法如下: a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致。 ```shell -- Gitee From ce120d8f34b5bed4fe5dd69e7ae2742f71866627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:14:53 +0000 Subject: [PATCH 03/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index c948427b4..7b066b1f8 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -1,4 +1,4 @@ -问题1:如何使用libcareplus工具制作qemu热补丁? +### 问题1:如何使用libcareplus工具制作qemu热补丁? 制作方法如下: a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致。 -- Gitee From c0f92cf0ccd2df9b8389a292c9d9e678569bb5b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:16:12 +0000 Subject: [PATCH 04/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...0\247\243\345\206\263\346\226\271\346\263\225.md" | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index 7b066b1f8..af69eb9ce 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -1,12 +1,14 @@ ### 问题1:如何使用libcareplus工具制作qemu热补丁? 制作方法如下: -a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致。 + +#### a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致。 ```shell # 下载qemu源码并解压 yum download --source qemu rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id -b.编译qemu制品仓代码 + +#### b.编译qemu制品仓代码 ``` 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) 编译qemu.spec @@ -17,7 +19,7 @@ rpmbuild -ba qemu.spec /root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 -c.制作patch +#### c.制作patch 使用git format-patch指令制作patch即可。 @@ -49,7 +51,7 @@ c.制作patch ``` -d.配置/etc/libcare.conf +#### d.配置/etc/libcare.conf 填写patch修改的函数名。 ```shell @@ -69,7 +71,7 @@ d.配置/etc/libcare.conf ``` 注:/usr/libexec/qemu-kvm为上述编rpm包并安装到openEuler环境来的。 -e.制作热补丁 +#### e.制作热补丁 在/home/abuild/rpmbuild/BUILD/qemu-6.2.0/build中执行热补丁制作指令,**注意是build目录!!!** -- Gitee From d582101a1fda52135e4cd7b80bbc9a22684d4e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:19:10 +0000 Subject: [PATCH 05/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...350\247\243\345\206\263\346\226\271\346\263\225.md" | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index af69eb9ce..00b64207b 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -2,14 +2,15 @@ 制作方法如下: -#### a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致。 +#### a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致 ```shell # 下载qemu源码并解压 yum download --source qemu rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id + ``` #### b.编译qemu制品仓代码 - ``` + 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) 编译qemu.spec ```shell @@ -19,7 +20,7 @@ rpmbuild -ba qemu.spec /root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 -#### c.制作patch +#### c.制作热补丁所需的patch文件 使用git format-patch指令制作patch即可。 @@ -52,7 +53,8 @@ rpmbuild -ba qemu.spec ``` #### d.配置/etc/libcare.conf - 填写patch修改的函数名。 + /etc/libcare.conf填上patch文件修改的函数,用于后续制作补丁时,过滤掉不相关的函数; + 当前修改内容如下: ```shell # cat /etc/libcare.conf -- Gitee From 3904ff40ce81d44d4a01efd651651ed34d7f63be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:28:15 +0000 Subject: [PATCH 06/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...\247\243\345\206\263\346\226\271\346\263\225.md" | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index 00b64207b..79b7d21a7 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -12,13 +12,14 @@ rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id #### b.编译qemu制品仓代码 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) + 编译qemu.spec ```shell rpmbuild -ba qemu.spec ``` 有两份成果物: -/root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 -/root/rpmbuild/RPMS/中生成qemu相关的rpm包。 +- /root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 +- /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 #### c.制作热补丁所需的patch文件 @@ -61,9 +62,7 @@ rpmbuild -ba qemu.spec hmp_info_qtree ``` - 获取Qemu版本基线 - - 查看qemu buildID +#### e.查看qemu buildID ```shell # whereis qemu-kvm @@ -71,9 +70,9 @@ rpmbuild -ba qemu.spec # file /usr/libexec/qemu-kvm /usr/libexec/qemu-kvm: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b, for GNU/Linux 3.7.0, stripped ``` -注:/usr/libexec/qemu-kvm为上述编rpm包并安装到openEuler环境来的。 +注:需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以自行编包并安装,使用自编包中的/usr/libexec/qemu-kvm的buildID。 -#### e.制作热补丁 +#### f.制作热补丁 在/home/abuild/rpmbuild/BUILD/qemu-6.2.0/build中执行热补丁制作指令,**注意是build目录!!!** -- Gitee From b886dfa12e1cc89335c5bb6651c93ff6f58cc738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:29:08 +0000 Subject: [PATCH 07/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...350\247\243\345\206\263\346\226\271\346\263\225.md" | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index 79b7d21a7..02f0153ac 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -11,9 +11,9 @@ rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id #### b.编译qemu制品仓代码 -将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) +- 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) -编译qemu.spec +- 编译qemu.spec ```shell rpmbuild -ba qemu.spec ``` @@ -81,7 +81,11 @@ rpmbuild -ba qemu.spec ``` 参数说明: --clean 类似make clean + -s ../ 指定源文件夹,这里是上层目录 + -i 0001 热补丁id + buildid=xxx 保持和系统中qemu-kvm buildid一致 --j 64 多线程编译 \ No newline at end of file + +-j 64 多线程编译 -- Gitee From d288410da9fb39e513a0a7367c35c9bb9b36dd90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:29:40 +0000 Subject: [PATCH 08/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...4\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index 02f0153ac..bd828badc 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -14,6 +14,7 @@ rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id - 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) - 编译qemu.spec + ```shell rpmbuild -ba qemu.spec ``` -- Gitee From 9e486ad22fe67ca25b0c56bb1b75ca8e7edf92e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:30:03 +0000 Subject: [PATCH 09/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?areplus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index bd828badc..1364a8c61 100644 --- "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -16,8 +16,9 @@ rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id - 编译qemu.spec ```shell -rpmbuild -ba qemu.spec + rpmbuild -ba qemu.spec ``` + 有两份成果物: - /root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 - /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 -- Gitee From 611afb481103e31a9b740a2b790bc3da81658b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:36:11 +0000 Subject: [PATCH 10/19] rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...44\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" => "docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" (100%) diff --git "a/docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" similarity index 100% rename from "docs/zh/docs/Virtualization/Libcareplus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" rename to "docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" -- Gitee From b47db0e73df9ee1457198e4c397fed021f3d606a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Thu, 30 May 2024 14:36:35 +0000 Subject: [PATCH 11/19] update docs/zh/menu/index.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- docs/zh/menu/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/zh/menu/index.md b/docs/zh/menu/index.md index db1fc332e..97a39f530 100644 --- a/docs/zh/menu/index.md +++ b/docs/zh/menu/index.md @@ -178,6 +178,7 @@ headless: true - [工具使用指南]({{< relref "./docs/Virtualization/工具使用指南.md" >}}) - [vmtop]({{< relref "./docs/Virtualization/vmtop.md" >}}) - [LibcarePlus]({{< relref "./docs/Virtualization/LibcarePlus.md" >}}) + - [LibcarePlus常见问题与解决方法]({{< relref "./docs/zh/docs/Virtualization/LibcarePlus常见问题与解决方法.md" >}}) - [Skylark虚拟机混部]({{< relref "./docs/Virtualization/Skylark.md" >}}) - [附录]({{< relref "./docs/Virtualization/附录.md" >}}) - [StratoVirt用户指南]({{< relref "./docs/StratoVirt/StratoVirtGuide.md" >}}) -- Gitee From 1e5635ad83eecfd1654589d1cd1c9bc0b9231551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:04:59 +0000 Subject: [PATCH 12/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/Libc?= =?UTF-8?q?arePlus=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...16\350\247\243\345\206\263\346\226\271\346\263\225.md" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index 1364a8c61..ce96e19c3 100644 --- "a/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -6,12 +6,12 @@ ```shell # 下载qemu源码并解压 yum download --source qemu -rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id +rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id ``` #### b.编译qemu制品仓代码 -- 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-6.2.0.tar.xz组成) +- 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-8.2.0.tar.xz组成) - 编译qemu.spec @@ -20,7 +20,7 @@ rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id ``` 有两份成果物: -- /root/rpmbuild/BUILD/qemu-6.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-6.2.0,编译环境的路径也会影响补丁地址的偏移。 +- /root/rpmbuild/BUILD/qemu-8.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-8.2.0,编译环境的路径也会影响补丁地址的偏移。 - /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 #### c.制作热补丁所需的patch文件 @@ -76,7 +76,7 @@ rpm2cpio qemu-6.2.0-25.oe1.src.rpm | cpio -id #### f.制作热补丁 -在/home/abuild/rpmbuild/BUILD/qemu-6.2.0/build中执行热补丁制作指令,**注意是build目录!!!** +在/home/abuild/rpmbuild/BUILD/qemu-8.2.0/build中执行热补丁制作指令,**注意是build目录!!!** ```shell # libcare-patch-make --clean -s ../ 0002-patch-hello-qdm.patch -i 0001 --buildid=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b -j 64 -- Gitee From 85ec74a203e7c8c7686c5d8bd132cb71c7c492e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:11:02 +0000 Subject: [PATCH 13/19] update docs/zh/docs/Virtualization/LibcarePlus.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- docs/zh/docs/Virtualization/LibcarePlus.md | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/docs/zh/docs/Virtualization/LibcarePlus.md b/docs/zh/docs/Virtualization/LibcarePlus.md index 52f5fef43..ce6b99686 100644 --- a/docs/zh/docs/Virtualization/LibcarePlus.md +++ b/docs/zh/docs/Virtualization/LibcarePlus.md @@ -395,3 +395,98 @@ LibcarePlus 支持如下方式制作热补丁: Hello world! Hello world! ``` + +## 使用libcareplus工具制作qemu热补丁 + +制作方法如下: + +### 1.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致 + ```shell +# 下载qemu源码并解压 +yum download --source qemu +rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id + ``` + +### 2.编译qemu制品仓代码 + +- 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-8.2.0.tar.xz组成) + +- 编译qemu.spec + + ```shell + rpmbuild -ba qemu.spec + ``` + +有两份成果物: +- /root/rpmbuild/BUILD/qemu-8.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-8.2.0,编译环境的路径也会影响补丁地址的偏移。 +- /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 + +### 3.制作热补丁所需的patch文件 + + 使用git format-patch指令制作patch即可。 + + ```shell + # cat 0001-hack-hmp-qtree-info.patch + From bb2f4e6fe43ca7b3d73026966ac3411b2d8342b9 Mon Sep 17 00:00:00 2001 + From: zhangsan + Date: Mon, 7 Mar 2022 20:53:41 +0800 + Subject: [PATCH 1/3] hack hmp qtree info + + --- + softmmu/qdev-monitor.c | 1 + + 1 file changed, 1 insertion(+) + + diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c + index 05e1d88d99..96fd596c2e 100644 + --- a/softmmu/qdev-monitor.c + +++ b/softmmu/qdev-monitor.c + @@ -833,6 +833,7 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent) + + void hmp_info_qtree(Monitor *mon, const QDict *qdict) + { + + fprintf(stderr, "---------------you hack me---------------------"); + if (sysbus_get_default()) + qbus_print(mon, sysbus_get_default(), 0); + } + -- + 2.33.0 + + ``` + +### 3.配置/etc/libcare.conf + /etc/libcare.conf填上patch文件修改的函数,用于后续制作补丁时,过滤掉不相关的函数; + 当前修改内容如下: + + ```shell + # cat /etc/libcare.conf + hmp_info_qtree + ``` + +#### e.查看qemu buildID + + ```shell + # whereis qemu-kvm + qemu-kvm: /usr/bin/qemu-kvm /usr/libexec/qemu-kvm + # file /usr/libexec/qemu-kvm + /usr/libexec/qemu-kvm: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b, for GNU/Linux 3.7.0, stripped + ``` +注:需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以自行编包并安装,使用自编包中的/usr/libexec/qemu-kvm的buildID。 + +### 4.制作热补丁 + +在/home/abuild/rpmbuild/BUILD/qemu-8.2.0/build中执行热补丁制作指令,**注意是build目录!!!** + +```shell +# libcare-patch-make --clean -s ../ 0002-patch-hello-qdm.patch -i 0001 --buildid=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b -j 64 +``` +参数说明: +--clean 类似make clean + +-s ../ 指定源文件夹,这里是上层目录 + +-i 0001 热补丁id + +buildid=xxx 保持和系统中qemu-kvm buildid一致 + +-j 64 多线程编译 + -- Gitee From 4be8898f512fdf75580d518e250aa4fab675d176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:12:24 +0000 Subject: [PATCH 14/19] update docs/zh/docs/Virtualization/LibcarePlus.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- docs/zh/docs/Virtualization/LibcarePlus.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/zh/docs/Virtualization/LibcarePlus.md b/docs/zh/docs/Virtualization/LibcarePlus.md index ce6b99686..d81465fd3 100644 --- a/docs/zh/docs/Virtualization/LibcarePlus.md +++ b/docs/zh/docs/Virtualization/LibcarePlus.md @@ -6,6 +6,7 @@ - [安装 LibcarePlus](#安装-libcareplus) - [制作 LibcarePlus 热补丁](#制作-libcareplus-热补丁) - [应用 LibcarePlus 热补丁](#应用-libcareplus-热补丁) +- [使用libcareplus工具制作qemu热补丁](#使用libcareplus工具制作qemu热补丁) ## 概述 @@ -462,7 +463,7 @@ rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id hmp_info_qtree ``` -#### e.查看qemu buildID +### 4.查看qemu buildID ```shell # whereis qemu-kvm @@ -472,7 +473,7 @@ rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id ``` 注:需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以自行编包并安装,使用自编包中的/usr/libexec/qemu-kvm的buildID。 -### 4.制作热补丁 +### 5.制作热补丁 在/home/abuild/rpmbuild/BUILD/qemu-8.2.0/build中执行热补丁制作指令,**注意是build目录!!!** -- Gitee From 74f9c3c5fc8d63019bdb1e6bf3343e0b1c20097e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:13:21 +0000 Subject: [PATCH 15/19] update docs/zh/docs/Virtualization/LibcarePlus.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- docs/zh/docs/Virtualization/LibcarePlus.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/zh/docs/Virtualization/LibcarePlus.md b/docs/zh/docs/Virtualization/LibcarePlus.md index d81465fd3..ee60cc586 100644 --- a/docs/zh/docs/Virtualization/LibcarePlus.md +++ b/docs/zh/docs/Virtualization/LibcarePlus.md @@ -481,13 +481,10 @@ rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id # libcare-patch-make --clean -s ../ 0002-patch-hello-qdm.patch -i 0001 --buildid=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b -j 64 ``` 参数说明: ---clean 类似make clean +--clean 类似make clean -s ../ 指定源文件夹,这里是上层目录 - -i 0001 热补丁id - buildid=xxx 保持和系统中qemu-kvm buildid一致 - -j 64 多线程编译 -- Gitee From e0e063a5f545c689b08c4540b0701f4df6023721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:14:17 +0000 Subject: [PATCH 16/19] update docs/zh/docs/Virtualization/LibcarePlus.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- docs/zh/docs/Virtualization/LibcarePlus.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/zh/docs/Virtualization/LibcarePlus.md b/docs/zh/docs/Virtualization/LibcarePlus.md index ee60cc586..3e3fb5725 100644 --- a/docs/zh/docs/Virtualization/LibcarePlus.md +++ b/docs/zh/docs/Virtualization/LibcarePlus.md @@ -483,8 +483,12 @@ rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id 参数说明: --clean 类似make clean + -s ../ 指定源文件夹,这里是上层目录 + -i 0001 热补丁id + buildid=xxx 保持和系统中qemu-kvm buildid一致 + -j 64 多线程编译 -- Gitee From 4b70d68ce7c78fd7c64c0b02684d8dbe5a040caa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:22:32 +0000 Subject: [PATCH 17/19] rename MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...43\345\206\263\346\226\271\346\263\225.md" | 93 ------------------- ...43\345\206\263\346\226\271\346\263\225.md" | 4 + 2 files changed, 4 insertions(+), 93 deletions(-) delete mode 100644 "docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" create mode 100644 "docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" diff --git "a/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" deleted file mode 100644 index ce96e19c3..000000000 --- "a/docs/zh/docs/Virtualization/LibcarePlus\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ /dev/null @@ -1,93 +0,0 @@ -### 问题1:如何使用libcareplus工具制作qemu热补丁? - -制作方法如下: - -#### a.下载qemu制品仓代码,保持代码版本与openEuler环境中qemu版本一致 - ```shell -# 下载qemu源码并解压 -yum download --source qemu -rpm2cpio qemu-8.2.0-13.oe2403.src.rpm | cpio -id - ``` - -#### b.编译qemu制品仓代码 - -- 将解压后的qemu源码挪至/root/rpmbuild/SOURCES(由多个patch、一个qemu.spec、一个qemu-8.2.0.tar.xz组成) - -- 编译qemu.spec - - ```shell - rpmbuild -ba qemu.spec - ``` - -有两份成果物: -- /root/rpmbuild/BUILD/qemu-8.2.0中生成中间代码,为编译qemu对应代码。将代码拷贝到/home/abuild/rpmbuild/BUILD/qemu-8.2.0,编译环境的路径也会影响补丁地址的偏移。 -- /root/rpmbuild/RPMS/中生成qemu相关的rpm包。 - -#### c.制作热补丁所需的patch文件 - - 使用git format-patch指令制作patch即可。 - - ```shell - # cat 0001-hack-hmp-qtree-info.patch - From bb2f4e6fe43ca7b3d73026966ac3411b2d8342b9 Mon Sep 17 00:00:00 2001 - From: zhangsan - Date: Mon, 7 Mar 2022 20:53:41 +0800 - Subject: [PATCH 1/3] hack hmp qtree info - - --- - softmmu/qdev-monitor.c | 1 + - 1 file changed, 1 insertion(+) - - diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c - index 05e1d88d99..96fd596c2e 100644 - --- a/softmmu/qdev-monitor.c - +++ b/softmmu/qdev-monitor.c - @@ -833,6 +833,7 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent) - - void hmp_info_qtree(Monitor *mon, const QDict *qdict) - { - + fprintf(stderr, "---------------you hack me---------------------"); - if (sysbus_get_default()) - qbus_print(mon, sysbus_get_default(), 0); - } - -- - 2.33.0 - - ``` - -#### d.配置/etc/libcare.conf - /etc/libcare.conf填上patch文件修改的函数,用于后续制作补丁时,过滤掉不相关的函数; - 当前修改内容如下: - - ```shell - # cat /etc/libcare.conf - hmp_info_qtree - ``` - -#### e.查看qemu buildID - - ```shell - # whereis qemu-kvm - qemu-kvm: /usr/bin/qemu-kvm /usr/libexec/qemu-kvm - # file /usr/libexec/qemu-kvm - /usr/libexec/qemu-kvm: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b, for GNU/Linux 3.7.0, stripped - ``` -注:需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以自行编包并安装,使用自编包中的/usr/libexec/qemu-kvm的buildID。 - -#### f.制作热补丁 - -在/home/abuild/rpmbuild/BUILD/qemu-8.2.0/build中执行热补丁制作指令,**注意是build目录!!!** - -```shell -# libcare-patch-make --clean -s ../ 0002-patch-hello-qdm.patch -i 0001 --buildid=68f4ec13e140d3a688f3e0fb93442b8c7a86be8b -j 64 -``` -参数说明: ---clean 类似make clean - --s ../ 指定源文件夹,这里是上层目录 - --i 0001 热补丁id - -buildid=xxx 保持和系统中qemu-kvm buildid一致 - --j 64 多线程编译 diff --git "a/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" new file mode 100644 index 000000000..e5e3ad7ed --- /dev/null +++ "b/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -0,0 +1,4 @@ +### 问题1:使用libcareplus工具制作的qemu热补丁无法加载? +可能原因: +1.qemu版本和热补丁版本不一致 +下载qemu对应版本的源码,同时需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以 **自行编包并安装** ,使用自编包中的/usr/libexec/qemu-kvm的buildID。 \ No newline at end of file -- Gitee From dcb3b050706e66f121135168c29f5d1d7fbdfd90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Sat, 1 Jun 2024 09:24:10 +0000 Subject: [PATCH 18/19] update docs/zh/menu/index.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- docs/zh/menu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/menu/index.md b/docs/zh/menu/index.md index 97a39f530..1f45af29c 100644 --- a/docs/zh/menu/index.md +++ b/docs/zh/menu/index.md @@ -178,7 +178,7 @@ headless: true - [工具使用指南]({{< relref "./docs/Virtualization/工具使用指南.md" >}}) - [vmtop]({{< relref "./docs/Virtualization/vmtop.md" >}}) - [LibcarePlus]({{< relref "./docs/Virtualization/LibcarePlus.md" >}}) - - [LibcarePlus常见问题与解决方法]({{< relref "./docs/zh/docs/Virtualization/LibcarePlus常见问题与解决方法.md" >}}) + - [虚拟化工具常见问题与解决方法]({{< relref "./docs/zh/docs/Virtualization/LibcarePlus常见问题与解决方法.md" >}}) - [Skylark虚拟机混部]({{< relref "./docs/Virtualization/Skylark.md" >}}) - [附录]({{< relref "./docs/Virtualization/附录.md" >}}) - [StratoVirt用户指南]({{< relref "./docs/StratoVirt/StratoVirtGuide.md" >}}) -- Gitee From cc5715443ee1476893495b0659d9761f5d687a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E5=A4=A7=E4=BC=9F?= Date: Mon, 3 Jun 2024 02:54:27 +0000 Subject: [PATCH 19/19] =?UTF-8?q?update=20docs/zh/docs/Virtualization/?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E5=8C=96=E5=B7=A5=E5=85=B7=E5=B8=B8=E8=A7=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=B8=8E=E8=A7=A3=E5=86=B3=E6=96=B9=E6=B3=95?= =?UTF-8?q?.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 江大伟 --- ...6\350\247\243\345\206\263\346\226\271\346\263\225.md" | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git "a/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" index e5e3ad7ed..5db3cc1a3 100644 --- "a/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ "b/docs/zh/docs/Virtualization/\350\231\232\346\213\237\345\214\226\345\267\245\345\205\267\345\270\270\350\247\201\351\227\256\351\242\230\344\270\216\350\247\243\345\206\263\346\226\271\346\263\225.md" @@ -1,4 +1,11 @@ ### 问题1:使用libcareplus工具制作的qemu热补丁无法加载? 可能原因: 1.qemu版本和热补丁版本不一致 -下载qemu对应版本的源码,同时需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以 **自行编包并安装** ,使用自编包中的/usr/libexec/qemu-kvm的buildID。 \ No newline at end of file +下载qemu对应版本的源码,同时需保持制作热补丁的环境和制作qemu包环境一致,buildID可作为二者是否一致的判定标准。因用户无qemu版本的制作环境,故可以 **自行编包并安装** ,使用自编包中的/usr/libexec/qemu-kvm的buildID。 + +### 问题2:使用libcareplus工具制作的热补丁已加载但未生效? +可能原因: +1.查看补丁所在函数是否在约束限制中。 + +### 问题3:使用kvmtop工具第一次显示的结果为间隔0.05秒的两次采样计算得到的结果,波动较大 +此为开源top框架缺陷导致。 \ No newline at end of file -- Gitee