使用vmware的串口来调试内核
http://blog.chinaunix.net/u/12592/showart_494314.html
最近在调试一个模块,使用虚拟机调试的。
2.6.18-smp
添加模块运行之后,系统就崩溃了,但是拿不到系统日志,日志只打印到屏幕上了,但是好几屏的日志,我们只能够看到一屏,确定不了bug的地方。

遇到这样的问题,应该怎么办呢?

下面来讲述使用vmware的串口来解决这个问题。

1、将vmware的串口映射到一个命名管道:


2、使用socat来将命名管道文件,定位到一个伪终端
# socat -d /tmp/ocat.pipe /dev/pts/2

3、在内核启动参数上加上console=ttyS0,9600n8

如果愿意的话,可以再在/etc/inittab中添加上:
# Run agetty on COM1/ttyS0 and COM2/ttyS1
s0:2345:respawn:/sbin/agetty -L -f /etc/issueserial 9600 ttyS0 vt100
s1:2345:respawn:/sbin/agetty -L -f /etc/issueserial 38400 ttyS1 vt100
#s1:2345:respawn:/sbin/agetty -L -i 38400 ttyS1 vt100

注意要关闭kudzu,要不然它会检测硬件,麻烦。
[root@oscar root]# chkconfig kudzu off
[root@oscar root]# chkconfig --list kudzu
kudzu 0:off 1:off 2:off 3:off 4:off 5:off 6:off

参考:
http://blog.chinaunix.net/u/30725/showart_253191.html
http://www.devfront.com/?q=node/302
http://www.vanemery.com/Linux/Serial/serial-console.html
http://blog.jianingy.com:4080/mt-search.cgi?tag=console&blog_id=5
http://www.shaolinmicro.com/support/doc/HOWTO/Remote-Serial-Console-HOWTO/configure-kernel.html