Difference between revisions of "Netconsole"

From ArchWiki
Jump to: navigation, search
Line 1: Line 1:
 
[[Category:Kernel]]
 
[[Category:Kernel]]
 
[[Category:Networking]]
 
[[Category:Networking]]
'''netconsole''' is a kernel module that sends all kernel log messages (i.e. [[dmesg]]) over the network to another computer, without involving user space (e.g. syslogd). "netconsole" is a misnomer because it's not really a "console", more like a remote logging service.
+
'''netconsole''' is a kernel module that sends all kernel log messages (i.e. [[dmesg]]) over the network to another computer, without involving user space (e.g. syslogd). Name "netconsole" is a misnomer because it's not really a "console", more like a remote logging service.
  
netconsole is mainly used for capturing kernel panic output from a headless machine, or in other situations where the user space is no more functional.
+
It can be used either built-in or as a module. As a built-in, ''netconsole'' initializes immediately after NIC cards and will bring up the specified interface as soon as possible. ''Netconsole'' is mainly used for capturing kernel panic output from a headless machine, or in other situations where the user space is no more functional.
  
 
Documentation is available in the Linux kernel tree under '''[http://lxr.linux.no/linux+v2.6.32/Documentation/networking/netconsole.txt Documentation/networking/netconsole.txt]'''
 
Documentation is available in the Linux kernel tree under '''[http://lxr.linux.no/linux+v2.6.32/Documentation/networking/netconsole.txt Documentation/networking/netconsole.txt]'''
 +
 +
 +
== Build-in Configuration ==
 +
 +
''Netconsole'' and other modules [[Kernel parameters]] can be passed from a bootloader when starting the kernel by modifying bootloader configuration file. Such modification is bootloader type and version specific. Or they can be passed at runtime:
 +
 +
<pre>
 +
# set log level for kernel messages
 +
dmesg -n 8
 +
 +
netconsole=6665@192.168.0.111/eth0,6665@192.168.0.17/00:43:24:96:d7:v5
 +
</pre>
  
 
== Dynamic configuration ==
 
== Dynamic configuration ==

Revision as of 01:07, 29 August 2012

netconsole is a kernel module that sends all kernel log messages (i.e. dmesg) over the network to another computer, without involving user space (e.g. syslogd). Name "netconsole" is a misnomer because it's not really a "console", more like a remote logging service.

It can be used either built-in or as a module. As a built-in, netconsole initializes immediately after NIC cards and will bring up the specified interface as soon as possible. Netconsole is mainly used for capturing kernel panic output from a headless machine, or in other situations where the user space is no more functional.

Documentation is available in the Linux kernel tree under Documentation/networking/netconsole.txt


Build-in Configuration

Netconsole and other modules Kernel parameters can be passed from a bootloader when starting the kernel by modifying bootloader configuration file. Such modification is bootloader type and version specific. Or they can be passed at runtime:

# set log level for kernel messages
dmesg -n 8

netconsole=6665@192.168.0.111/eth0,6665@192.168.0.17/00:43:24:96:d7:v5

Dynamic configuration

# set log level for kernel messages
dmesg -n 8

modprobe configfs
modprobe netconsole
mount none -t configfs /sys/kernel/config

mkdir /sys/kernel/config/netconsole/target1
cd /sys/kernel/config/netconsole/target1

# set local IP address
echo 192.168.0.111 > local_ip
# set destination IP address
echo 192.168.0.17 > remote_ip
# find destination MAC address
arping `cat remote_ip` -f |grep -o ..:..:..:..:..:.. > remote_mac

echo 1 > enabled

netconsole should now be configured. To verify, run 'dmesg |tail' and you should see "netconsole: network logging started"

Receiver

nc -u -l 6666

or

nc -u -l -p 6666