set timeout 10 proc chat {instr outstr} { expect { $instr { send $outstr } timeout { exit 1 } } } spawn socat -,echo=0,icanon=1 unix-connect:vm/monitor set monitor_id $spawn_id spawn socat unix-connect:vm/console - set console_id $spawn_id expect "BusyBox" chat "#" "PS1=RE\\ADY_\\ ; stty -echo \r" chat "READY_" "s6-rc -b -a list\r" chat "watch-mount" "\r" set spawn_id $monitor_id chat "QEMU" "device_add usb-storage,bus=xhci.0,drive=usbstick\n" chat "(qemu)" "version\r" set spawn_id $console_id expect { "mounted filesystem" { } timeout { exit 1 } } send "\r" chat "READY_" "s6-rc -b -a list\r" chat "READY_" "cat /proc/mounts\r" expect { "/srv" { } timeout { exit 1 } }