linux 控制终端卡,配置通过串口控制linux操作系统的终端
开始之前,请确认机器有串口(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操作系统的终端相关推荐
- 小车舵机控制linux软件,在Linux(Ubuntu)上使用串口控制ROBOTIS Dynamxiel舵机
声明:此文档版权归属于北京小芽科技,可以转载,但要声明出处(北京小芽科技博客xiaoyatec.com) 硬件配置: 1.USB2Dynamixel串口模块 2.SMPS2Dynamixel电源模块 ...
- linux进入raid卡配置,Linux上Raid卡的简单配置与使用
使用 RAID 可以提高服务器的性能.不同 RAID 的级别,性能会有所不同.它通过容错和高可用性来保存我们的数据. 下面记录在linux上配置和使用raid卡的过程. 资源 Linux主机 Raid ...
- linux进程挂掉 自动启动,配置systemd以在Linux崩溃后自动启动服务
本文介绍配置systemd以在Linux崩溃后自动启动服务的方法.进程在Linux系统上崩溃的原因有很多,你可以调查并解决问题,但可能需要一段时间.但是你可以立即将服务恢复到联机状态的一件事是在服务中 ...
- Proteus基于51单片机通过PWM脉冲调制控制电机转速_按键与串口控制转速_电机转速可测
文章目录 原理图 驱动电路 MOTOR-ENCODER详解 串口通信 电机测速原理 PWM 软件部分 成果 临近期末,学校的单片机课程需要做课程设计,主要内容是基于51单片机的可调速电机,具体要求如下 ...
- c语言stm32串口控制单片机,实用STM32的串口控制平台的实现
假设我要编写一个自己的指令脚本, 来读取MCU的关键信息,关键字为mcu, 文件命名为shell_mcu.c: 当输入"mcu rd 0"时显示MCU的FLASH大小,输入&quo ...
- 嵌入式linux中的端口配置,GPIO接口 - 嵌入式Linux学习笔记_Linux编程_Linux公社-Linux系统门户网站...
一.GPIO介绍 GPIO意为通用输入输出端口,简单说就是一些引脚,通过它们输出高低电平或者通过它们读取引脚高低电平状态 S3C2440有130个I/O端口,分为A-J共9组:GPA.GPB....G ...
- linux查看刷卡pos机_pos机linux下的对应程序
#include /*标准输入输出定义*/ #include #include /*标准函数库定义*/ #include /*Unix标准函数定义*/ #include /**/ #include / ...
- linux开发板 wifi配置,iTOP-4412开发板Linux系统下使用wifi模块配置
精英版在 linux 下使用 wifi,需要进行下面的配置: 首先用户在拿到光盘资料以后查看下光盘里面的"linux"->"root_xxxxxxxx.tar.gz ...
- 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 ...
最新文章
- Java并发编程:线程封闭和ThreadLocal详解
- 请问一个跨进程调用的问题?
- linux批量es数据,Elasticsearch批量插入数据
- Android Screen Monitor抓取模拟器与真机界面
- 安全开发 | 如何让Django框架中的CSRF_Token的值每次请求都不一样
- 查询各个科目成绩前三的记录
- java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
- 干货 | 一文轻松了解NLP所有相关任务简介!
- IOI2019团体总分前十排名:美国队夺魁,中国队第三,亚洲占六席
- UT斯达康互动电视UI界面设计大赛作品 求拍砖
- 不想从零开始做分析?Smartbi Eagle应用商店,一招帮你搞定!
- ERROR: librtmp not found 解决方案
- 报刊资料整理:云安全(cloud security)
- sublime中文乱码问题
- colorbox 自适应 高度
- Kubernetes 学习总结(27)—— Kubernetes 安装 Redis 集群的两个方案
- 详解硬件设计中电容电感磁珠
- 纸壳CMS体验升级,快速创建页面,直接在页面中修改内容
- BFC是什么?简单易懂,个人总结,一篇文章让你理解掌握BFC
- 大学专业分类及专业代码爬取
热门文章
- python url中传递中文_Python编程:URL网址链接中的中文编码与解码
- oci连接mysql_使用 OCILIB 连接并操作 Oracle 数据库
- C++预处理指令#define,#if,#endif等
- C语言中#define中的一些特殊用法
- Registry注册机制
- BaseActivity与BaseFragment的封装
- JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6
- Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector
- 大学计算机导论报告,大学计算机导论论文参考.docx
- Ios 12 linux,苹果发布iOS 12.4.1,以修补越狱漏洞