vmm: Unix socket backend for serial port

Cloud-Hypervisor takes a path for Unix socket, where it will listen
on. Users can connect to the other end of the socket and access serial
port on the guest.

    "--serial socket=/path/to/socket" is the cmdline option to pass to
cloud-hypervisor.

Users can use socat like below to access guest's serial port once the
guest starts to boot:

    socat -,crnl UNIX-CONNECT:/path/to/socket

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
This commit is contained in:
Praveen K Paladugu
2023-06-08 19:41:37 +00:00
committed by Rob Bradford
parent 399c596af8
commit 6d1077fc3c
9 changed files with 177 additions and 20 deletions

View File

@@ -166,8 +166,8 @@ impl Serial {
Self::new(id, interrupt, None, state)
}
pub fn set_out(&mut self, out: Box<dyn io::Write + Send>) {
self.out = Some(out);
pub fn set_out(&mut self, out: Option<Box<dyn io::Write + Send>>) {
self.out = out;
}
/// Queues raw bytes for the guest to read and signals the interrupt if the line status would

View File

@@ -201,8 +201,8 @@ impl Pl011 {
}
}
pub fn set_out(&mut self, out: Box<dyn io::Write + Send>) {
self.out = Some(out);
pub fn set_out(&mut self, out: Option<Box<dyn io::Write + Send>>) {
self.out = out;
}
fn state(&self) -> Pl011State {