Opened 9 years ago

Closed 7 weeks ago

#6168 closed enhancement (fixed)

[RFC] Add syslog support to boot loader

Reported by: andreasf Owned by: jessicah
Priority: normal Milestone: Unscheduled
Component: System/Boot Loader Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: yes Platform: All

Description (last modified by jessicah)

When debugging without a serial port, network-based output would provide an alternative to re-typing screen output or taking pictures.

As a proof of concept this patch adds UDP-based syslog-ng support (5424, RFC5426) to the boot loader. While UDP is potentially lossy, unidirectional broadcast of datagrams avoids server discovery/selection and it avoids a dependency on still-pending TCP support patches (#5240).

Output starts once the network stack is initialized - on ppc currently only when network-booting, before searching for boot volumes - and with #6166 patches until the last malloc() for kernel ELF sections.

Unfortunately this does not work in the kernel though. Linking the boot loader's network stack into the ppc kernel does work, but depending on the point of initialization either the stack initialization and sending succeed but datagrams do not arrive (e.g., in PPCPlatform::InitPostVM()), or the stack initialization's of_open() hangs as in #5160 and #4385 (e.g., in main2()).

Attachments (2)

0001-Add-syslog-ng-support.patch (2.9 KB) - added by andreasf 9 years ago.
proposed patch
syslogd.cs (1.0 KB) - added by andreasf 9 years ago.
test case: simple receiver as alternative to a real syslogd

Download all attachments as: .zip

Change History (10)

Changed 9 years ago by andreasf

proposed patch

comment:1 Changed 9 years ago by andreasf

Has a Patch: set

Changed 9 years ago by andreasf

Attachment: syslogd.cs added

test case: simple receiver as alternative to a real syslogd

comment:2 Changed 9 years ago by andreasf

Owner: changed from axeld to andreasf
Status: newassigned

comment:3 Changed 7 years ago by nielx

Any update on this patch or this ticket?

comment:4 Changed 5 years ago by jessicah

Description: modified (diff)
Owner: changed from andreasf to jessicah
Status: assignedin-progress

comment:5 Changed 4 years ago by pulkomandy

Milestone: R1Unscheduled

comment:6 Changed 2 years ago by pulkomandy

For reference, Linux kernel uses "netconsole", which is even simpler than syslog. https://www.kernel.org/doc/Documentation/networking/netconsole.txt

Maybe we should consider that too. I started working on it in the kernel debugger interface but what I did is not working (trying to use sockets in a place where interrupts are disabled).

comment:7 Changed 7 weeks ago by pulkomandy

comment:8 Changed 7 weeks ago by stippi

Resolution: fixed
Status: in-progressclosed

Change is committed in hrev52806.

Note: See TracTickets for help on using tickets.