一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Jailhouse使用ACPI实现设备隔离的方法与流程

2023-01-02 13:13:25 来源:中国专利 TAG:

jailhouse使用acpi实现设备隔离的方法
技术领域
1.本发明涉及虚拟机隔离技术领域,具体涉及jailhouse使用acpi实现设备隔离的方法。


背景技术:

2.当下嵌入式芯片技术发展迅速,越来越多的嵌入式产品开始使用多核芯片。随着arm芯片主频提升、芯片制程工艺提高,arm芯片的性能越来越好,已经完全能够与传统的x86芯片在桌面及服务器领域展开正面竞争。但arm架构在通常使用devicetree进行设备管理,与传统的x86平台在通用性上有所差距,arm架构为提高自身竞争力,已经能够兼容x86平台的acpi设备管理机制。
3.在工业控制领域,linux系统市场占有率越来越高,但linux系统在实时性方面并不具备优势。使用嵌入式虚拟化技术,可以在多核芯片中隔离出特定的cpu、内存区域、外围设备用于专为实时性设计的系统运行,如freertos或vxworks,从而提高系统的实时响应能力。
4.jailhouse即是一款典型的嵌入式虚拟化管理工具。它能够像qemu一样创建虚拟机,如虚拟freertos、虚拟linux。但与qemu不同的是,虚拟机并不是以进程方式存在于宿主机中,而是单独运行在独立的cpu中,不能被打断、不能被调度。jailhouse虚拟机使用的资源,如外围设备,都是无法与宿主机共享的。
5.为了让jailhouse虚拟机能够使用外围设备,需要对宿主机的设备进行隔离,但是jailhouse在进行虚拟化时只能支持devicetree设备管理,并不支持acpi设备管理,从而使得jailhouse在应用范围被大大限制。
6.嵌入式虚拟化管理软件jailhouse本身只提供了dtb设备管理机制,即只能完成dtb下的设备隔离,并未提供acpi设备管理机制。当使用工控机或者pc机时,则无法实现设备隔离的隔离功能。


技术实现要素:

7.为解决已有技术存在的不足,本发明提供了一种jailhouse使用acpi实现设备隔离的方法,包括如下步骤:步骤s1:使用设备acpi信息导出工具提取当前内核的acpi表得到acpidump.bin;步骤s2:提取acpidump.bin文件中的板载设备定义表文件dsdt.dat;步骤s3:把dsdt.dat文件翻译成可进行文本编辑的dsdt.dsl源码文件;步骤s4:对dsdt.dsl源码文件进行修改;步骤s5:把修改后的dsdt.dsl文件编译成可以被linux系统启动时识别的dsdt.aml文件;步骤s6:把dsdt.aml文件放到根据内核代码中规定的路径创建kernel/firmware/acpi目录下;
步骤s7:把所形成的内核文件夹打包成cpio格式的dsdt.img文件,并把dsdt.img文件与linux系统启动时默认使用的initramfs.img文件合并成一个文件,并重命名为dsdt-new.img;步骤s8:在系统启动时选择dsdt-new.img,等待系统启动完成后即得到特定设备(如eth1)隔离的linux系统。
8.其中,还包括步骤s9:在系统启动后,使用ipa命令查看,无法找到eth1网卡,证明设备隔离成功。
9.其中,所述步骤s3中,使用iasl工具把dsdt.dat文件翻译成可进行文本编辑的dsdt.dsl源码文件。
10.其中,所述步骤s4中,对dsdt.dsl源码文件进行的修改包括注释掉特定设备描述部分、增加文件版本号两部分。
11.其中,所述步骤s4中,对dsdt.dsl源码文件进行的修改包括:找到eth1设备描述部分,并且使用注释符号注释掉eth1描述部分,于此同时修改该文件的版本号,将版本号加1。
12.本发明在acpi动态更新技术的基础上,通过删除acpi dsdt表中的特定设备描述部分,使得系统无法识别和初始化特定设备,从而让jailhouse中的虚拟机独立的使用特定设备,达到在acpi下的jailhouse设备隔离功能。
附图说明
13.图1为本发明的jailhouse使用acpi实现设备隔离的方法的实现逻辑图。
具体实施方式
14.为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。
15.图1为本发明的jailhouse使用acpi实现设备隔离的方法的实现逻辑图,本发明采用动态更新acpi-dsdt表的方式实现jailhouse的acpi设备管理下的设备隔离:先把存储在设备bios内的acpi信息导出到acpidump.bin文件中,再提取acpidump.bin文件中的板载设备定义表文件,即dsdt.dat。并把dsdt.dat文件翻译成可进行文本编辑的dsdt.dsl源码文件。对dsdt.dsl源码文件进行修改,修改包括注释掉特定设备描述部分(例如eth1部分)、增加文件版本号两部分。并把修改后的dsdt.dsl文件编译成可以被linux系统启动时识别的dsdt.aml文件,并把dsdt.aml文件放到根据内核代码中规定的路径创建kernel/firmware/acpi目录下,即形成kernel/firmware/acpi/dsdt.aml路径。再把上述kernel文件夹打包成cpio格式的dsdt.img文件,并把dsdt.img文件与linux系统启动时默认使用的initramfs.img文件合并成一个文件,并重命名为dsdt-new.img。在系统启动时选择dsdt-new.img,等待系统启动完成后即得到特定设备(如eth1)隔离的linux系统。在当前系统下启动jailhouse虚拟化软件,并使用事先准备好的包含了特定设备(如eth1)的dtb文件启动guest linux系统,等待guest linux系统启动完成后,即可看到特定设备(如eth1)在guest linux系统中,为特定设备(如eth1)配置正确的局域网ip,即可通过ssh或者ping命令完成对guest linux系统的访问。
16.由此,本发明在acpi动态更新技术的基础上,通过删除acpi dsdt表中的特定设备
描述部分,使得系统无法识别和初始化特定设备,从而让jailhouse中的虚拟机独立的使用特定设备,达到在acpi下的jailhouse设备隔离功能。
17.以arm架构的实体机安装银河麒麟v10桌面版系统为例,详细的实施步骤如下:1、安装设备acpi信息导出工具apt install acpidump。
18.2、使用设备acpi信息导出工具提取当前内核的acpi表得到acpidump.binacpidump
ꢀ‑
o acpidump.bin。
19.3、使用acpi信息提取工具提取步骤2中得到的acpidump.bin二进制acpi表得到二进制的板载设备定义表文件dsdt.datacpixtract-a acpidump.bin。
20.4、使用iasl工具对步骤3中得到的dsdt.dat进行解析得到板载设备定义表文件的源码文件dsdt.dsliasl-d dsdt.dat。
21.5、手动编辑步骤4中得到的板载设备定义表文件的源码文件dsdt.dsl,找到eth1设备描述部分,并且使用注释符号注释掉eth1描述部分,于此同时修改该文件的版本号,版本号加1即可,把修改后的文件另存为dsdt-new.dsl文件6、使用iasl创建步骤5中得到的dsdt-new.dsl文件的可以被linux系统识别并执行的汇编文件dsdt-new.amliasl-sa dsdt-new.dsl。
22.7、根据内核源码规定的更新acpi表的路径,创建kernel/firmware/acpi,并把步骤6中得到的文件dsdt-new.aml放到目录下mkdir-p kernel/firmware/acpi。
23.8、使用cpio工具,把步骤7中的kernel目录打包成cpio格式的dsdt.img文件并放到/boot目录find kernel | cpio-h newc
‑‑
create 》 /boot/dsdt.img。
24.9、把启动时用到的initramfs.img与步骤8生成的dsdt.img两个合并成在一起cat /boot/initramfs.img 》》 /boot/dsdt-new.img。
25.10、重启,并选择步骤9生成的/boot/dsdt-new.img作为新的initramfs启动。
26.11、启动后,使用ip a命令查看,无法找到eth1网卡,证明设备隔离成功。
27.12、启动jailhouse,使用带有eth1资源定义的dtb运行linux系统,使用ip a可以看到eth1网卡,并通过此网卡可以对外进行正常的业务通讯。此步骤不属于本发明实现范围,不在此做描述。
28.本发明中,所涉及到的术语的含义如下:acpi:advanced configuration and power interface缩写。是高级配置与电源管理接口的意思,是微软、英特尔和东芝共同开发的一种工业标准。通常用在x86架构下,如个人pc、高性能服务器、工控机。acpi是一种硬件资源的定义规范,使用acpi可以更让操作系统厂商屏蔽底层硬件具体差异,可以让操作系统无需修改即可适配所有的acpi硬件平台。
29.acpidump:acpi相关信息通常存储在设备内部的bios芯片中。为了查看设备的
acpi相关信息需要借助专门的工具,即acpidump工具。
30.该工具能够以二进制的方式读取出acpi相关信息。使用acpidump-o xxxx命令即可读取acpi信息并输出到xxxx文件中,但是该文件是人类不可读的文件,需要进一步使用其他工具对该文件进行翻译。例如acpidump-o acpidump.bin,意思为提取当前设备acpi信息到acpidump.bin文件中。
31.acpixtract:该工具运行在linux平台,用于从acpidump.bin中提取数据,并以数据文件的形式展现给用户。使用acpixtract-a acpidump.bin,可以自动得到多个文件,分别为dsdt.dat、ssdt.dat、apic.dat、mcfg.dat、gtdt.dat、facp.dat、iort.dat、spcr.dat、vfct.dat。其中dsdt.dat文件存储的信息是板载设备定义表,该文件规定所有的板载设备的内存空间、中断号等信息。ssdt.dsl文件存储的信息是pci设备相关定义。其他文件在该专利中不涉及,暂时不介绍。
32.dat/dsl/aml:以dat为后缀的文件,它是二进制格式的文件,人类无法直接阅读。以dsl为后缀的文件,它是dat文件通过专用工具翻译后得到的文件,它可以被人类读懂,也可以使用文本编辑器对该文件进行修改。以aml为后缀的文件,它是linux系统可以识别并执行的文件,只有这种文件才能正确加载到系统中。
33.iasl:该工具运行在linux平台,用于把acpixtract工具输出的人类无法阅读的*.dat文件转换成*.dsl文件,该文件可以被人类阅读,也可以使用文本编辑器对dsl进行修改。使用iasl-d dsdt.dat命令,可以自动把dsdt.dat文件翻译成dsdt.dsl文件。使用iasl-sa dsdt.dsl命令,可以自动把dsdt.dsl文件转换成dsdt.aml汇编文件。
34.kernel/firmware/acpi目录:该目录是linux内核规定好的,在该路径下的所有aml文件可以在开机启动时被自动加载到系统中。
35.cpio:cpio是一种linux系统中的文件夹打包格式,类似于windows下的zip、rar。在标准的linux系统启动时先启动linux内核,即vmlinuz,再加载initrd.img或者initramfs.img,最后挂载真正的根文件系统。而initrd.img和initramfs.img真实的压缩格式即为cpio格式。
36.dsdt.img:该文件是包含了dsdt-new.aml和正确的aml加载路径即kernel/firmware/acpi的cpio格式的文件,该文件可以用于linux系统启动时自动更新dsdt-new.aml文件对应的acpi dsdt相关数据。
37.initramfs.img:该文件是linux启动时默认使用的文件。
38.dsdt-new.img:该文件是包含了dsdt.img和initramfs.img文件的可用于linux启动的文件,使用该文件启动时,即可自动完成dsdt-new.aml文件对应的acpi dsdt相关数据更新。
39.devicetree:设备树,是arm架构下的底层设备和资源的定义规范。arm架构使用devicetree技术,屏蔽底层设备差异,让操作系统可以无需修改即可适配多种平台。通常嵌入式平台均使用devicetree的方式定义硬件资源。
40.dts:即device tree source,是devicetree的描述文件源码。
41.dtb:即device tree blob,是编译后的二进制格式的device tree描述。
42.freertos:是一种体积、代码量非常小的实时操作系统,常用工业控制领域、航天领域等对操作系统响应速度有严格限制的场景。它是开源系统。
43.vxworks:是一种体积小、实时响应性能高、工控领域应用广泛的实时操作系统。
44.qemu:一种可以运行在linux系统上的软件,这个软件可以用来运行其他操作系统,包括linux、windows、vxworks、freertos等。它的运行效率很低,功能丰富,是目前linux系统中应用最广泛的虚拟机软件。
45.jailhouse:一种可以运行在linux系统上的软件,这个软件可以用来运行其他操作系统,包括linux、windows、vxworks、freertos等。它的运行效率比较高、占用资源少,但是功能简陋。
46.本发明提供的动态更新acpi dsdt描述表的方法结合jailhouse,可以使嵌入式虚拟化管理软件jailhouse在arm架构下支持acpi设备管理机制,能够使jailhouse应用于使用acpi设备管理机制的工控机、个人pc甚至是高性能服务器中,使jailhouse的应用领域大大增加。
47.虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献