歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 將LINUX的控制台定向到串口終端的方法

將LINUX的控制台定向到串口終端的方法

日期:2017/3/6 15:51:19   编辑:關於Unix
利用串口終端作為 Linux 控制台,可以免去額外的鍵盤,顯示卡和顯示器,同時可將Linux主機作為一個任意用途的 嵌入式 黑匣。 將串口終端連接到計算機的串口上並不困難,可以參考Linux的HOWTO文檔和以及inittab和agetty的幫助信息。這裡扼要地說一下。 首先,
  利用串口終端作為Linux控制台,可以免去額外的鍵盤,顯示卡和顯示器,同時可將Linux主機作為一個任意用途的嵌入式黑匣。 將串口終端連接到計算機的串口上並不困難,可以參考Linux的HOWTO文檔和以及inittab和agetty的幫助信息。這裡扼要地說一下。
  首先,准備好一根null modem 電纜.
  其次,在文件/etc/inittab 增加下面一行。[注:如果你不采用 agetty程序,采用其他的程序如like getty_ps ,應用正確的命令語法]
  ID:RUNLEVELS:respawn:/sbin/agetty -L SPEED TTY TERM
  這裡: ID =兩字母的標識符,如s1或s2。
  RUNLEVELS = 終端激活的運行級別
  SPEED = 串口端口速率
  TTY = 串口的設備名
  TERM = TERM環境變量
  范例如下:
  s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
  表示串口 /dev/ttyS1 (COM2 )速率為 9600 bps,終端模式為vt100。
  最後,重新啟動機器。
  如正確地按照上述三步進行,則就可以在終端屏幕上出現Login: 的提示符。你可以登錄進系統,並能象在實際的控制台上或從遠程Te.net登錄一樣進行工作。
  下面簡單介紹一下如何終端設置成控制台,主要涉及內核信息、啟動腳本信息和LILO信息。
  
  一、內核信息
  系統在啟動時顯示的信息總是輸出到主控制台(tty1)。打開機器後,你只有等待Login: 出現在終端屏幕上,這意味著所有啟動信息都無法獲悉。你只有登錄後用dmesg命令查看,但通常是想在login shell起來前看到這些信息。
  還有其他信息出現在控制台上:/etc/rc.d目錄下腳本命令執行時,啟動和終止機器時運行的腳本命令等輸出的信息。如果信息沒有出現在屏幕上,怎樣真正地知道"系統已終止"呢?
  你必須修改源碼/usr/src/linux/drivers/char/console.c[必須已安裝了內核源碼],這不是一個復雜得內核修改,按照下面三步進行:
  首先,在程序前定義CONFIG_SERIAL_ECHO
  #define CONFIG_SERIAL_ECHO
  其次,修改串口地址 (僅當你使用得端口不同於默認定義的才有必要修改)。
  #define SERIAL_ECHO_PORT 0x3f8 /* COM1 */
  或者:
  #define SERIAL_ECHO_PORT 0x2f8 /* COM2 */
  第三,重新編譯內核[請參考相應的手冊],啟動機器。在系統檢測硬件設備時,你應該在終端屏幕上看到信息。
  請注意 :console.c 補丁除了Alpha平台外,對所有的Linux 端口都是必要的。在Alpha平台上它是在運行make config ,選擇下面的選項完成的:
  Echo console messages on /dev/ttyS1
  
  二、/etc/rc.d/rc.*啟動腳本信息
  為了將這些信息顯示在終端上,可以將這些文件中含有echo命令的行追加" > TTY "。 TTY 是終端的串口(與/etc/inittab 中串口終端行的一樣)。
  
  三、 LILO 配置
  如果想選擇兩個內核之一啟動,你必須修改LILO 配置文件,/etc/lilo.conf。 配置LILO,使提示信息出現在終端上,可以參考/usr/doc/lilo/README 文件 (查看SERIAL選項)。 這裡給出兩步正確設置的步驟:
  首先,編輯/etc/lilo.conf file ,在BOOT選項行後,插入一個SERIAL選項 。
  serial=SERIAL_LINE,SPEED PARITY BITS
  
    這裡:
    SERIAL_LINE = 0 (串口1)
            1 (串口2)
           2 (串口3)
           3 (串口4)
    SPEED = 串口速度
    PARITY = n (=無)
         o (= 奇校驗)
         e (= 偶校驗)
    BITS = 數據位(8 or 7)
  請注意:在SPEED, PARITY 和BITS參數間沒有空格。這些參數必須與在terminal 設置時的參數一樣。下面是LILO 配置的示例:
    serial=1,9600n8
  這一行表示COM2 ,速率9600bps,無校驗位,數據位8。
  
  第二,運行lilo 命令,刷新系統配置。
  
  利用SERIAL 選項, LILO 在啟動默認內核前,設置了2秒的延遲 。在這期間,你可以 在終端上按"SHIFT"鍵發送一個終止信號,終止boot進程,並取得LILO提示信息。
  
  完成上述配置後,你的終端就可以作為一個控制台了。有一件事不能做的是用CTRL-ALT-DEL 重啟動系統。

Copyright © Linux教程網 All Rights Reserved