feat: switch cloud-hypervisor serial to PTY-direct mode
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
73fa020cf7
commit
a0c28a5c57
1 changed files with 13 additions and 3 deletions
|
|
@ -1017,8 +1017,7 @@ let
|
|||
free_page_reporting = true;
|
||||
};
|
||||
serial = {
|
||||
mode = "Socket";
|
||||
socket = "/run/vmsilo/${vm.name}/serial.socket";
|
||||
mode = "Pty";
|
||||
};
|
||||
console = {
|
||||
mode = "Off";
|
||||
|
|
@ -1130,7 +1129,6 @@ let
|
|||
|
||||
# Remove stale sockets
|
||||
rm -f /run/vmsilo/${vm.name}/cloud-hypervisor-control.socket
|
||||
rm -f /run/vmsilo/${vm.name}/serial.socket
|
||||
rm -f /run/vmsilo/${vm.name}/vsock.socket
|
||||
|
||||
# Step 1: Start cloud-hypervisor VMM in background
|
||||
|
|
@ -1190,6 +1188,18 @@ let
|
|||
--api-socket /run/vmsilo/${vm.name}/cloud-hypervisor-control.socket \
|
||||
create -- ${chConfigFile}
|
||||
|
||||
# Discover serial PTY allocated by cloud-hypervisor and symlink to standard path
|
||||
CONSOLE_PTY=$(${chRemote} \
|
||||
--api-socket /run/vmsilo/${vm.name}/cloud-hypervisor-control.socket \
|
||||
info | ${pkgs.jq}/bin/jq -r '.config.serial.file')
|
||||
if [ -z "$CONSOLE_PTY" ] || [ "$CONSOLE_PTY" = "null" ]; then
|
||||
echo "Failed to discover serial PTY from cloud-hypervisor API" >&2
|
||||
kill $CH_PID 2>/dev/null || true
|
||||
exit 1
|
||||
fi
|
||||
ln -sf "$CONSOLE_PTY" /run/vmsilo/${vm.name}/console
|
||||
chown ${toString userUid} /run/vmsilo/${vm.name}/console
|
||||
|
||||
# Step 3: Boot VM
|
||||
${chRemote} \
|
||||
--api-socket /run/vmsilo/${vm.name}/cloud-hypervisor-control.socket \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue