1 个不稳定版本

0.1.0 2023年7月24日

1134硬件支持

Download history 9/week @ 2024-03-11 30/week @ 2024-04-01 8/week @ 2024-04-08 18/week @ 2024-04-15 4/week @ 2024-04-22 7/week @ 2024-05-13 14/week @ 2024-05-27 16/week @ 2024-06-03 10/week @ 2024-06-10 13/week @ 2024-06-17 16/week @ 2024-06-24

55 每月下载量

Apache-2.0 OR BSD-3-Clause

80KB
2K SLoC

vhost-device-i2c - I2C仿真后端守护进程

描述

此程序是一个vhost-user后端,用于仿真VirtIO I2C总线。当虚拟机操作系统请求I2C或SMBUS设备时,程序将使用/dev/i2c-X接口与主机操作系统上的i2c总线及其设备的布局进行通信。

此程序已与QEMU的-device vhost-user-i2c-pci进行测试,但应与支持vhost-user的任何虚拟机监控程序(VMM)兼容。请参阅下面的示例部分。

概要

vhost-device-i2c [选项]

选项

.. program:: vhost-device-i2c

.. 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=I2C-DEVICES

主机操作系统中的i2c设备列表,格式为:: <client_addr>[:<client_addr>],[:<client_addr>[:<client_addr>]]

  Example: --device-list "i915 gmbus dpd:32:21,DPDDC-D:10:23"

在此处,bus-name: 是适配器的名称。例如,/sys/bus/i2c/devices/i2c-0/name的值。client_addr (十进制):客户端设备的地址,32 == 0x20。

示例

首先启动守护进程

::

主机# vhost-device-i2c --socket-path=vi2c.sock --socket-count=1 --device-list "i915 gmbus dpd:32"

QEMU调用需要创建一个chardev套接字,设备可以使用它进行通信,并通过memfd共享虚拟机内存。

::

主机# qemu-system
字符设备套接字,路径=vi2c.sock,id=vi2c
设备 vhost-user-i2c-pci,chardev=vi2c,id=i2c
-m 4096
-对象内存后端文件,id=mem,大小=4G,mem-path=/dev/shm,共享=开启
-numa 节点,memdev=mem
...

许可协议

本项目许可协议为以下之一

依赖

~6–8MB
~138K SLoC