centos 串口(linux查看串口设备)

各位老铁们好,相信很多人对centos 串口都不是特别的了解,因此呢,今天就来为大家分享下关于centos 串口以及linux查看串口设备的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

LINUX控制台怎么定向到串口终端

利用串口终端作为Linux控制台,可以免去额外的键盘,显示卡和显示器,同时可将Linux主机作为一个任意用途的嵌入式黑匣。那么LINUX控制台怎么定向到串口终端?下面跟着学习啦小编一起来了解一下吧。

LINUX控制台怎么定向到串口终端

目的:台机已经装好Linux,显示器有问题,平时一般都SSH控制,当Linux网络挂的时候,想通过串口来管理。

硬件:台机自带两个串口(上面的是COM1)[under Windows] or ttyS0[under Linux)),笔记本T61p没有串口,买了个USB转串口(具体见下图)。同时需要串口交叉线一根(NULL modem Cable),母对母(公的是针),都是凹口那种。

目标机器:安装的CentOS 5.2 Linux内核2.6.18-92.1.22.el5和2.6.18-92.1.22.el5xen

客户端: Windows XP SP3 IBM OEM.安装USB转串口驱动。

需要把输出定向到串口,一般有下面几处:

BIOS中的设置

GRUB设置

/etc/inittab设置

/etc/securetty设置

BIOS中的设置

BIOS设置的作用我没尝试过,如果是可以连BIOS设置都可以定向到串口,那个强大了。也不知道如何去掉机器需要连键盘的限制。没拿出显示器所以没看我台机的BIOS,不过这个功能一般只有服务器级别的机器有。【注1】台机一般没有串口重定向功能。

GRUB设置

这里的配置是为了把grub菜单定向到串口,这样你就可以在串口操作grub,选择启动项,使用single mode等等。

同时也要给kernel参数加上console选项。

[root@CentOS5~]# cat/boot/grub/menu.lst

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a/boot partition. This means that

# all kernel and initrd paths are relative to/boot/, eg.

# root(hd0,0)

# kernel/vmlinuz-version ro root=/dev/vg00/lv_root

# initrd/initrd-version.img

#boot=/dev/hdb1

serial--unit=0--speed=9600--word=8--parity=no--stop=1

terminal--timeout=10 serial console

default=2

timeout=20

#splashimage=(hd0,0)/grub/splash.xpm.gz=>这些在console下会工作不正常,注释掉。

#hiddenmenu

title CentOS(2.6.18-92.1.22.el5)

root(hd0,0)

kernel/vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/vg00/lv_root rhgb quiet

initrd/initrd-2.6.18-92.1.22.el5.img

title CentOS Serial[ttyS0]- Console(2.6.18-92.1.22.el5)

root(hd0,0)

kernel/vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/vg00/lv_root console=ttyS0,9600 console=tty0

initrd/initrd-2.6.18-92.1.22.el5.img

title CentOS Console- serial[ttyS0](2.6.18-92.1.22.el5) [get more output in serial console]

root(hd0,0)

kernel/vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/vg00/lv_root console=tty0 console=ttyS0,9600

initrd/initrd-2.6.18-92.1.22.el5.img

title CentOS Xen(2.6.18-92.1.22.el5xen)

root(hd0,0)

kernel/xen.gz-2.6.18-92.1.22.el5

module/vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/vg00/lv_root rhgb quiet xencons=off

module/initrd-2.6.18-92.1.22.el5xen.img

title CentOS Xen Serial[ttyS0]- Console(2.6.18-92.1.22.el5xen)

root(hd0,0)

kernel/xen.gz-2.6.18-92.1.22.el5

module/vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/vg00/lv_root xencons=off console=ttyS0,9600 console=tty0

module/initrd-2.6.18-92.1.22.el5xen.img

title CentOS Xen Console- serial[ttyS0](2.6.18-92.1.22.el5xen)

root(hd0,0)

kernel/xen.gz-2.6.18-92.1.22.el5

module/vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/vg00/lv_root xencons=off console=tty0 console=ttyS0,9600

module/initrd-2.6.18-92.1.22.el5xen.img

title Other

rootnoverify(hd0,0)

chainloader+1

后面的console有顺序关系,详见下文【注2】,我常用串口所以console=tty0 console=ttyS0,9600这个顺序的输出信息比较多。

因为我的机器有xen的内核,xen默认情况下会把串口做为xencons,所以这里设置xencons=off.

When multiple consoles are listed output is sent to all consoles and input is taken from the last listed console. The last console is the one Linux uses as the/dev/consoledevice.

/etc/inittab设置

系统系统后,需要在串口上监听请求,所以要有个类似服务器的程序(agetty, mgetty etc)。

/etc/inittab中添加

s0:2345:respawn:/sbin/agetty-L-f/etc/issue.serial 9600 ttyS0 vt100

#s1:2345:respawn:/sbin/agetty-L-f/etc/issue.serial 9600 ttyS1 vt100

#S0:2345:respawn:/sbin/mgetty-r-x 9 ttyS0==> mgetty用来调试比较好,log也丰富。

What is a getty?

A getty is is a program that opens a tty port, prompts for a login name, and runs the/bin/login command. It is normally invoked by init.

所以其他程序就不能再来占用ttyS0了,串口是独占模式的吧。

vt100:

vt100 is the terminal emulation. You can use others, but VT100 is the most common or"standard". Another widely used termial type is VT102.

OK都可以了,可以重启server了。这里如果想测试下串口线,推荐先在Linux启动下mgetty,因为他的debug信息和log比较丰富,适合排错和测试。

#mgetty–r–x 9 ttyS0

Log在/var/log/mgetty*中。

/etc/securetty设置

因为一般我们都是使用root登陆串口来维护,所以需要设置root可以在COM1和COM2登陆。

在/etc/securetty中添加:

ttyS0

ttyS1

Windows客户端连接可以用超级终端或者Putty。

注意启动server的时候,putty就应该去连接串口了,这样才可以看到所有信息。

本来正常情况下,接下去kernel的boot信息应该也会打到串口的。但是没有,确定是Xen内核的关系。

系统启动起来后,过了init,agetty就起来了,这个时候就可以通过串口登陆了。(在/etc/securetty中需要添加ttyS0)

看过“ LINUX控制台怎么定向到串口终端”的人还看了:

CentOS 之小清新minicom使用

在 CentOS系统中,minicom是一个轻量级但功能强大的串口工具,尤其适合调试板卡 ARM SOC时没有网口的情况。让我们一起踏上这趟小清新之旅,了解如何轻松上手并充分利用 minicom。

步骤一:发现并识别串口设备

首先,确保你的 USB转串口设备已连接。通过输入 ls-l/dev/ttyUSB*,你会看到新出现的ttyUSB设备,这就是我们的串口标识。

步骤二:配置串口连接

启动 minicom命令 minicom-s,进入配置界面。按下'A'键,选择对应的 USB设备,然后选择'E'键调整波特率,通常设置为无流控。设置完毕后,按回车键退出配置模式。

设置默认配置并启动

为了方便下次快速连接,记得将刚才的设置保存为默认配置。退出 minicom,只需输入 CTRL+ A X。然后直接运行 minicom,你会按照刚才的默认配置顺利连接到串口。

灵活管理与控制

遇到 minicom被他人占用时,使用 ps-a查找进程号,执行 kill-9强制结束占用进程,轻松解决占用问题。例如,如果进程号为 12345,命令为 kill-9 12345。

告别繁琐,minicom带来的便捷

过去,我们可能需要在一台电脑上通过串口工具远程连接到有板卡的设备,这无疑增加了工作的复杂性。但在 CentOS中,minicom的出现就像一股清风,无需额外的电脑,只需在宿主机上运行,就可高效地进行串口调试。minicom的简洁界面和高效性能,无疑让这个过程变得更加优雅便捷。

怎么强制关闭串口

在Windows系统中,你可以通过以下步骤强制关闭串口:

1.点击任务栏的电源图标,然后选择"更多电源选项"。

2.在弹出的窗口中,选择"选择电源按钮的功能"。

3.在"选择电源按钮的功能"窗口中,点击"更改当前不可用的设置"。

4.在下拉菜单中,取消选择"启用快速启动",然后点击"保存修改"。

注意:这将会使电脑进入睡眠模式,而不是关机。所以在你完成你的操作后,记得重新启动电脑。

在Linux系统中,你可以使用以下命令来强制关闭串口:

在Red Hat和CentOS系统中,你可以使用以下命令:

```bash

sudo shutdown-h now

```

在Debian和Ubuntu系统中,你可以使用以下命令:

```bash

sudo reboot

```

在macOS系统中,你可以按住`Control`键并点击电源按钮,然后选择"重新启动"。

请注意,强制关闭串口可能会对正在运行的程序造成影响,因此在执行这个操作之前,你应该确保你的应用程序已经完成了所有的任务。

阅读剩余
THE END