Mips-console
Jump to navigation
Jump to search
#!/usr/bin/expect -f
set ip 192.168.1.2
proc powercycle {} {
send -null 1
expect "(command-mode)"
send -- "p"
#expect "powered on"
expect {
"CFE> " { }
-re ".*\r\n" { send "\003"
exp_continue }
}
}
set timeout -1
if {$argc > 1} {
puts "$argc, $argv"
puts "usage: mips-console [backend]"
exit
}
if {$argc == 1} {
set backend $argv
set spawned [spawn xinu-console -c mips $argv]
} else {
set backend null
set spawned [spawn xinu-console -c mips]
}
expect {
"error: connection not available"
{ send_user "error: connection not available\r\n"
exit }
-re "connection '(.*)', class '(.*)', host '(.*)'\r\n"
{ set backend $expect_out(1,string)
set class $expect_out(2,string)
set host $expect_out(3,string)
# send_user "connection $backend, class $class, host $host\r\n"
}
}
sleep 1
send -null 1
expect "(command-mode) "
send -- "d"
expect "file: "
send -- "xinu.boot\r"
expect {
"download complete\r\n"
{ }
"No such file or directory"
{ send_user "No such file: xinu.boot\r\n"
exit }
}
sleep 1
send -- "\r"
set boot 1
expect {
-timeout 1 "CFE> " {set boot 0}
}
if {1==$boot} powercycle
send -- "ifconfig -auto eth0\r"
expect "CFE> "
send -- "boot -elf $ip:$backend"
send -- ".boot\r"
expect -- "Starting program"
interact