diff --git a/util/autoport/log_maker.go b/util/autoport/log_maker.go index b991ea715d..e2440b4891 100644 --- a/util/autoport/log_maker.go +++ b/util/autoport/log_maker.go @@ -9,7 +9,7 @@ import ( "strings" ) -func RunAndSave(output string, name string, arg ...string) { +func TryRunAndSave(output string, name string, arg []string) error { cmd := exec.Command(name, arg...) f, err := os.Create(output) @@ -22,9 +22,27 @@ func RunAndSave(output string, name string, arg ...string) { err = cmd.Start() if err != nil { - log.Fatal(err) + return err } cmd.Wait() + return nil +} + +func RunAndSave(output string, name string, arg ...string) { + err := TryRunAndSave(output, name, arg) + if err == nil { + return + } + idx := strings.LastIndex(name, "/") + relname := name + if idx >= 0 { + relname = name[idx+1:] + } + relname = "./" + relname + err = TryRunAndSave(output, relname, arg) + if err != nil { + log.Fatal(err) + } } func MakeLogs(outDir string) { diff --git a/util/autoport/readme.md b/util/autoport/readme.md index e5ea77d12c..158cf49fdf 100644 --- a/util/autoport/readme.md +++ b/util/autoport/readme.md @@ -25,7 +25,12 @@ This will allow autoport to detect as much as possible make cd ../autoport go build - ./autoport --input_log=logs --make_logs --coreboot_dir=../.. + sudo ./autoport --input_log=logs --make_logs --coreboot_dir=../.. + + Note: in case you have problems getting gcc and golang to target machine + you can just compile on another machine and transfer binaries + `autoport`, `inteltool` and `ectool`. You'll still need other prerequisites + but you may place them in the same directory as autoport. * Look for output unknown PCI devices. E.g.