欢迎光临散文网 会员登陆 & 注册

[QEMU]字符设备选项(1)

2022-07-18 13:22 作者:-小白之家-  | 我要投稿

字符设备选项的一般形式是:

  • -chardev backend,id=id[,mux=on|off][,options]

  • 后端是以下各项之一:、、、、、、特定的后端将确定适用的选项。nullsocketudpmsmousevcringbuffilepipeconsoleserialptystdiobraillettyparallelparportspicevmcspiceport

    用于打印所有可用的 chardev 后端类型。-chardev help

    所有设备都必须有一个 ID,该 ID 可以是长度不超过 127 个字符的任何字符串。它用于在其他命令行指令中唯一标识此设备。

    一个字符设备可以由多个前端在多路复用模式下使用。指定以启用此模式。多路复用器是一个“1:N”设备,这里的“1”端是您指定的chardev后端,“N”端是QEMU中可以与chardev通信的各个部分。如果使用 和 创建 chardev,QEMU 将使用指定的 ID 创建多路复用器,然后您可以配置多个前端以将该 chardev ID 用于其输入/输出。最多可以将四个不同的前端连接到单个多路复用字符。(如果未启用多路复用,则 chardev 只能由单个前端使用。例如,您可以使用它来允许两个串行端口和QEMU监视器使用单个stadio chardev:mux=onid=myidmux=on

    -chardev stdio,mux=on,id=char0 \-mon chardev=char0,mode=readline \-serial chardev:char0 \-serial chardev:char0

    您可以在系统配置中拥有多个多路复用器;例如,您可以在UART 0和UART 1之间多路复用TCP端口,并在QEMU监视器和并行端口之间多路复用:

    -chardev stdio,mux=on,id=char0 \-mon chardev=char0,mode=readline \-parallel chardev:char0 \-chardev tcp,...,mux=on,id=char1 \-serial chardev:char1 \-serial chardev:char1

    使用多路复用字符设备时,会在输入中解释一些转义序列。有关更多详细信息,请参阅《系统仿真用户指南》中有关字符后端多路复用器中的密钥的章节。

    请注意,其他一些命令行选项可能会隐式创建多路复用字符后端;例如,创建一个连接到串行端口和QEMU监视器的多路复用Stdio后端,并将控制台和监视器多路复用到stdio。-serial mon:stdio-nographic

    目前不支持另一个方向的多路复用(其中单个QEMU前端从多个chardev获取输入和输出)。

    每个后端都支持该选项,该选项提供文件的路径以记录通过后端传输的所有数据。该选项控制日志文件在打开时是被截断还是追加到。logfilelogappend

可用的后端包括:

  • -chardev null,id=id

  • 无效装置。此设备不会发出任何数据,并且会丢弃它接收到的任何数据。空后端不采用任何选项。

  • -chardev socket,id=id[,TCP options or unix options][,server=on|off][,wait=on|off][,telnet=on|off][,websocket=on|off][,reconnect=seconds][,tls-creds=id][,tls-authz=id]

  • 创建双向流套接字,它可以是 TCP 或 unix 套接字。如果指定,将创建一个 unix 套接字。如果为 unix 套接字指定了 TCP 选项,则行为未定义。path

    server=on|off指定套接字应为侦听套接字。

    wait=on|off指定 QEMU 不应阻止等待客户端连接到侦听套接字。

    telnet=on|off指定套接字上的流量应解释 telnet 转义序列。

    websocket=on|off指定套接字使用 WebSocket 协议进行通信。

    reconnect设置在远程端消失时在非服务器套接字上重新连接的超时。qemu 将延迟这几秒钟,然后尝试重新连接。零禁用重新连接,并且是默认值。

    tls-creds请求启用 TLS 协议以进行加密,并指定用于握手的 TLS 凭据的 ID。必须事先使用参数创建凭据。-object tls-creds

    tls-auth提供 QAuthZ 授权对象的 ID,将针对该对象验证客户端的 x509 可分辨名称。此对象仅在使用时解析,因此可以在 chardev 服务器处于活动状态时动态删除和重新创建。如果丢失,它将默认拒绝访问。

    TCP 和 unix 套接字选项如下所示:

    • TCP options: port=port[,host=host][,to=to][,ipv4=on|off][,ipv6=on|off][,nodelay=on|off]

    • hostfor 侦听套接字 指定要绑定的本地地址。对于连接套接字,要连接到的远程主机类型。 对于侦听套接字是可选的。如果未指定,则默认为 。host0.0.0.0

      port指定要绑定的本地端口。对于连接套接字,指定远程主机上要连接到的端口。 可以指定为端口号或服务名称。 是必需的。portport

      to仅与监听套接字相关。如果已指定且无法绑定,QEMU 将尝试绑定到后续端口,直到成功为止。 必须指定为端口号。porttoto

      ipv4=on|off并指定必须使用 IPv4 或 IPv6。如果未指定任何一个,则套接字可以使用任一协议。ipv6=on|off

      nodelay=on|off禁用 Nagle 算法。

    • unix options: path=path[,abstract=on|off][,tight=on|off]

    • path指定 unix 套接字的本地路径。 是必需的。 指定使用抽象套接字命名空间,而不是文件系统。可选,默认为 false。 将抽象套接字的套接字长度设置为最小值,而不是完整的sun_path长度。可选,默认为 true。pathabstract=on|offtight=on|off

  • -chardev udp,id=id[,host=host],port=port[,localaddr=localaddr][,localport=localport][,ipv4=on|off][,ipv6=on|off]

  • 通过 UDP 将来自来宾的所有流量发送到远程主机。

    host指定要连接到的远程主机。如果未指定,则默认为 。localhost

    port指定远程主机上要连接到的端口。 是必需的。port

    localaddr指定要绑定到的本地地址。如果未指定,则默认为 。0.0.0.0

    localport指定要绑定到的本地端口。如果未指定,将使用任何可用的本地端口。

    ipv4=on|off并指定必须使用 IPv4 或 IPv6。如果未指定任何协议,则设备可以使用任一协议。ipv6=on|off

  • -chardev msmouse,id=id

  • 将 QEMU 模拟的 msmouse 事件转发给来宾。 不采取任何选择。msmouse

  • -chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]

  • 连接到 QEMU 文本控制台。 可以任选地给出特定的尺寸。vc

    width并分别指定控制台的宽度和高度(以像素为单位)。height

    cols并指定控制台的大小适合具有给定尺寸的文本控制台。rows

  • -chardev ringbuf,id=id[,size=size]

  • 创建具有固定大小的环形缓冲区。size 必须是 2 的幂,并且缺省值为 。size64K

  • -chardev file,id=id,path=path

  • 将客户机收到的所有流量记录到一个文件中。

    path指定要打开的文件的路径。如果此文件尚不存在,则将创建此文件;如果尚不存在,则将其覆盖。 是必需的。path

  • -chardev pipe,id=id,path=path

  • 创建与来宾的双向连接。Windows 主机和其他主机之间的行为略有不同:

    在 Windows 上,将在 中创建单个双工管道。\\.pipe\path

    在其他主机上,将创建 2 个管道,称为 和 。写入的数据将由客人收到。可以从 中读取来宾写入的数据。QEMU不会创建这些fifo,并要求它们存在。path.inpath.outpath.inpath.out

    path形成管道路径的一部分,如上所述。 是必需的。path

  • -chardev console,id=id

  • 将流量从来宾发送到 QEMU 的标准输出。 不采取任何选择。console

    console仅在 Windows 主机上可用。

  • -chardev serial,id=id,path=path

  • 将流量从来宾发送到主机上的串行设备。

    在Unix主机上,串行实际上将接受任何tty设备,而不仅仅是串行线路。

    path指定要打开的串行设备的名称。

  • -chardev pty,id=id

  • 在主机上创建新的伪终端并连接到它。 不采取任何选择。pty

    pty在 Windows 主机上不可用。

  • -chardev stdio,id=id[,signal=on|off]

  • 连接到 QEMU 过程的标准输入和标准输出。

    signal控制终端上是否启用了信号,包括使用键序列 Control-c 退出 QEMU。默认情况下,此选项处于启用状态,用于禁用它。signal=off


[QEMU]字符设备选项(1)的评论 (共 条)

分享到微博请遵守国家法律