xen 4.1.2 串口调试

    在xen中,有好多printk()调用,这些调用输出的信息到哪去了?prink()  HYPERVISOR_console_io()这两个函数都把信息输出到串口了。我们可以用另一台电脑通过串口线链接xen主机来获得串口输出信息。

   、用串口线链接xen主机和用于调式的电脑,不过注意在xen主机端不能用usb转串口链接,调试电脑可以用。

    二、执行dmesg |grep ttyS 获得串口信息
          #dmesg |grep ttyS
            serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

          serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

ttyS0代表COM1 ttyS1代表COM2。0x3f8 0x2f8是两个串口所使用的IO端口,irq是指对应的中断号。


    三、 修改/boot/grub/grub.cfg如下:
menuentry 'Ubuntu GNU/Linux, with Xen 4.1.2 and Linux 3.2.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos8)'
        search --no-floppy --fs-uuid --set=root 3c3309f1-c32e-4707-82e1-23d3e06bf3a2
        echo     'Loading Xen 4.1.2 ...'
        multiboot       /boot/xen-4.1.2.gz placeholder loglvl=all guest_loglvl=all com1=115200,8n1,0x3f8,4 console=com1,vga   #这里注意 com1=115200,8n1,0x3f8,4  后面两个参数应与第二步获得的IO端口号和中断号保持一致。
        echo     'Loading Linux 3.2.0-29-generic ...'
        module   /boot/vmlinuz-3.2.0-29-generic placeholder root=UUID=3c3309f1-c32e-4707-82e1-23d3e06bf3a2 ro console=hvc0 earlyprintk=xen quiet splash
        echo     'Loading initial ramdisk ...'
        module   /boot/initrd.img-3.2.0-29-generic
}

    四、调试电脑显示信息
        1、如果为linux操作系统,可以使用minicom获得串口输出。
        #minicom
        将链接串口设置为当前与xen主机链接的串口,一般为/dev/ttyS0或/dev/ttyUSB0
        保存重启即可。

        2、如果为windows操作系统,请参考链接3

TROUBLE SHOOTING
    1、如果链接串口,调试电脑能够显示xen启动时的信息,但却无法显示minios的输出。
    解决方法:
          重新编译xen:
          #make xen debug=y
          #make install-xen
          重启xen主机,即可。这个问题在我的系统上颇为奇怪,最开始我用make xen编译安装的,我用串口显示调式信息时,却只能显示xen的启动信息,无法显示minios的输出。然后我用make xen debug=y编译后安装能输出minios信息了。然后我又再次使用make xen编译安装了两次,神奇的是两次安装过后调试电脑同样可以输出minios的输出。问题究竟在哪呢?

参考链接:
1、xen官网串口链接说明
2、讨论HYPERVISOR_console_io()输出显示问题
3、windows下利用putty显示串口信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值