mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-19 11:16:57 +00:00
run: capture kernel msg to detect boot errors
Handle boot errors like the old run tool did by checking a kernel specific string on boot up and start the run script timeout afterwards. Issue #1395.
This commit is contained in:
parent
2b69310adf
commit
7617833365
@ -59,6 +59,11 @@ proc bin_dir { } {
|
||||
set fiasco_serial_esc_arg "-serial_esc "
|
||||
|
||||
|
||||
proc run_boot_string { } {
|
||||
return "L4 Bootstrapper"
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Populate boot directory with binaries on fiasco
|
||||
#
|
||||
|
@ -240,6 +240,11 @@ proc run_boot_dir_arm {binaries} {
|
||||
}
|
||||
|
||||
|
||||
proc run_boot_string { } {
|
||||
return "L4 Bootstrapper"
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Populate boot directory with binaries on fiasco.OC
|
||||
#
|
||||
|
@ -10,6 +10,11 @@ proc run_boot_dir_hook { } {
|
||||
}
|
||||
|
||||
|
||||
proc run_boot_string { } {
|
||||
return "kernel initialized"
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Populate boot directory with binaries on hw
|
||||
#
|
||||
|
@ -24,6 +24,11 @@ proc nova_external { } {
|
||||
}
|
||||
|
||||
|
||||
proc run_boot_string { } {
|
||||
return "NOVA Microhypervisor"
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Populate directory with binaries on NOVA
|
||||
#
|
||||
|
@ -101,6 +101,11 @@ set weaver_xml_template {
|
||||
}
|
||||
|
||||
|
||||
proc run_boot_string { } {
|
||||
return "OKL4 -"
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Populate directory with binaries on OKL4
|
||||
#
|
||||
|
@ -63,6 +63,11 @@ proc kernel_external { } {
|
||||
}
|
||||
|
||||
|
||||
proc run_boot_string { } {
|
||||
return "L4Ka::Pistachio -"
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Populdate boot directory with binaries on pistachio
|
||||
#
|
||||
|
@ -22,21 +22,25 @@ proc log_serial_cmd { } {
|
||||
proc run_log { wait_for_re timeout_value } {
|
||||
global output_spawn_id
|
||||
|
||||
set timeout 60
|
||||
while {true} {
|
||||
set kernel_msg [run_boot_string]
|
||||
|
||||
eval spawn [log_serial_cmd]
|
||||
set output_spawn_id $spawn_id
|
||||
|
||||
set timeout 210
|
||||
expect {
|
||||
"Genode \[0-9]\[0-9]\.\[0-9]\[0-9]" {
|
||||
wait_for_output $wait_for_re $timeout_value $output_spawn_id;
|
||||
return true;
|
||||
$kernel_msg { }
|
||||
eof {
|
||||
puts stderr "Serial command process died unexpectedly"
|
||||
return false
|
||||
}
|
||||
eof { continue; }
|
||||
timeout {
|
||||
puts stderr "Boot process timed out";
|
||||
close;
|
||||
return false;
|
||||
}
|
||||
puts stderr "Boot process timed out"
|
||||
close
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
wait_for_output $wait_for_re $timeout_value $output_spawn_id
|
||||
return true
|
||||
}
|
||||
|
@ -489,6 +489,10 @@ proc wait_for_output { wait_for_re timeout_value running_spawn_id } {
|
||||
## Fall-back implementations of all run module procedures
|
||||
##
|
||||
|
||||
##
|
||||
# Dummy boot_string procedure
|
||||
proc run_boot_string { } { return ""; }
|
||||
|
||||
##
|
||||
# Dummy boot_dir maodule
|
||||
proc run_boot_dir { } { return true; }
|
||||
|
Loading…
Reference in New Issue
Block a user