將LINUX的控制檯定向到串列埠終端(轉)
將LINUX的控制檯定向到串列埠終端(轉)[@more@]利用串列埠終端作為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: 的提示符。你可以登入進系統,並能象在實際的控制檯上或從遠端Telnet登入一樣進行工作。
下面簡單介紹一下如何終端設定成控制檯,主要涉及核心資訊、啟動指令碼資訊和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 重啟動系統。
首先,準備好一根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: 的提示符。你可以登入進系統,並能象在實際的控制檯上或從遠端Telnet登入一樣進行工作。
下面簡單介紹一下如何終端設定成控制檯,主要涉及核心資訊、啟動指令碼資訊和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 重啟動系統。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950265/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你知道 Linux 中的主機、控制檯和終端的起源麼?Linux
- Windows 上使用 PowerShell 設定防火牆規則和埠轉發; Windows 上配置埠轉發,將 3389 埠的流量重定向到自定義埠;Windows防火牆
- Mybatis 中將 SQL 查詢記錄到控制檯MyBatisSQL
- linux 串列埠通訊Linux串列埠
- Linux串列埠程式設計Linux串列埠程式設計
- Linux下串列埠監視Linux串列埠
- 在Linux中,如何將本地 80 埠的請求轉發到 8080 埠?當前主機 IP 為10.0.0.104。Linux
- 串列埠轉發閘道器實現工業裝置資料採集和遠端控制串列埠
- AMD R2000 Bilby 單板 Inside BIOS 串列埠重定向的使用IDEiOS串列埠
- 如何將終端輸出的資訊重定向寫入檔案中呢?
- Identity Server 4 從入門到落地(七)—— 控制檯客戶端IDEServer客戶端
- UART串列埠及Linux實現串列埠Linux
- linux串列埠命令列除錯Linux串列埠命令列除錯
- 微控制器學習(七)串列埠串列埠
- 彙編+qemu玩轉控制檯列印
- 序列控制檯如何在 Linux 上工作?Linux
- Linux 終端控制元件:實時時刻表Linux控制元件
- Linux終端的概念Linux
- 如何修改Linux的遠端埠Linux
- nodeMCU wifi透傳到串列埠 支援hexWiFi串列埠
- 51微控制器串列埠交通燈protues模擬交通燈串列埠控制系統交通燈管制東西南北管制串列埠
- linux 將程式終端輸出儲存到檔案中且保留終端輸出Linux
- linux-把終端輸出記錄到文字Linux
- Nginx怎樣將HTTP重定向到HTTPSNginxHTTP
- linux下使用tomcat檢視控制檯資訊LinuxTomcat
- Linux-Windows 埠轉發LinuxWindows
- zookeeper控制檯
- 【linux學習--工具篇】串列埠除錯工具Linux串列埠除錯
- 串列埠blog串列埠
- 串列埠UART串列埠
- 在Linux中,如何將本地80埠的請求轉發到8080埠,當前主機IP為192.168.16.1,其中本地網路卡eth0。Linux
- QT實現串列埠助手中串列埠名的實時更新QT串列埠
- JAVA控制檯下:控制檯商城購物系統Java
- 帶內串列埠 在串列埠中輸入命令串列埠
- 如何在linux中傳送訊息給別的控制檯Linux
- Linux埠轉發的幾種常用方法Linux
- 遊戲的江湖:從終端到雲端遊戲
- 基於Atmega8微控制器的串列埠收發程式串列埠
- 玩轉Mac終端:Mac 終端常用知識Mac