串口调试Linux虚拟机

背景

       由于修改Linux内核,因此在调试程序时经常会导致Linux虚拟机panic,但看不到有用的panic 信息,故十分有必要看到panic 的现场信息。本文通过串口方式将信息保存下来。以下过程中以在Linux 主机上虚拟一个Linux为例说明。

方式

虚拟机串口

1.    Virtualbox设置

使用Virtualbox 自带的串口工具即可,如下图示:

 

启用串口1,即ttyS0,使用主机管道,可以看作是文件类型的串口,记住这个文件/tmp/serial

 

2.    串口登录

在Linux下使用minicom 登录,主要修改串口名称,修改为unix#/tmp/serial,其他的串口属性在“下节”描述。

此时可以简单测试串口的连通性,测试过程,

1)在HostOS中启动minicom:

sudo minicom

在虚拟机中的终端中执行:

echo is that ok? > /dev/ttyS0

会在HostOS中的minicom中回显对应内容

2)在虚拟机中的终端中执行:

cat /dev/ttyS0

这时主机中的minicom中会出现输入状态,在其中输入的信息也会在虚拟机终端上回显。

 

Linux输出到串口

1.    init进程修改

修改文件/etc/inittab,将关于串口登录的行反注释,即以下行打开:

T0:23:respawn:/sbin/getty-L ttyS0 9600 vt100

修改后可以从串口登录虚拟机。

2.    grub修改

修改文件/etc/default/grub,仅修改三行,如下:

GRUB_CMDLINE_LINUX_DEFAULT="console=tty0console=ttyS0,115200n8"

GRUB_TERMINAL=serial

GRUB_SERIAL_COMMAND="serial--speed=115200 --unit=0 --word=8 --parity=no --stop=1"

修改后可以将系统启动信息输出到串口。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐