利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境

修改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)界面:

本人笔记本之前BIOS升级到1.45之后,不管如何按 Ctrl+P 都进入不了MEBx,后来降到 1.41 后就可以了,如果大家也遇到同样的问题,降低BIOS版本试试。

第一次进入MEBx需要更改密码,默认的初始密码是:admin,更改的密码要求复杂度比较高:8位以上、必须包括大写字母、小写字母、数字、特殊符号(如[email protected]#等,但不能有‘:’、‘,‘、‘"‘)。更改后的密码切记保管好……

设置网络:

依次进入配置界面:

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

进入Linux后,在控制台下输入命令:vi /boot/grub/grub.conf

在 default 前插入:

serial --unit=0 --speed=115200
terminal --timeout=10 console serial

添加一项引导项,参考可引导的引导项,并添加串口的配置:

title CentOS (3.1.2-xen-SOL)
    root(hd0,0)
    kernel /xen.gz console=tty0 console=com1 com1=115200,8n1
    module /vmlinuz-3.1.2 ro root=/dev/mapper/vg_livecd-lv_root xencons=ttyS0 console=ttyS0
    module /initramfs-3.1.2.img

以上加粗是添加的部分,然后保存退出,重启后使用新添加的引导项引导试试。

3. 测试:使用 minicom 传数据

参考:linux超级终端minicom的使用方法

在命令行中查看SOL是否已启用:

dmesg | grep ttyS

若有以下输出,则说明已启用,注意最后一行出现了才说明 grub.conf 配置正确:

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

安装 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,如下图所示:

接收调试信息的控制台:

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
。如果连接成功,将有以下提示:

如果需要记录调试信息,执行 amtterm 时可加入以下参数:

amtterm -p ‘AMT_PASSWORD‘ XEN_DEBUG_MACHINE_IP | tee debug_string.log

到此,双机配置已成功,从被调试机开机开始,调试机就可以使用 amtterm 进行连接并接收调试信息。

(2) 使用 ipmitool

(未实验成功,日后补上)

2. Windows 平台

(1) 使用 ipmiutil

(未实验成功,日后补上)

利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境

时间: 2024-10-13 01:36:58

利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境的相关文章

XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法

使用Serial Over Lan(SOL)来双机调试 XEN,在 XEN 启动时,引导信息输出到以下这一句时,就不再发送调试信息了: ...(XEN) Intel machine check reporting enabled (XEN) I/O virtualisation disabled (XEN) Enabled directed EOI with ioapic_ack_old on! (XEN) ENABLING IO-APIC IRQs (XEN) -> Using old ACK

利用tinyproxy在Linux上搭建HTTP Proxy Server

之所以需要用到HTTP Proxy Server并不是为了要翻墙,而是为了让没有公网IP地址的内网主机通过有公网IP地址的外网主机访问Internet.举个例子,阿里云ECS在购买时可以不购买公网IP地址,但这种没有公网IP地址的ECS云主机(实例)是没有访问Internet的能力的,也就是说无法在这台实例上下载文件,这在部署应用如部署MySQL时可能遇到无法完成安装问题.解决的办法有两种,一种是在另一台具有公网访问能力的ECS实例上搭建VPN服务,另一种是在另一台具有公网访问能力的ECS实例上

利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境

前后端分离这个词一点都不新鲜,完全的前后端分离在岗位协作方面,前端不写任何后台,后台不写任何页面,双方通过接口传递数据完成软件的各个功能实现.此种情况下,前后端的项目都独立开发和独立部署,在开发期间有2个问题不可避免:第一是前端调用后台接口时的跨域问题(因为前后端分开部署):第二是前端脱离后台服务后无法独立运行.本文总结最近一个项目的工作经验,介绍利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境的实践过程,希望能对你有所帮助. 注:

利用 Log-Pilot + Kafka + Elasticsearch + Kibana 搭建 kubernetes日志解决方案

利用 Log-Pilot + Kafka+Elasticsearch + Kibana 搭建 kubernetes日志解决方案 1.前提条件 已有kafka.elk.k8s集群,这3套集群搭建网上资料很多,这里不写,IP规划如下所示: kafka集群 10.6.11.22:9092 10.6.11.23:9092 10.6.11.24:9092 ELK集群 10.6.11.25:9200 10.6.11.26:9200 10.6.11.27:9200 k8s集群 10.6.11.28(maste

Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法

想起自己的windbg配置就转载:eqera的windows内核调试配置,真的是获益良多希望他不会介意我转载他的博客,帮了我很多,记录下来给我也给大家, 其中我主要看的是VMWare的pipe建立,而我有些分享是在vs2015中打上DDK,然后在开始菜单window kits下找见windbgx86或者是你想要用的类型,然后 发送快捷方式到桌面利于以后用.发到桌面后,在属性插入你放置的的符号的路径,让然最后别忘了在windbg检查路径是否正确. eqera他的解述给了我很多帮助,可以耐心解读.下

使用Nginx + unicorn搭建ruby on rails的生产环境

有三台机器,操作系统都是CentOS 6.3 64位:其中172.16.9.100,安装Nginx服务器:另外的两台172.16.9.101和172.16.9.102安装unicorn,作为RoR的应用服务器.在这里先保证ruby及rails已经在101和102两台机器上配置好,这是前提.如何安装Nginx及RoR的环境就不在这里说了,很多文章都介绍得很详细. 这里假设项目在/var/www/demo_project文件夹中 在101上使用 gem install unicorn 命令安装uni

Java笔记--CenOS6.5搭建hadoop2.7.1伪分布式环境

一.前言 很以前就搭建过hadoop的伪分布式环境,为了搭建环境特意弄的双系统,还把毕业论文给毁了.不过当时使用的是 hadoop1.x 的,而且因为一些原因,就搭建了环境,而没继续学习了.现在开始,准备好好的学习一下hadoop 二.Hadoop 简介 Hadoop 是Apache软件基金会旗下的一个开源分布式计算平台 是云计算中 PaaS(平台即服务)一层的实现 HDFS 和 MapReduce 共同组成了Hadoop分布式系统体系结构的核心 注:hadoop 具体介绍,留待以后说,现在主要

Android开发环境搭建日记和嵌入式Android开发环境初探

原文出处:www.cnblogs.com/chsry 非常感谢博客园的各位,按照你们的博文,还有利用百度和谷歌逐渐建立了android的开发环境,只是给自己备份参考查看,看过的人可以忽略这篇文章. 本文章大部分参考了:http://www.cnblogs.com/zoupeiyang/p/4034517.html  ,添加了我搭建时候遇到的问题和自己的解决方案,也基本备份了我当时自己的设置,以备日后查看. 本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配

零成本搭建WDS轻量级系统批量部署环境视频课程

因为实际工作需要搭建过WDS系统批量部署服务器,在自己动手搭建之前在网路上学习过一些资料,但实际操作过程中总是有很多问题或注意事项没有被提及,让自己的WDS服务器部署过程耗费了很多时间和精力.我一直就想把部署过程中特别需要注意的部分融进一个系列的教程中,让学习者可以参照流程轻松实现学习目的.于是我就利用可用时间录制了这个实用课程:<零成本搭建WDS轻量级系统批量部署环境视频课程>. 学习目标在Windows Server 2012R2上使用系统自带的WDS服务搭建Windows7系统批量部署环