串口调试Linux虚拟机
串口调试Linux虚拟机背景 由于修改Linux内核,因此在调试程序时经常会导致Linux虚拟机panic,但看不到有用的panic 信息,故十分有必要看到panic 的现场信息。本文通过串口方式将信息保存下来。方式虚拟机串口1. Virtualbox设置使用Virtualbox 自带的串口工具即可,如下图示: 启用串口1,即ttyS0,使用主
串口调试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"
修改后可以将系统启动信息输出到串口。
更多推荐
所有评论(0)