[QEMU]字符設(shè)備選項(1)

字符設(shè)備選項的一般形式是:
-chardev?backend,id=id[,mux=on|off][,options]
后端是以下各項之一:、、、、、、特定的后端將確定適用的選項。
null
socket
udp
msmouse
vc
ringbuf
file
pipe
console
serial
pty
stdio
braille
tty
parallel
parport
spicevmc
spiceport
用于打印所有可用的 chardev 后端類型。
-chardev?help
所有設(shè)備都必須有一個 ID,該 ID 可以是長度不超過 127 個字符的任何字符串。它用于在其他命令行指令中唯一標(biāo)識此設(shè)備。
一個字符設(shè)備可以由多個前端在多路復(fù)用模式下使用。指定以啟用此模式。多路復(fù)用器是一個“1:N”設(shè)備,這里的“1”端是您指定的chardev后端,“N”端是QEMU中可以與chardev通信的各個部分。如果使用 和 創(chuàng)建 chardev,QEMU 將使用指定的 ID 創(chuàng)建多路復(fù)用器,然后您可以配置多個前端以將該 chardev ID 用于其輸入/輸出。最多可以將四個不同的前端連接到單個多路復(fù)用字符。(如果未啟用多路復(fù)用,則 chardev 只能由單個前端使用。例如,您可以使用它來允許兩個串行端口和QEMU監(jiān)視器使用單個stadio chardev:
-chardev stdio,mux=on,id=char0 \-mon chardev=char0,mode=readline \-serial chardev:char0 \-serial chardev:char0mux=on
id=myid
mux=on
您可以在系統(tǒng)配置中擁有多個多路復(fù)用器;例如,您可以在UART 0和UART 1之間多路復(fù)用TCP端口,并在QEMU監(jiān)視器和并行端口之間多路復(fù)用:
-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使用多路復(fù)用字符設(shè)備時,會在輸入中解釋一些轉(zhuǎn)義序列。有關(guān)更多詳細(xì)信息,請參閱《系統(tǒng)仿真用戶指南》中有關(guān)字符后端多路復(fù)用器中的密鑰的章節(jié)。
請注意,其他一些命令行選項可能會隱式創(chuàng)建多路復(fù)用字符后端;例如,創(chuàng)建一個連接到串行端口和QEMU監(jiān)視器的多路復(fù)用Stdio后端,并將控制臺和監(jiān)視器多路復(fù)用到stdio。
-serial?mon:stdio
-nographic
目前不支持另一個方向的多路復(fù)用(其中單個QEMU前端從多個chardev獲取輸入和輸出)。
每個后端都支持該選項,該選項提供文件的路徑以記錄通過后端傳輸?shù)乃袛?shù)據(jù)。該選項控制日志文件在打開時是被截斷還是追加到。
logfile
logappend
可用的后端包括:
-chardev?null,id=id
無效裝置。此設(shè)備不會發(fā)出任何數(shù)據(jù),并且會丟棄它接收到的任何數(shù)據(jù)??蘸蠖瞬徊捎萌魏芜x項。
-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]
創(chuàng)建雙向流套接字,它可以是 TCP 或 unix 套接字。如果指定,將創(chuàng)建一個 unix 套接字。如果為 unix 套接字指定了 TCP 選項,則行為未定義。
path
server=on|off
指定套接字應(yīng)為偵聽套接字。wait=on|off
指定 QEMU 不應(yīng)阻止等待客戶端連接到偵聽套接字。telnet=on|off
指定套接字上的流量應(yīng)解釋 telnet 轉(zhuǎn)義序列。websocket=on|off
指定套接字使用 WebSocket 協(xié)議進(jìn)行通信。reconnect
設(shè)置在遠(yuǎn)程端消失時在非服務(wù)器套接字上重新連接的超時。qemu 將延遲這幾秒鐘,然后嘗試重新連接。零禁用重新連接,并且是默認(rèn)值。tls-creds
請求啟用 TLS 協(xié)議以進(jìn)行加密,并指定用于握手的 TLS 憑據(jù)的 ID。必須事先使用參數(shù)創(chuàng)建憑據(jù)。-object?tls-creds
tls-auth
提供 QAuthZ 授權(quán)對象的 ID,將針對該對象驗證客戶端的 x509 可分辨名稱。此對象僅在使用時解析,因此可以在 chardev 服務(wù)器處于活動狀態(tài)時動態(tài)刪除和重新創(chuàng)建。如果丟失,它將默認(rèn)拒絕訪問。TCP 和 unix 套接字選項如下所示:
TCP?options:?port=port[,host=host][,to=to][,ipv4=on|off][,ipv6=on|off][,nodelay=on|off]
host
for 偵聽套接字 指定要綁定的本地地址。對于連接套接字,要連接到的遠(yuǎn)程主機類型。 對于偵聽套接字是可選的。如果未指定,則默認(rèn)為 。host
0.0.0.0
port
指定要綁定的本地端口。對于連接套接字,指定遠(yuǎn)程主機上要連接到的端口。 可以指定為端口號或服務(wù)名稱。 是必需的。port
port
to
僅與監(jiān)聽套接字相關(guān)。如果已指定且無法綁定,QEMU 將嘗試綁定到后續(xù)端口,直到成功為止。 必須指定為端口號。port
to
to
ipv4=on|off
并指定必須使用 IPv4 或 IPv6。如果未指定任何一個,則套接字可以使用任一協(xié)議。ipv6=on|off
nodelay=on|off
禁用 Nagle 算法。unix?options:?path=path[,abstract=on|off][,tight=on|off]
path
指定 unix 套接字的本地路徑。 是必需的。 指定使用抽象套接字命名空間,而不是文件系統(tǒng)??蛇x,默認(rèn)為 false。 將抽象套接字的套接字長度設(shè)置為最小值,而不是完整的sun_path長度??蛇x,默認(rèn)為 true。path
abstract=on|off
tight=on|off
-chardev?udp,id=id[,host=host],port=port[,localaddr=localaddr][,localport=localport][,ipv4=on|off][,ipv6=on|off]
通過 UDP 將來自來賓的所有流量發(fā)送到遠(yuǎn)程主機。
host
指定要連接到的遠(yuǎn)程主機。如果未指定,則默認(rèn)為 。localhost
port
指定遠(yuǎn)程主機上要連接到的端口。 是必需的。port
localaddr
指定要綁定到的本地地址。如果未指定,則默認(rèn)為 。0.0.0.0
localport
指定要綁定到的本地端口。如果未指定,將使用任何可用的本地端口。ipv4=on|off
并指定必須使用 IPv4 或 IPv6。如果未指定任何協(xié)議,則設(shè)備可以使用任一協(xié)議。ipv6=on|off
-chardev?msmouse,id=id
將 QEMU 模擬的 msmouse 事件轉(zhuǎn)發(fā)給來賓。 不采取任何選擇。
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]
創(chuàng)建具有固定大小的環(huán)形緩沖區(qū)。size 必須是 2 的冪,并且缺省值為 。
size
64K
-chardev?file,id=id,path=path
將客戶機收到的所有流量記錄到一個文件中。
path
指定要打開的文件的路徑。如果此文件尚不存在,則將創(chuàng)建此文件;如果尚不存在,則將其覆蓋。 是必需的。path
-chardev?pipe,id=id,path=path
創(chuàng)建與來賓的雙向連接。Windows 主機和其他主機之間的行為略有不同:
在 Windows 上,將在 中創(chuàng)建單個雙工管道。
\\.pipe\path
在其他主機上,將創(chuàng)建 2 個管道,稱為 和 。寫入的數(shù)據(jù)將由客人收到??梢詮?中讀取來賓寫入的數(shù)據(jù)。QEMU不會創(chuàng)建這些fifo,并要求它們存在。
path.in
path.out
path.in
path.out
path
形成管道路徑的一部分,如上所述。 是必需的。path
-chardev?console,id=id
將流量從來賓發(fā)送到 QEMU 的標(biāo)準(zhǔn)輸出。 不采取任何選擇。
console
console
僅在 Windows 主機上可用。-chardev?serial,id=id,path=path
將流量從來賓發(fā)送到主機上的串行設(shè)備。
在Unix主機上,串行實際上將接受任何tty設(shè)備,而不僅僅是串行線路。
path
指定要打開的串行設(shè)備的名稱。-chardev?pty,id=id
在主機上創(chuàng)建新的偽終端并連接到它。 不采取任何選擇。
pty
pty
在 Windows 主機上不可用。-chardev?stdio,id=id[,signal=on|off]
連接到 QEMU 過程的標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出。
signal
控制終端上是否啟用了信號,包括使用鍵序列 Control-c 退出 QEMU。默認(rèn)情況下,此選項處于啟用狀態(tài),用于禁用它。signal=off