1 个不稳定版本
0.1.0 | 2023年7月24日 |
---|
#145 在 模拟器
57 每月下载次数
91KB
2K SLoC
设备虚拟主机-gpio - GPIO模拟后端守护进程
描述
此程序是一个vhost-user后端,模拟了一个VirtIO GPIO设备。当客机操作系统请求GPIO设备时,此程序会通过/dev/gpiochip{X}接口与主机操作系统上的GPIO设备通信。
此程序已与QEMU的-device vhost-user-gpio-pci
进行测试,但应与支持vhost-user的任何虚拟机监视器(VMM)一起工作。请参阅下面的示例部分。
概要
设备虚拟主机-gpio [选项]
选项
.. program:: 设备虚拟主机-gpio
.. option:: -h, --help
打印帮助。
.. option:: -s, --socket-path=PATH
vhost-user Unix域套接字的位置,此路径将添加0、1、2..socket_count-1。
.. option:: -c, --socket-count=INT
要附加的客人(套接字)的数量,默认设置为1。
.. option:: -l, --device-list=GPIO-DEVICES
主机操作系统中的GPIO设备列表,格式为:[:]
Example: --device-list "2:4:7"
在此处,每个GPIO设备对应一个单独的客机实例,即设备列表中的设备数量必须与--socket-count中的套接字数量相匹配。例如,GPIO设备0将被分配给具有"0"路径的客机。
示例
首先启动守护进程
::
主机# 设备虚拟主机-gpio --socket-path=gpio.sock --socket-count=1 --device-list 0:3
QEMU 的调用需要创建一个字符设备套接字,该设备可以使用它进行通信,并通过 memfd 共享虚拟机的内存。
::
主机# qemu-system
-chardev socket,path=vgpio.sock,id=vgpio
-device vhost-user-gpio-pci,chardev=vgpio,id=gpio
-m 4096
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on
-numa node,memdev=mem
...
许可证
本项目许可协议为以下之一:
- Apache 许可证,版本 2.0
- BSD-3-Clause 许可证
依赖关系
~6-8MB
~141K SLoC