mirror of
https://github.com/rxrbln/t2sde.git
synced 2025-05-08 20:21:59 +08:00
75 lines
1.2 KiB
Plaintext
75 lines
1.2 KiB
Plaintext
#!/usr/bin/expect -f
|
|
|
|
set qemu [lindex $argv 0]
|
|
set kernel [lindex $argv 1]
|
|
set initrd [lindex $argv 2]
|
|
set append [lindex $argv 3]
|
|
set argv [lreplace $argv 0 3]
|
|
|
|
# Wait enough (forever) until a long-time boot
|
|
set timeout 45
|
|
#timeout {exit 1}
|
|
set send_slow {8 .1}
|
|
|
|
# Start the guest VM
|
|
spawn $qemu -kernel $kernel -initrd $initrd -nographic -append "$append" {*}$argv
|
|
|
|
expect {
|
|
timeout {exit 1}
|
|
"T2 SDE installer first stage*"
|
|
}
|
|
|
|
expect {
|
|
timeout {exit 1}
|
|
"* hit enter otherwise. (default:*"
|
|
}
|
|
|
|
send "\n"
|
|
expect {
|
|
timeout {exit 1}
|
|
"install:/#"
|
|
}
|
|
|
|
|
|
send "mount \$ROCK_INSTALL_SOURCE_DEV /media\n"
|
|
expect {
|
|
timeout {exit 1}
|
|
"*mounted read-only*"
|
|
}
|
|
|
|
send "kernel=$kernel initrd=$initrd\n"
|
|
send "kexec -l /media/boot/\${kernel##*/} --initrd=/media/boot/\${initrd##*/} --command-line=\$(< /proc/cmdline)\n"
|
|
send "\[ \$? != 0 \] && echo FA''IL\n"
|
|
send "kexec -e\n"
|
|
|
|
|
|
set timeout 20
|
|
|
|
expect {
|
|
timeout {exit 1}
|
|
"FAIL" {exit 1}
|
|
"Nothing has been loaded" {exit 1}
|
|
"T2 SDE installer first stage*"
|
|
}
|
|
|
|
set timeout 45
|
|
|
|
|
|
expect {
|
|
timeout {exit 1}
|
|
"* hit enter otherwise. (default:*"
|
|
}
|
|
|
|
send "\n"
|
|
expect {
|
|
timeout {exit 1}
|
|
"install:/#"
|
|
}
|
|
|
|
|
|
send "echo o > /proc/sysrq-trigger\n"
|
|
expect {
|
|
timeout {exit 1}
|
|
"reboot: Power down"
|
|
}
|