我们在启动xen的时候,刚开始的输出都是直接输出到屏幕上,但是domain0启动之后xen里面调试信息的输出就看不到了(应该是为了防止domain0的输出和xen中的输出混杂着吧),但是我们看xen的代码可以看到里面还有很多printk操作,这些printk打印输出的内容是到哪里了呢?
嗯,没错是输出到串口了
内核调试,因为较难进行单步调试,希望是能够通过一些打印信息帮助我们定位到自己写的内核代码的错误位置(完全黑黑的屏幕看得人很纠结,review代码找错误的痛苦只有自己经历了才知道)
ok,废话到这,下面说一下如何配置xen使其能够通过串口输出信息,帮助我们调试or其他xxx的事情
1.准备两台机器(带xen的主机,用于调试的从机),准备一根串口线,通过主机箱背后的串口接口将俩机器连接起来(有的机器没有串口的,可以买一个串口-USB的转接线,这样就可以一端用串口,一端用USB,不过不便的是还需要安装一个USB驱动才行)
2.修改主机xen启动选项:
/boot/grub/grub.conf
kernel
/boot/xen-3.4.gz
sched=credit loglvl=all
guest_loglvl=all debug_stack_lines=80 console=vga,com1
com1=115200,8n1
module /boot/vmlinuz-2.6.18.8-xen ro
root=LABEL=/
console=tty0 max_loop=128
xencons=ttyS0,115200
module
/boot/initrd-2.6.18.8-xen.img
3.从机可以通过超级终端或者是putty来连接到主机,我是用的putty,大概步骤如下:
1)新建一个session,在connection下的serial项中修改如下
serial line to connect to
COM1
speed(baud) 115200
Data bits
8
Stop bits 1
Parity
None
Flow control XON/XOFF
2)回到最开始的session处,在Connection type处选择Serial。选择后对应上面一行的内容也会改变,在Serial line下框中填入:COM1, Speed下框中填入115200
阅读(924) | 评论(0) | 转发(0) |