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命令後面即可,例如;
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,在該文件中添加:
-t 60 : 60秒內無操作,agetty將會返回等待狀態。
-h : 使用硬件流控制(CTS/RTS握手)