Files
genode/tool/run/log/amt
Adrian-Ken Rueegsegger a98b94f80e run: Pass AMT log password via environment variable
This avoids exposing the cleartext AMT password in the log output.
2015-12-21 09:35:23 +01:00

78 lines
1.6 KiB
Plaintext

##
# Get output of the target machine via Intel AMT's SoL feature
#
# \param --amt-host network address of target machine
# \param --amt-password AMT password for target machine
# \param --amt-filter Sanitize output by piping it through a filter
#
source [genode_dir]/tool/run/log.inc
source [genode_dir]/tool/run/amt.inc
proc log_amt_host { } {
return [get_cmd_arg_first --log-amt-host ""]
}
proc log_amt_password { } {
return [get_cmd_arg_first --log-amt-password ""]
}
proc log_amt_filter { } {
return [get_cmd_arg_first --log-amt-filter ""]
}
##
# Log output of the test machine using Intel's AMT
#
proc run_log { wait_for_re timeout_value } {
global output_spawn_id
if {![is_amt_available [log_amt_host] [log_amt_password]]} {
set exit_result 1
return false
}
#
# amttool expects in the environment variable AMT_PASSWORD the password
#
set ::env(AMT_PASSWORD) [log_amt_password]
#
# grab output
#
set amt_cmd "amtterm -u admin -v [log_amt_host]"
if {[get_cmd_switch --log-amt-filter]} {
set amt_cmd "$amt_cmd | [log_amt_filter]"
}
if {$wait_for_re == "forever"} {
set timeout -1
} else {
set timeout [expr $timeout_value + 30]
}
set exit_result 1
spawn /bin/sh -c "$amt_cmd"
set output_spawn_id $spawn_id
set kernel_msg [run_boot_string]
expect {
-i $output_spawn_id $kernel_msg { }
eof {
puts stderr "Aborting, received EOF"
return false
}
timeout {
puts stderr "Boot process timed out"
close
return false
}
}
wait_for_output $wait_for_re $timeout_value $output_spawn_id
return true
}