原理:arm 系统默认走ttyAMA0,x86 默认走ttyS0,而tty0 是走的GPU
串行端口终端(/dev/ttySn)
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。
计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。
假如是 x86 机器
方式1:在/etc/default/grub 添加相应字段,GRUB_CMDLINE_LINUX=“… console=ttyS0”
- Debian or Ubuntu
$ sudo update-grub //生成grub的配置文件
$ sudo apt-get install grub2-common //没有 update-grub命令时,先运行这个安装命令
- Fedora or CentOS7
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg //生成grub2的配置文件
$ sudo yum install grub2-tools.x86_64 //没有grub2-mkconfig命令时,先安装grub2-tools
方式2:
添加到securetty中允许登录
grep ttyS0 /etc/securetty || echo “ttyS0” >> /etc/securetty
使用grubby在内核参数中添加ttyS0
grubby --update-kernel=ALL --args=console=ttyS0
添加到inittab中实现开机初始化tty
grep ttyS0 /etc/inittab || echo “S0:12345:respawn:/sbin/agetty ttyS0 115200” >> /etc/inittab
重启生效
reboot
方式3:
编译时候自带开启
如下arm kernel 配置项开启 console 功能