Repository navigation
Home
boot-log-diff compares the serial boot log of an embedded board with the log of a known-good board — the golden log — and shows only what really differs. Timestamps, addresses, dates, transfer rates and other values that change on every boot are masked first. Known fault patterns, like a PHY that is not found or an eMMC timeout, come with a diagnosis: what usually causes the message and what to check on the board.
The two example logs in the repository are 67 lines each. A plain diff
marks 60 of them; boot-log-diff finds the four places that matter — half the
RAM, an Ethernet PHY that is not found, an SD card slot that times out — and
says where to look for the last two.
- Board repair. Power up the faulty board, capture the console, compare with a good board. The deviations point to the subsystem; the diagnosis to the first parts to check.
- Production test. A boot check at the end-of-line station: exit status for the test sequencer, JUnit XML for the test system, an HTML page for the test record or the repair ticket.
- CI for embedded software. Boot a new image on a board farm and see whether a driver, a device or a value went missing.
| If you want to … | read |
|---|---|
| install it and compare your first two logs | Getting started |
| get a clean log from the serial console | Capturing boot logs |
| make the comparison quiet on healthy boards | Building a golden log |
| know what the fault diagnosis covers, add your own | Known faults |
| use it in GitLab, Jenkins, GitHub Actions or pytest | Reports and CI |
| find out why it reports too much or too little | Troubleshooting |
The README is the complete reference of all options. This wiki adds walkthroughs and background.
| Install |
pip install boot-log-diff (Python 3.10+, no dependencies on 3.11+) |
| Input | any text capture of a serial console: minicom, picocom, PuTTY, grabserial, stdin |
| Masks | kernel timestamps, dates, hex addresses, MAC/IP, UUIDs, durations, rates, temperatures, BogoMIPS — plus your own |
| Facts | board model, U-Boot and kernel version, DRAM, kernel memory, CPU count — plus your own |
| Known faults | 23 built-in patterns with diagnosis; your own in TOML |
| Output | text, JSON, JUnit XML, HTML; exit status 0/1/2 |
| Tested on | Linux, Windows, macOS; Python 3.10 and 3.13 |
| License | MIT |
boot-log-diff · MIT licensed · the example logs are from a fictitious board (Acme EPC-8M).
