您的位置:首页 > 运维架构 > Linux

使用netconsole发送linux驱动程序调试信息和kernel panic消息

2011-06-28 14:04 363 查看
1、首先在以太网驱动中实现net_device结构中的poll_controller接口,否则提示:

eth0's network driver does not implement netlogging yet, aborting.

2、给以太网接口配置一个IP地址,否则会有如下错误提示信息:

no IP address for eth0, aborting

3、确定接收端IP地址、端口、MAC地址,加载netconsole.ko模块。

4、在远程主机使用netcat或syslogd进行接收。

5、以下内容来自kernel/Documentation/netconsole.txt

started by Ingo Molnar <mingo@redhat.com>, 2001.09.17

2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003

Please send bug reports to Matt Mackall <mpm@selenic.com>

This module logs kernel printk messages over UDP allowing debugging of

problem where disk logging fails and serial consoles are impractical.

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. While this doesn't allow

capture of early kernel panics, it does capture most of the boot

process.

It takes a string configuration parameter "netconsole" in the

following format:

netconsole=[src-port]@[src-ip]/[<dev>],[tgt-port]@<tgt-ip>/[tgt-macaddr]

where

src-port source for UDP packets (defaults to 6665)

src-ip source IP to use (interface address)

dev network interface (eth0)

tgt-port port for logging agent (6666)

tgt-ip IP address for logging agent

tgt-macaddr ethernet MAC address for logging agent (broadcast)

Examples:

linux
netconsole=4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc

or

insmod netconsole netconsole=@/,@10.0.0.2/

Built-in netconsole starts immediately after the TCP stack is

initialized and attempts to bring up the supplied dev at the supplied

address.

The remote host can run either 'netcat -u -l -p <port>' or syslogd.

WARNING: the default target ethernet setting uses the broadcast

ethernet address to send packets, which can cause increased load on

other systems on the same ethernet segment.

NOTE: the network device (eth1 in the above case) can run any kind

of other network traffic, netconsole is not intrusive. Netconsole

might cause slight delays in other traffic if the volume of kernel

messages is high, but should have no other impact.

Netconsole was designed to be as instantaneous as possible, to

enable the logging of even the most critical kernel bugs. It works

from IRQ contexts as well, and does not enable interrupts while

sending packets. Due to these unique needs, configuration can not

be more automatic, and some fundamental limitations will remain:

only IP networks, UDP packets and ethernet devices are supported.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐