1. optionRom日志抓取方法
UEFI是在主机侧运行,排查UEFI的问题,尤其是驱动的问题,不仅需要会获取ioc侧的日志,也需要获取主机侧的日志,也就是UEFI程序本身的日志。学习日志的获取方法尤为重要,下面介绍几种获取主机侧日志的方法。
1.1. 串口导出日志
进行串口导出日志,首先要有串口导出的TTL串口线,如下所示:
TTL串口线一端是USB,另外一端是四个接线柱,其中黑色接地,红色是电源。另外的两个一个是TX,一个是RX。
白色是RX,连接设备的TX;绿色是TX,连接设备的RX。
以海光机器为例,其中一版本的机器的连线方式,如下所示:
使用的时候,只需要将地线连接正确,其他的TX和RX,尝试一次就好。
这里值得注意,主机侧BIOS的日志默认情况下不一定时打开的。若想打开主机侧BIOS日志的打印,可以在advance界面下,按下ctrl+F11,开启隐藏选项,将串口的打印放开。
1.2. 局域网的方式连接BMC
针对于服务器设备,都是具有BMC的。BMC可以将主机侧的日志重定位出来。若是当前的设备连接了局域网,配置好BMC的网址后,连接BMC就可以将主机侧的日志导出。
若是我们使用windows下的串口,包括Windows PowerShell工具,可以使用ipmitool.exe工具连接BMC,将日志导出。在linux下面使用ipmitool指令即可。使用的指令如下:
ipmitool -I lanp -H 192.168.1.3 -U admin -P admin sol activate | tee log11.txt
ipmitool -I lanp -H 192.168.1.3-U admin -P admin sol deactivate
tee指令可以将日志保存到本地,但是仅仅限制于linux系统。
deactivate表示的是断开连接,activate表示的是建立连接。
1. 打开SOL功能:
ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) sol activate
2 关闭SOL功能:
ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) sol deactivate
当然为了保存这里的日志,若是此时运行在Linux系统,我们可以在linux下执行ipmitool指令的同时,在windows的一个串口下,使用shh访问我们的linux主机,将日志保存下来。
1.3. 网线直连BMC
在某些情况下,我们使用的笔记本电脑于BMC不在一个网段,或者没有局域网,再或者当地的网络布不具备DHCP的功能。此时我们需要使用网线直连的方式来获取主机侧的日志。
用网线将笔记本电脑于BMC的网口相连接
笔记本关闭无线网络,避免无限网络的干扰
运行软件Tftp64
选择Setting选项
在DHCP界面上,完成网络的基本配置,选择OK,配置完成。此时的Tftp64软件,可以完成对BMC地址的分配,我们仿造步骤二的方式,获取日志即可。
2. 获取主机侧的启动日志
在正常的情况下,查看dmesg信息,就可以获取主机侧的启动日志,但是在某些情况下,主机无法正常启动,或者在启动过程中就会出现卡死的现象。这时候,我们可以使用BMC来获取主机侧的日志。具体有两种配置方法。
方法一、配置grub选项
在grub界面下,按下ctrl+e,进行页面的编辑。将rhgb quiet写成
console=tty0 console=ttyS0,115200n8
tty0:
tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到
该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。
ttyS0:
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。例如, 在命令行提示符下键入:echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。
一般查看串口设备的方法,主要如下所示:
1、查看串口是否可用
可以对串口发送数据比如对com1口,echo /dev/ttyS0
2、查看串口名称使用
ls -l /dev/ttyS*
一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;
3、查看串口驱动
cat/proc/tty/drivers/serial
4、查看串口设备
dmesg | grep ttyS*
方法二、修改配置项目,永久生效
进入主机系统,直接修改对应的grub文件即可。修改内容如上所示。