close

最初發表於:http://renyongjie668.blog.163.com/blog/static/160053120117140363824/

http://www.howtoforge.com/setting_up_a_serial_console 

http://insanum.com/blog/configuring-a-solaris-serial-console.html

http://linux.vbird.org/linux_basic/0510osloader.php#startup_intro

http://bbs.chinaunix.net/thread-2219025-1-1.html

http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/configure-kernel.html

http://www.novell.com/support/kb/doc.php?id=3456486

昨天週六專門跑到公司去好好整理了串口相關的配置。算是基本搞清楚了,所以再整理並記錄一下。記得以前寫過一點RHEL6中的串口配置,RHEL6串口配置

BIOS/GRUB/Kernel/XEN輸出重定向到串口的配置:

  • BIOS輸出重定向到串口
    這一功能需要主板支援,在BIOS中設置,比如我的設置為:

Server ManagementConsole RedirectionConsole Redirection設置為”Serial Port A”

  • GRUB輸出重定向到串口(Edit /boot/grub/grub.conf)

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

terminal --timeout=5 console serial

grub引導過程中,會將輸出同時發送到終端螢幕和串口. grub引導過程中將在終端和連接到串口的超級終端上提示Press any key to continue,每秒鐘提示一次,5,可修改menu.lstterminal行中的--timeout=10改變提示次數,在這一段時間內,可以在終端的鍵盤,或者連接到串口的超級終端中按任意鍵進入grub選擇功能表.如果5秒內沒有在終端和連接串口的超級終端上按任意鍵,grub的選擇功能表將出現在console,如果希望默認情況下, grub選擇功能表出現在串口上,則可修改grub.confconsole serial修改為serial console.

  • kernel輸出資訊輸出到串口(編輯/boot/grub/grub.conf有的為menu.lst)

增加kernel引導參數如下:

kernel  /boot/vmlinuz-2.6.32-29 root=/dev/hda1 ro console=ttyS0,115200n8 console=tty0

kernel會將輸出資訊同時輸出到串口(ttyS0COM1)和終端tty0

其中,“ttyS0”表示串口使用COM1“115200”表示串列傳輸速率為115200bps“n”表示無校驗位;“8”表示有8位元資料位元。

  • 允許從串口登陸linux (如下配置可能會因發行版不同而有所區別)

確保/etc/securetty檔中有ttyS0,這樣的目的是允許rootttyS0上登陸

修改/etc/inittab,增加如下內容:

7:2345:respawn:/sbin/agetty -L 115200 ttyS0h

(當然得確保/sbin/agetty是存在的,另外,還有人推薦了mgetty,說它debug資訊和log比較豐富,適合排錯和測試。)

 

另外,XEN的串口配置稍微有點兒不同,附上我常用的一個配置吧:

default=0

timeout=5

splashimage=(hd0,2)/boot/grub/splash.xpm.gz

hiddenmenu

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

terminal --timeout=10 serial console

#0==========================================================================

title Xen-unstable (ia32e)

       root (hd0,0)

       kernel (hd0,0)/boot/xen.gz dom0_mem=1024M iommu=1,sharept loglvl=all guest_loglvl=all unrestricted_guest=1 console=com1 sync_console msi=1 conring_size=4M xsave hap_1gb=1

       module (hd0,0)/boot/vmlinuz-2.6-xen ro root=/dev/sda1 console=hvc0 earlyprintk=xen ignore_loglevel pci=assign-busses

       module (hd0,0)/boot/initrd-2.6-xen.img

其他

戶可以在內核命令行中同時設定多個終端,這樣輸出將會在所有的終端上顯示,而當用戶調用open()打開/dev/console時,最後一個終端將會返回作為當前值。例如:

console=ttyS0, 9600 console=tty0

定義了2個終端,而調用open()打開/dev/console時,將使用虛擬終端tty0。但是內核消息會在tty0 VGA虛擬終端和串口ttyS0上同時顯示。

The Linux kernel is configured to select the console by passing it the console parameter. The console parameter can be given repeatedly, but the parameter can only be given once for each console technology. So console=tty0 console=lp0 console=ttyS0 is acceptable but console=ttyS0 console=ttyS1 will not work. 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/console device

參考資料:

http://blog.csdn.net/defeattroy/article/details/5257323

http://wiki.xensource.com/xenwiki/XenSerialConsole

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 小宇哥 的頭像
    小宇哥

    小宇哥的CS學習筆記

    小宇哥 發表在 痞客邦 留言(0) 人氣()