linux下串口控制台的设置

       在linux系统下,如果想把kernel的调试信息,grub的调试信息输出到串口控制台,以便于查看调试信息。则首先

必须创建一个串口控制台,在/etc/event.d/目录下创建ttyS0控制台文件。


首先查看串口信息:dmesg | grep tty
将得到类似以下的输出
     serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
     00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 

然后进入 /etc/event.d/ 目录, 创建文件 /etc/event.d/ttyS0 , 并加入以下内容:
     # ttyS0 - getty
则串口控制台创建成功。此时就可以设置grub、kernel等将调试信息输出到控制台中。
配置grub方法:
       1、配置 grub ,让启动信息也输出到串口。如果启动信息不需要输出到串口,
            则忽略这一步
            打开 /boot/grub/grub.conf (也可能是其他路径) 找到以下面字符开始的一行
            kernel /vmlinuz-*** ro root=LABEL=/
            修改成以下形式
            kernel /vmlinuz-*** ro root=LABEL=/ console=ttyS0,115200 console=tty0
            即添加了相关参数
            console=ttyS0,115200n8 console=tty0
            ttyS0 是串口命名,115200 是波特率,无校验,数据位 8 ;同时指定启动信息也要
            输出到第一个终端 tty0
      2、配置 init, 让其初始化串口终端。这里分两种情况: 老版本的 init 和 upstart
            老版本的 init (sysvinit)
            打开 /etc/inittab , 如果出现以下内容,则可以确认是老版本的 init,否则
            请看 4.2
            1:2345:respawn:/sbin/mingetty tty1
            2:2345:respawn:/sbin/mingetty tty2
            3:2345:respawn:/sbin/mingetty tty3
            4:2345:respawn:/sbin/mingetty tty4
            5:2345:respawn:/sbin/mingetty tty5
            6:2345:respawn:/sbin/mingetty tty6
            添加一行初始化串口的内容即可,添加后如下:
            1:2345:respawn:/sbin/mingetty tty1
            2:2345:respawn:/sbin/mingetty tty2
            3:2345:respawn:/sbin/mingetty tty3
            4:2345:respawn:/sbin/mingetty tty4
            5:2345:respawn:/sbin/mingetty tty5
            6:2345:respawn:/sbin/mingetty tty6
            co:2345:respawn:/sbin/agetty ttyS0 115200 vt102
            注意如果系统没有 /sbin/agetty, 则要改成 /sbin/getty 或其它。vt102 是
            常用的 Linux 虚拟终端
    3、赋予串口终端 root 登录权限
          在文件 /etc/securetty 末尾加入如下一行(注意行前面没有空格)
          ttyS0
          加入上面一行后, root 将可以直接通过串口终端登录系统,否则只有普通用户可以
          通过串口终端登录系统
    4、注意
         串口命名(ttyS0 ttyS1 等)一定要和系统识别的一致,不能想当然乱编。
         确认系统有 /sbin/agetty, /sbin/getty 或其他初始化终端的命令,有哪个就用哪个。
         终端波特率设置都要一致,用 115200 则全部都要用 115200. 据我的经验,9600有一
         次就是不行,原因未知。可用的波特率如下
         300/600/1200/2400/4800/9600/19200/38400/57600/115200/230400 等等
         如果确认配置没错, 但就是无法工作, 可以换不同的波特率尝试一下 :)
    5、配置好后,重启系统,用其他 windows 机器的超级终端或者 linux 机器的 minicom 连接即可。
         记得设置好波特率,无校验,数据位 8
         连接时两端都用 RS232 线缆(console 线,购买交换机、路由器都会随机带的那种线缆)即可。
    6、关于 grub
         通过步骤 3 配置的 grub, 只能让部分启动信息输出到串口终端,包括 grub 菜单接口在
         内的另外一部分信息都无法输出到串口终端。要让 grub 完整的支持串口终端,需要重新编译
         grub

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统的控制台定向到串口终端可以通过以下步骤完成。 首先,确保计算机上已经连接了串口终端设备。通常情况下,计算机上会有一个或多个串口接口,可以用来连接串口终端设备,比如串口线或串口转USB线。 接下来,在Linux系统中,打开终端,并以管理员权限运行命令行终端。 然后,通过编辑引导加载程序(Bootloader)的配置文件来配置将控制台定向到串口终端。常见的引导加载程序包括Grub和U-Boot。具体的配置文件位置和名称可能会因不同的Linux发行版和引导加载程序而有所不同,可以查阅相关文档或参考Linux发行版的官方网站来获取具体信息。 在配置文件中,找到关于console(控制台)的设置项。一般来说,设置项的格式为console=ttyX,其中X是串口终端的设备号。如果系统上只有一个串口终端设备,通常是ttyS0;如果有多个串口终端设备,可能会是ttyS1、ttyS2等。将设置项修改为对应的串口设备号即可。 最后,保存修改并重启计算机。接下来,Linux系统的控制台输出就会被重定向到串口终端,可以通过连接的串口终端设备来查看和操作控制台。 需要注意的是,串口终端的波特率(Baud rate)设置需要与Linux系统的配置一致,通常默认为115200bps。如果波特率不一致,可能会导致乱码或无法正常通信。可以在引导加载程序的配置文件中找到设置波特率的项,并进行相应的修改。 总的来说,将Linux系统的控制台定向到串口终端可以通过编辑引导加载程序的配置文件,修改console设置项,并设置波特率来完成。这样可以方便地通过串口终端设备来查看和操作Linux系统的控制台输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值