Skip to content

Troubleshooting

Ralf Steinert edited this page Oct 29, 2026 · 1 revision

It reports far too much

Hundreds of lines differ. The two logs are not from the same software, or one capture is broken:

  • different bootloader or kernel version — the u-boot and kernel facts at the top show it; capture a golden log for that release (Building a golden log);
  • wrong baud rate in one capture — the lines are garbage;
  • the capture started late or ran on — compare where both logs begin and end.

The host name, a serial number or a MAC in a name differs. Mask it: --mask 'epc8m-[0-9a-f]+'.

A value differs between healthy boards (eMMC vendor, calibration value, random seed). Mask the value, or --ignore the line. See the table in Building a golden log.

One changed value shows as a missing and a new line. That is how it works: lines are compared as a whole after masking. If the value is important, make it a --fact; if it is noise, --mask it.

It reports too little

Lines that only moved are not reported. Drivers probing in parallel do not keep their order, so moved lines are counted, not reported. --strict-order reports them as missing and new.

An ignored line hides a fault. --ignore drops the whole line. Prefer --mask, which only replaces the value.

A built-in mask hides a difference you care about, for example a temperature. Switch it off: --no-mask temp. The names are in --help.

Known faults

An error message is in the diff, but no known fault is listed. No rule matches it. Add your own (Known faults) — and if it is a common message, open an issue so it can become a built-in rule.

A message is listed as a known fault although it is harmless on this board. Add it to the golden log if healthy boards print it too (then it is no longer new), or override the rule's id with your own rule.

A message is not listed as a known fault although it matches. Known faults only look at new lines. If the golden log contains the same line, it is not a fault of this board. Check the golden log.

The wrong fault is listed for a line. A line counts for the first rule that matches; your own rules come first. Make the own pattern more specific, or order your own rules from specific to general.

Errors (exit status 2)

--mask '…': missing ), unterminated subpattern. The regex is broken — often a shell quoting problem. On Linux and macOS use single quotes. In the Windows command prompt use double quotes; in PowerShell single quotes.

--rules our-boards.toml: fault #2: missing pattern. The named rule lacks a field. Use TOML single quotes for patterns: in double quotes a backslash starts an escape, and "\d" stops with Unescaped '\' in a string.

reports/r.html: No such file or directory. The report directory must exist; boot-log-diff does not create directories.

Reports

The JUnit report has 30 test cases for one board. On purpose: one per fact, one for the log lines, one per fault rule, so the test system can show and count each check.

The HTML report shows no colours in an e-mail client. Some clients strip the <style> block. Attach the file instead of pasting it.

Clone this wiki locally