设为首页 收藏本站
查看: 853|回复: 0

[经验分享] 用vmware的虚拟串口输出xen或linux的启动日志

[复制链接]

尚未签到

发表于 2015-4-8 16:44:19 | 显示全部楼层 |阅读模式
  reference http://wiki.xenproject.org/wiki/Xen_Serial_Console
  最近在自己写一个xen的调度器,写了一个简单的调度器之后就迫不及待地编译,然后安装,重启。但是dom0一直没有启动,肯定是自己写的调度器有问题。
  接下来就是调试了。可是初始化调度器,启动dom0都是系统启动时候进行的,对这个阶段执行的代码进行调试时很困难的,现在我能够使用的只有printk。于是我在代码感兴趣的地方都加了printk,以追踪代码到底是怎么执行的,获取一些关键的变量值等等。但是问题又来了,在系统启动的时候那些打印的信息往往是一闪而过,最后停顿在出问题的地方,所以那些自己感兴趣的信息往往闪过去了,往往是看不到的。
  一开始我想了一个很笨的方法,在printk下面加一句while(1){},一旦我要的信息打印出来了,系统就停顿了,后来的信息就打印不出来了。但是这样有一个很明显的缺点,就是每次都要经过“加while->编译->安装->重启->看输出信息->把前面的while删掉->在后面想要的地方加while”这一系列的循环,工作量很大,不过用这种方法帮助我纠正了不少错误。
  后来得知可以把xen的启动信息用串口输出到另一台机器。具体见这篇文章http://wiki.xen.org/wiki/Xen_Serial_Console。
  上述方法需要两台机器才能完成,我不想用两台电脑,太麻烦了。况且我的xen是安装在vmware的虚拟机里面的,我想把虚拟机里面的系统的启动信息通过虚拟串口发送到我宿主机的串口接收工具中。
  
  我的环境:
  vmware 客户机:fedora 19 (用来做xen的dom0)
  宿主机:win7
  过程:
  1.用vmware添加一个虚拟的serial port并设置。 虚拟机设置->hardware->add->serial port,有三个选项,我用的是named pipe。注意红色划线处选上。
DSC0000.png
  2.下载一个putty,设置putty并open。
DSC0001.png
  
  3.测试串口通信。启动虚拟机里的fedora19,在终端中输入echo hello > /dev/ttyS1。 这里我用的是ttyS1设备,还有一个ttyS0设备。向ttyS0写消息的时候putty没有收到,由此推测,虚拟机的虚拟串口com_1对应了fedora里的ttyS1.
DSC0002.png
  
  4. 测试串口通信成功,接下来可以配置fedora的grub了。这里我没有完全按照的xen wiki 上的配置(ttyS0)做,当然我试了,没有成功。首先在这里需要知道的是,这里用的是虚拟机虚拟出来的串口com_1,在fedora里面就可能不是对应ttyS0了,上面也测试了,实际上是对应了ttyS1。
  获取ttyS相关信息,在终端输入dmesg | grep ttyS*,0x2f8是io端口,3是对应的中断,在这里我们需要注意的是ttyS1的信息:
DSC0003.png
  接下来配置grub(vi /etc/default/grub),com2=之后的信息根据自己的机器写,写完后保存:
DSC0004.png
  
  5. 终端中输入“grub2-mkconfig -o /boot/grub2/grub.cfg”,重新生成grub配置文件。
  
  6. 打开putty,设置好serial line,先不要open打开连接,等一会启动xen时再open。
  重新启动fedora,将光标移动到xen启动选项,不要按enter,我们先不启动。
  这时候点击putty的open按钮,开始监听串口信息。
  在虚拟机里按enter,启动xen hypervisor。这时候xen的启动信息,putty都能捕获到。
DSC0005.png
  putty显示的
DSC0006.png
  
  ps:需要linux启动信息的朋友也可以通过这种方法获取启动信息,只是grub需要对应修改,请参考http://ubuntuforums.org/showthread.php?t=2197743。
  
  第一篇文章到此结束,欢迎评论~
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55091-1-1.html 上篇帖子: VMware安装RHEL5.5后修改分辨率设置 下篇帖子: 学习环境搭建之Vmware player && putty
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表