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

[经验分享] 利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境

[复制链接]

尚未签到

发表于 2015-4-13 11:36:28 | 显示全部楼层 |阅读模式
  如有转载,请注明出处与本文连接,谢谢!
  
  修改XEN的源码实现额外的功能,需要有一个调试环境来得到XEN的调试信息(有关源码编译并安装 XEN 请阅读我以前的博文:在CentOS下源码安装 Xen并搭建Windows虚拟机),这里有一篇很好的搭建方法:Xen Serial Console,可是光阅读它还不够,中间还会遇到许多问题,本博文介绍一下环境搭建的经过,以及遇到的问题的解决办法,希望对大家有用。
  得到 XEN 的 Debug String 需要靠串口(Serial Port)来接收并输出,除了使用 RS232 线缆连接两台机器之外(一台运行被调试的 XEN,另一台接收 XEN 的调试信息),还可以使用 Serial Over Lan (SOL) 替代串口线来传输数据。前者需要购买 RS232 接口的串口线,对于现在没有串口的笔记本来说,还需要购买 Express Card 转串口的转接卡(或者 USB 转串口的转接卡,Xen Serial Console 一文中提到:若要调试XEN启动,不能使用USB转串口的转接卡);而对于现在 Intel AMT 技术已经广泛普及的新型笔记本来说,后者的方法更实惠简便。AMT技术可以将串口数据重定向到LAN口,使得LAN口模拟串口实现数据的传输。
  本人系统环境:
  Linux: CentOS 6.3
XEN: Xen 4.1.3
AMT: AMT 6.0
  
  运行 XEN 的被调试机:
  1. 配置 AMT
  参考:
  AMT SOL
  amt-howto - Linux man page
  Intel Management Engine BIOS Extention (MEBx) User Guides
  开机时不停地按 Ctrl+P,即可进入 Intel(R) Management Engine BIOS Extension(MEBx)界面:
   DSC0000.png
  本人笔记本之前BIOS升级到1.45之后,不管如何按 Ctrl+P 都进入不了MEBx,后来降到 1.41 后就可以了,如果大家也遇到同样的问题,降低BIOS版本试试。
  第一次进入MEBx需要更改密码,默认的初始密码是:admin,更改的密码要求复杂度比较高:8位以上、必须包括大写字母、小写字母、数字、特殊符号(如!@#等,但不能有‘:’、','、'"')。更改后的密码切记保管好……
  设置网络:
  依次进入配置界面:
  Intel ME General Settings --> Intel (R) ME State Control --> ENABLE
  Intel ME General Settings --> Activate Network Access --> Y
  Intel ME General Settings --> Network Setup --> TCP/IP Settings --> Wired LAN IPV4 Configuration,使用DHCP,或将其设置为DISABLE后设置指定的IP、掩码、网关、DNS等
  Intel AMT Configuration --> Manageability Feature Selection --> ENABLED
  Intel AMT Configuration --> SOL/IDER --> SOL --> ENABLED
  Intel AMT Configuration --> Legacy Redirection Mode --> ENABLED
  最后退出保存即可。
  
  2. 修改 grub.conf
  参考:Xen_Serial_Console、Xen and serial console over IPMI (SOL)
  本文只给出传统 grub 的配置方法,grub2 的配置方法请参考上面的链接。
  进入 Linux后,在命令行中查看SOL的端口信息:



dmesg | grep ttyS
  若有以下输出,则说明SOL端口已启用:



Kernel command line: ro root=/dev/mapper/vg_livecd-lv_root xencons=ttyS0 console=ttyS0
console [ttyS0] enabled
0000:00:16.3: ttyS0 at I/O 0x1808 (irq = 17) is a 16550A
  注意这里的 SOL 在系统中的代号是“ttyS0”,端口号是 0x1808,分配的中断号是 17,这信息很重要,不同的机器会不一样。
  在控制台下输入命令:vi /boot/grub/grub.conf
  在 default 前插入:



serial --unit=0 --speed=115200
terminal --timeout=0 console serial
  这里的“--unit=0”要按照代号的数字来设置,如果上面查到的是“ttyS1”,这里就设置为“1”;设置“--timeout=0”可以令GRUB引导尽早出现。
  添加一项引导项,参考可引导的引导项,并添加串口的配置:



title CentOS (3.1.2-xen-SOL)
root(hd0,0)
kernel /xen.gz dom0_mem=512M loglvl=all guest_loglvl=all sync_console console_to_ring console=vga,com1 com1=115200,8n1,0x1808,17
module /vmlinuz-3.1.2 ro root=/dev/mapper/vg_livecd-lv_root console=hvc0 console=tty0 earlyprintk=xen
module /initramfs-3.1.2.img
  以上加粗是添加的部分,这里注意:
  kernel行:
“com1”:前面是“ttyS0”就设置为“1”,如果是“ttyS1”就设置为“2”,依此类推。
“com1=115200,8n1,0x1808,17”:115200、8n1就是串口的速率和类型,0x1808、17就是上文查出的ttyS0端口的端口号和中断号,替换为自己的信息就行。
“sync_console”一定要设置,如果不设置的话,由于XEN使用SOL输出调试信息时默认是使用异步方式输出,这样会导致在开机时接收调试信息到这一行时“Platform timer is 14.318MHz HPET”就暂停接收信息了。
“console=vga,com1”表示XEN的输出信息从屏幕、COM1口(在这里就是SOL口)输出。

  module行:
“console=hvc0 console=tty0”表示 Linux 的调试信息输出到 XEN 的命令行、第1个用户界面(也就是启动时一堆OK或FAILED的那些信息)。
  其它设置项请参考:Xen Hypervisor Command Line Options、Kernel Boot Command-line Parameter Reference
  然后保存退出,重启后使用新添加的引导项引导试试。
  
  3. 测试:使用 minicom 传数据
  参考:linux超级终端minicom的使用方法
  安装 minicom,测试是否可以连接:



yum install minicom
  配置:



minicom -s
  出现配置菜单,选择“Serial port setup”,按“A”,输入“/dev/ttyS0”,按“E”,选择为 “115200 8N1”,按“F”,使得“Hardware Flow Control”配置为“No”,最后选择“Save setup as dfl”。
  执行 minicom,当 minicom 启动后,上会出现“Port /dev/ttyS0”,按 Ctrl+A,控制台下方会出现一绿条,最右侧若显示“Online 00:00”,则说明已经连接上SOL,如下图所示:
   DSC0001.png
  
  接收调试信息的控制台:
  1. Linux 平台
  (1) 使用 amtterm
  首先安装 amtterm,控制台中输入:



wget https://www.kraxel.org/releases/amtterm/amtterm-1.3.tar.gz
  下载完后解压缩,并进入该目录进行编译安装:



tar xvf amtterm-1.3.tar.gz
cd amtterm-1.3
make
make install
  安装完后,执行amterm进行连接:



amtterm -p 'AMT_PASSWORD' XEN_DEBUG_MACHINE_IP
  其中“AMT_PASSWORD”是被调试机AMT的密码,由于包含特殊字符,所以需要前后使用单引号;“XEN_DEBUG_MACHINE_IP”是被调试机的IP
。如果连接成功,将有以下提示:
   DSC0002.png
  如果需要记录调试信息,执行 amtterm 时可加入以下参数:



amtterm -p 'AMT_PASSWORD' XEN_DEBUG_MACHINE_IP | tee debug_string.log
  到此,双机配置已成功,从被调试机开机开始,调试机就可以使用 amtterm 进行连接并接收调试信息。
  
  (2) 使用 ipmitool
  (未实验成功,日后补上)
  
  2. Windows 平台
  (1) 使用 ipmiutil
  (未实验成功,日后补上)

运维网声明 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-56629-1-1.html 上篇帖子: Xen, Linux and udev 下篇帖子: Xen虚拟机的安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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