歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 為Linux系統配置serial console

為Linux系統配置serial console

日期:2017/2/28 16:10:16   编辑:Linux教程

1. 准備工作

1.1. 關於serial console

Console是一個輸出系統管理信息的文本輸出設備,這些信息來自於內核,系統啟動和系統用戶,serial console就是串口作為輸出終端設備,是這些信息可以通過串口在遠程的終端上顯示。

配置一個serial console大致包括五項內容:

? 配置BIOS使用serial console(可選);

? 配置Bootloader使用serial console(可選);

? 配置內核使用serial console

? 在系統啟動時運行一個支持serial console登錄的程序

? 一些其他系統配置,使這些功能支持serial console,或者防止它們擾亂serial console

1.2. 串口線

使用RS232方式的DB9串口線,信號連接如下:

Signal ground ------------------ Signal ground

Receive data ------------------ Transmit data

Transmit data ------------------ Receive data

Ready to send ------------------ Clear to send

Clear to send ------------------ Ready to send

ata terminal ready -------------+--- Data carrier detect

|

+--- Data set ready

Data carrier detect ----+---------------- Data terminal ready

|

Data set ready -----+

1.3. 串口參數的設置

選擇的串口是COM1,設備名為ttyS0,波特率為9600,8位數據位,無奇偶校驗,1位停止位。

2. 配置BIOS

有些BIOS支持serial console,可以在serial console顯示BIOS啟動信息,這需要在BIOS中配置。

3. 配置Bootloader

LILO、GRUB和SYSLINUX都支持serial console。

3.1. GRUB的配置

GRUB的配置文件是/boot/grub目錄下的grub.conf,在配置文件的開始處添加:

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

terminal --timeout=10 serial console

Serial命令用於設置串口的參數:

--unit:串口設備,0就表示ttyS0,如果是ttyS1就要設為1;

--speed:波特率;

--work:數據位;

--parity:奇偶校驗位;

--stop:停止位。

Terminal命令用於設置終端的類型

--timeout:等待時間,單位是秒

4. 配置Kernel

Kernel的console類型可以通過console參數選擇,console配置的語法如下:

console=ttyS<serial_port>[,<mode>]
console=tty<virtual_terminal>
console=lp<parallel_port>
console=ttyUSB[<usb_port>[,<mode>]

其中的ttyS就是串口設備,mode表示串口的參數;tty表示虛擬終端。

每個console類型指南設置一個設備,例如,可以設置為console=tty0 console=lp0 console=ttyS0,但是設為 console=ttyS0 console=ttyS1就是錯誤的。

如果沒有設置console參數,內核默認使用虛擬終端,即tty0,使用組合鍵Ctrl+Alt+F1可以切換到tty0。如果你的電腦有顯示設備,最好將它設為console,即console=tty0。

根據我的設備情況可以設置為:

console=tty0 console=ttyS0,9600n8

Console參數需要用bootloader在內核啟動時傳遞給內核,www.linuxidc.com對於GRUB,需要修改grub.conf文件,將參數添加到kernel命令後面即可,例如;

  1. title Red Hat Linux (2.4.9-21)
  2. root (hd0,0)
  3. kernel /vmlinuz-2.4.9-21 ro root=/dev/hda6 console=tty0 console=ttyS0,9600n8
  4. initrd /initrd-2.4.9-21.img

5. 配置getty

getty會監控和等待一個連接,然後配置串口連接,發送/etc/issue的內容,並且要求輸入登錄名和密碼,然後開始登錄,如果登錄失敗,getty會返回等待狀態。

getty的另一項工作是設置TERM變量的值,以指定所連接的終端的類型。

常用的getty有四個版本:

getty:傳統的getty,需要配置文件/etc/gettydefs

agetty:無需配置文件,直接通過命令行傳遞參數

mgetty:支持modem的getty,需要配置文件

minigetty:精簡版的getty,不支持serial console

RedHat9自帶agetty和mgetty,在/etc/inittab文件中默認使用mgetty,在該文件中添加:

  1. co:2345:respawn:/sbin/agetty -h -t 60 ttyS0 9600 vt102

-t 60 : 60秒內無操作,agetty將會返回等待狀態。

-h : 使用硬件流控制(CTS/RTS握手)

Copyright © Linux教程網 All Rights Reserved