Opened 14 years ago

Closed 5 years ago

Last modified 4 years ago

#6168 closed enhancement (fixed)

[RFC] Add syslog support to boot loader

Reported by: andreasf Owned by: jessicah
Priority: normal Milestone: R1/beta2
Component: System/Boot Loader Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
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 14 years ago.
proposed patch
syslogd.cs (1.0 KB ) - added by andreasf 14 years ago.
test case: simple receiver as alternative to a real syslogd

Download all attachments as: .zip

Change History (11)

by andreasf, 14 years ago

proposed patch

comment:1 by andreasf, 14 years ago

patch: 01

by andreasf, 14 years ago

Attachment: syslogd.cs added

test case: simple receiver as alternative to a real syslogd

comment:2 by andreasf, 14 years ago

Owner: changed from axeld to andreasf
Status: newassigned

comment:3 by nielx, 12 years ago

Any update on this patch or this ticket?

comment:4 by jessicah, 10 years ago

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

comment:5 by pulkomandy, 9 years ago

Milestone: R1Unscheduled

comment:6 by pulkomandy, 7 years ago

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 by pulkomandy, 5 years ago

comment:8 by stippi, 5 years ago

Resolution: fixed
Status: in-progressclosed

Change is committed in hrev52806.

comment:9 by nielx, 4 years ago

Milestone: UnscheduledR1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.