开始之前,请确认机器有串口(com口, RS232接口),如果没有,那就没有办法达到通过串口控制机器的目的了。当然,也可以额外给机器安装一个带串口的 PCI 模块,然后想办法将模块驱动起来(内核默认能驱动就最好了),这样机器就有可用的串口了。

串口终端特别适合用在不方便接显示器和键盘鼠标的 linux 机器上,特别是用在用作

交换机、路由器等用途的 linux 系统上。配置好串口终端后,可以拆掉系统的显示卡,用RS232 线缆连接受控机器(配置好串口终端的 Linux 机器)和控制机器,然后在控制机器上通过超级终端、minicom 等就可以操作受控机器了。

下面的步骤讲述如何配置一台串口终端控制的 Linux 机器,即受控机器。

1、首先找到计算机的串口命名

执行命令:

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

ttyS0 便是串口命名,如果有多个串口,还会有 ttyS1 等等

2、检查是使用 agetty 还是 getty 命令

有的系统没有 getty 命令, 那初始化虚拟终端时就要使用 agetty 命令,

最好使用绝对路径 /sbin/getty 或者 /sbin/agetty

3、配置 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

4、配置 init, 让其初始化串口终端。这里分两种情况: 老版本的 init 和 upstart

4.1、老版本的 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 虚拟终端

4.2、新的 upstart。ubuntu 使用 upstart 替代了 sysvinit,并且其他的发行版也有

采用 upstart 的(fedora 9 和之后的版本)

打开 /etc/inittab, 如果没有出现 4.1 中的内容,则说明系统使用的是 upstart

进入 /etc/event.d/ 目录, 创建文件 /etc/event.d/ttyS0 , 并加入以下内容:

######################################################################

# ttyS0 - getty

#

# This service maintains a getty on ttyS0 from the point the system is

# started until it is shut down again.

start on runlevel 2

start on runlevel 3

start on runlevel 4

start on runlevel 5

stop on runlevel 0

stop on runlevel 1

stop on runlevel 6

respawn

exec /sbin/agetty -L 115200 ttyS0 vt102

######################################################################

保存退出即可

5、赋予串口终端 root 登录权限

在文件 /etc/securetty 末尾加入如下一行(注意行前面没有空格)

ttyS0

加入上面一行后, root 将可以直接通过串口终端登录系统,否则只有普通用户可以

通过串口终端登录系统

6、注意

串口命名(ttyS0 ttyS1 等)一定要和系统识别的一致,不能想当然乱编。

确认系统有 /sbin/agetty, /sbin/getty 或其他初始化终端的命令,有哪个就用哪个。

终端波特率设置都要一致,用 115200 则全部都要用 115200. 据我的经验,9600有一

次就是不行,原因未知。可用的波特率如下

300/600/1200/2400/4800/9600/19200/38400/57600/115200/230400 等等

如果确认配置没错, 但就是无法工作, 可以换不同的波特率尝试一下 :)

7、配置好后,重启系统,用其他 windows 机器的超级终端或者 linux 机器的 minicom 连接即可。

记得设置好波特率,无校验,数据位 8

连接时两端都用 RS232 线缆(console 线,购买交换机、路由器都会随机带的那种线缆)即可。 8、关于 grub

通过步骤 3 配置的 grub, 只能让部分启动信息输出到串口终端,包括 grub 菜单接口在

内的另外一部分信息都无法输出到串口终端。要让 grub 完整的支持串口终端,需要重新编译

grub, 相关内容请参照完整的 grub 文档:

linux自带终端访问com口,配置实现通过串口(com 口、RS232 接口)终端控制 Linux 系统...相关推荐

  1. linux svn 配置文件路径,linux下svn目录访问权限的配置

    当svnadmin create /home/svn/yourproject创建仓库后,应该在仓库目录下的config目录有3个文件--authz.passwd.svnserve.conf. 下面对3 ...

  2. 局域网服务器linux访问不了网,linux局域网不能相互访问

    1.关闭防火墙 /etc/init.d/iptable stop 2.关闭selinux 1.临时禁用SELinux: root@server# setenforce 0 这样重启服务器之后,还是会启 ...

  3. virtualbox虚拟机和主机不在同一网段,虚拟机访问互联网网络配置

    本文转载自: https://baijiahao.baidu.com/s?id=1637034239523851712&wfr=spider&for=pc 用virtual box在w ...

  4. 华为交换机关闭网口_华为交换机监控口配置命令图文教程

    .监控口简介 监控口是位于设备上用于监控机柜门.设备电源.电池电量和空调电源等设备的接口. 在某些应用场景中,如交换机部署在接入侧作为楼道交换机实现宽带用户接入,因为楼道应用环境的特殊性,交换机需要安 ...

  5. Android Linux自带iptables配置IP访问规则

    利用Linux自带iptables配置IP访问规则,即可做到防火墙效果 初始化防火墙Chain规则 禁止指定app访问数据网络 禁止指定app访问wifi 转载于:https://www.cnblog ...

  6. linux 控制终端卡,配置通过串口控制linux操作系统的终端

    开始之前,请确认机器有串口(com口, RS232接口),如果没有,那就没有办法达到通过串口控制机器的目的了.当然,也可以额外给机器安装一个带串口的 PCI 模块,然后想办法将模块驱动起来(内核默认能 ...

  7. linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效

    博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 6  文章- 2  评论- 2 < ...

  8. linux 下使用 curl 访问带多参数,GET掉参数解决方案

    linux 下使用 curl 访问带多参数,GET掉参数解决方案 参考文章: (1)linux 下使用 curl 访问带多参数,GET掉参数解决方案 (2)https://www.cnblogs.co ...

  9. Linux 终端访问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

最新文章

  1. iOS 总结遇到的各种坑儿
  2. PHP 将二叉查找树转换为双向链表,要求不能创建新节点,只能调节节点指针
  3. Android 重新编译资源文件
  4. R400换XP 所有驱动程序安装一览表
  5. docker下MySQL修改配置并重启生效:表名不区分大小写
  6. 【Python位运算】——左移操作(<<)右移操作>>
  7. linux C 基于链表链的定时器
  8. linux修改python版本修改哪个配置文件_linux安装python修改默认python版本方法
  9. 成绩查询数据结构c语言,学生成绩管理系统(数据结构c语言版源代码)09169.pdf
  10. 运行jar包提示找不到.properties文件的问题
  11. netcore codefirst生成数据库命令
  12. 易语言怎么给手机发短信,对接验证码短信接口DEMO示例
  13. 在RStudio中调用python包
  14. 解锁pdf文件,删除pdf密码
  15. 2022R1快开门式压力容器操作考试模拟100题模拟考试平台操作
  16. 详解网站WEB日志格式
  17. MySql:基本SQL
  18. 程序员的工资到底花到哪里去了?
  19. 刽子手游戏 C语言实现
  20. Android NE问题分析方法介绍

热门文章

  1. 双非本科cpp,无竞赛无国奖-逆袭上岸腾讯、字节、百度等大厂
  2. linux 服务器压力 查看,服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能...
  3. 7-15 滴滴滴,干净又卫生 (20 分)
  4. 拒绝Softonic弹框
  5. linux inode大小,Linux inode详解
  6. innerHTML的属性
  7. 飞腾CPU体系结构之字节序
  8. Docker可视化工具:Portainer可视化面板安装
  9. 每10秒执行定时任务/每5分钟执行一次(附crontab的常用的命令)
  10. Oracle数据库密码过期,将密码设置永久有效