开始之前,请确认机器有串口(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 控制终端卡,配置通过串口控制linux操作系统的终端相关推荐

  1. 小车舵机控制linux软件,在Linux(Ubuntu)上使用串口控制ROBOTIS Dynamxiel舵机

    声明:此文档版权归属于北京小芽科技,可以转载,但要声明出处(北京小芽科技博客xiaoyatec.com) 硬件配置: 1.USB2Dynamixel串口模块 2.SMPS2Dynamixel电源模块 ...

  2. linux进入raid卡配置,Linux上Raid卡的简单配置与使用

    使用 RAID 可以提高服务器的性能.不同 RAID 的级别,性能会有所不同.它通过容错和高可用性来保存我们的数据. 下面记录在linux上配置和使用raid卡的过程. 资源 Linux主机 Raid ...

  3. linux进程挂掉 自动启动,配置systemd以在Linux崩溃后自动启动服务

    本文介绍配置systemd以在Linux崩溃后自动启动服务的方法.进程在Linux系统上崩溃的原因有很多,你可以调查并解决问题,但可能需要一段时间.但是你可以立即将服务恢复到联机状态的一件事是在服务中 ...

  4. Proteus基于51单片机通过PWM脉冲调制控制电机转速_按键与串口控制转速_电机转速可测

    文章目录 原理图 驱动电路 MOTOR-ENCODER详解 串口通信 电机测速原理 PWM 软件部分 成果 临近期末,学校的单片机课程需要做课程设计,主要内容是基于51单片机的可调速电机,具体要求如下 ...

  5. c语言stm32串口控制单片机,实用STM32的串口控制平台的实现

    假设我要编写一个自己的指令脚本, 来读取MCU的关键信息,关键字为mcu, 文件命名为shell_mcu.c: 当输入"mcu rd 0"时显示MCU的FLASH大小,输入&quo ...

  6. 嵌入式linux中的端口配置,GPIO接口 - 嵌入式Linux学习笔记_Linux编程_Linux公社-Linux系统门户网站...

    一.GPIO介绍 GPIO意为通用输入输出端口,简单说就是一些引脚,通过它们输出高低电平或者通过它们读取引脚高低电平状态 S3C2440有130个I/O端口,分为A-J共9组:GPA.GPB....G ...

  7. linux查看刷卡pos机_pos机linux下的对应程序

    #include /*标准输入输出定义*/ #include #include /*标准函数库定义*/ #include /*Unix标准函数定义*/ #include /**/ #include / ...

  8. linux开发板 wifi配置,iTOP-4412开发板Linux系统下使用wifi模块配置

    精英版在 linux 下使用 wifi,需要进行下面的配置: 首先用户在拿到光盘资料以后查看下光盘里面的"linux"->"root_xxxxxxxx.tar.gz ...

  9. linux pxe服务器的配置,pxe http安装linux 配置

    1. 需要有tftp和dhcp服务器 没有就安装: # rpm -ivh tftp-server-0.39-0.EL3.1.c0.i386.rpm # rpm -ivh dhcp-3.0.1-10_E ...

最新文章

  1. Java并发编程:线程封闭和ThreadLocal详解
  2. 请问一个跨进程调用的问题?
  3. linux批量es数据,Elasticsearch批量插入数据
  4. Android Screen Monitor抓取模拟器与真机界面
  5. 安全开发 | 如何让Django框架中的CSRF_Token的值每次请求都不一样
  6. 查询各个科目成绩前三的记录
  7. java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
  8. 干货 | 一文轻松了解NLP所有相关任务简介!
  9. IOI2019团体总分前十排名:美国队夺魁,中国队第三,亚洲占六席
  10. UT斯达康互动电视UI界面设计大赛作品 求拍砖
  11. 不想从零开始做分析?Smartbi Eagle应用商店,一招帮你搞定!
  12. ERROR: librtmp not found 解决方案
  13. 报刊资料整理:云安全(cloud security)
  14. sublime中文乱码问题
  15. colorbox 自适应 高度
  16. Kubernetes 学习总结(27)—— Kubernetes 安装 Redis 集群的两个方案
  17. 详解硬件设计中电容电感磁珠
  18. 纸壳CMS体验升级,快速创建页面,直接在页面中修改内容
  19. BFC是什么?简单易懂,个人总结,一篇文章让你理解掌握BFC
  20. 大学专业分类及专业代码爬取

热门文章

  1. python url中传递中文_Python编程:URL网址链接中的中文编码与解码
  2. oci连接mysql_使用 OCILIB 连接并操作 Oracle 数据库
  3. C++预处理指令#define,#if,#endif等
  4. C语言中#define中的一些特殊用法
  5. Registry注册机制
  6. BaseActivity与BaseFragment的封装
  7. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6
  8. Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector
  9. 大学计算机导论报告,大学计算机导论论文参考.docx
  10. Ios 12 linux,苹果发布iOS 12.4.1,以修补越狱漏洞