Passing boot logs to Linux?

Csókás Bence Csokas.Bence at prolan.hu
Wed Dec 20 08:52:58 CET 2023


On 2023. 12. 20. 8:09, Dragan Simic wrote:
> On 2023-12-20 07:49, Csókás Bence wrote:
>> On 2023. 12. 19. 21:33, Daniel Golle wrote:
>>> What comes to mind is that CONFIG_CONSOLE_RECORD also captures ANSI
>>> sequences during menu or count-down before boot, so we'd have to either
>>> introduce a dedicated log_printf() call and use that when ever we want
>>> the output to also become part of the log buffer or we could somehow
>>> filter the recorded console, eliminating all terminal control 
>>> sequences.
>>
>> I don't think that would be a huge problem, Linux userspace can filter
>> ANSI control codes if it wants to. For now, I'd like a byte-for-byte
>> copy of the console, as-is, presented to Linux.
>
> But wouldn't recording the control sequences as-is actually be pretty 
> much useless?  For example, some user can spend a few minutes 
> scrolling through the boot menu, which would produce a fair amount of 
> nearly useless recorded data.
>
> Moreover, if I'm not wrong, viewing or parsing such as-is data would 
> actually require replaying the control sequences, to reproduce the 
> actual console contents as it was recorded, which would be quite 
> cumbersome.


It *is* useless, but most of the times the user won't be scrolling at 
all anyways, that's why I don't think these few extra bytes would be a 
problem.

And no, you don't need anything to "process" ANSI codes, you can just 
`cat` them and your terminal will parse it anyways.


>> As I undersand (never used it before, just quickly read the kernel doc),
>> PStore is for Linux -> U-Boot communication. What I'm doing is the
>> opposite. But the approach I envisioned is similar: make U-Boot save a
>> copy of the log to a struct at a fixed memory address, then pass this
>> address + the length of the log to the kernel via DT and/or commandline.
>
> Actually, pstore is primarily intended as a means to record and store 
> kernel crash dumps for later investigation.  In other words, the 
> kernel writes data to pstore during an oops so it can be investigated 
> later.
>
> One of the benefits of using pstore for record the U-Boot console 
> contents, instead of using a memory region, is that no special 
> utilities would be required to access the recorded console outputs.  
> Also, many of the requirements that you listed below would be already 
> fulfilled.
>
>> What I thought to include in the struct:
>>
>> * magic cookie (it was in the 3rd party solution, and it's an easy way
>> of doing some form of integrity check)
>> * struct version (in case we ever change the layout)
>> * U-Boot version code (maybe not necessary? It can be parsed out of the
>> log as well)
>> * length of the log (or it could also be passed via DT/cmdline)
>> * and then the log buffer of course
>

That's what I read as well. Is there support for U-boot to write and 
Linux to read PStores?

Bence



More information about the U-Boot mailing list