中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > Linux > Linux综合
Setup Serial Console with 'GRUB' bootloader
作者:未知 时间:2005-09-13 22:06 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:Setup Serial Console with 'GRUB' bootloader
Last Updated: March/07/2002
Errors/Comments: rajeev@rajeevnet.com

Setup Serial Console with 'GRUB' bootloader:

  •  Redhat 7.2 onwards and other Linux OS  give grub (GRand Unified Boot Loader) as default boot loader. Follow steps below to setup serial console. Most likely grub is compiled with Serial console support for your distribution, if not compile with Serial port support.
  • Example: /etc/grub.conf  with Serial port support.
====================================================================
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,2)
#          kernel /boot/vmlinuz-version ro root=/dev/sda3
#          initrd /boot/initrd-version.img
#boot=/dev/sda
#
#default image is First(0) image from title list
default=0
#
#This is grub Menu timeout(sec)
timeout=30
#
###############################################
## Serial/Console setup
###############################################
# Avoid splashing any GUI!!
# splashimage=(hd0,2)/boot/grub/splash.xpm.gz
#
# Setup serial (COM1) here with baudrate 9600
# use --unit=1 (for COM2) and so on
serial --unit=0 --speed=9600
#
# Now setup terminal as both Serial Line(/dev/ttyS0) and
# Monitor Console(/dev/tty0) depending upon where you press key
# with in timeout (15 sec) period. Otherwise first entry
# (console(Monitor)=>tty0) is selected here.
terminal --timeout=15  console serial


# In images section below, we are selecting two consoles
# (Serial(ttyS0) and Monitor(tty0) here. But in case of single user mode,
# keyboard entry is allowed from last selected console in 'kernel' line below.
# So we need to setup two different images so that we should be able to
# login in single usermode from any console depending upon selection at boot time.
# But in both cases  kernel message (not OS message) will go to both consoles.
#
#Allow Single user mode from Console(Monitor)
title Red Hat Linux (2.4.17) !!! MONITOR !!!
        root (hd0,2)
        kernel /boot/vmlinuz-2.4.17 ro root=/dev/sda3 console=ttyS0 console=tty0

#Allow Single user mode from Serial Port(ttyS0).
title Red Hat Linux (2.4.17) !!! SERIAL CONSOLE !!!
        root (hd0,2)
        kernel /boot/vmlinuz-2.4.17 ro root=/dev/sda3 console=tty0 console=ttyS0

#Booting Windows through Grub.
title Win2000 Professional
     root        (hd0,1)
     makeactive
     chainloader +1
     # For loading DOS if Windows NT is installed
     # chainload /bootsect.dos

============================================================


  • Avoid any splash image, so comment out splash line first. You need kermit  or some other serial program (Hyperterminal etc)  which supports vt100 emulation. If you are using GUI (X11), 'xterm' do support such. You other GUI terminals  may not support true vt100. You will need 'Null Modem' cable to connect serial ports of computers.
  •  Define Serial port first:
            serial --unit=0 --speed=9600
This will only define serial port definition but won't do anything useful yet. Above is defining Serial port as (COM1), for COM2 specify --unit=1 and so on. After this define terminal for throwing display.
            terminal --timeout=15  console serial
 Here we are defining 15 seconds timeout and both console(Monitor or tty0) and serial port (ttyS0 or COM1) as display. For 15 seconds it will allow  to select either Monitor or Serial port selection depending upon where you press key. Otherwise after 15 seconds it will select first entry ('console' ) in above example as primary display device and show grub menu of OS selection there.



  • Now you can pass kernel option in 'kernel' line  (console=??) to throw kernel messages to  selected devices. You can select both Monitor and Serial port to get kernel messages as in above example.
            kernel /boot/vmlinuz-2.4.17 ro root=/dev/sda3 console=ttyS0 console=tty0

  • Single User Mode Login: Although you can select both Monitor & Serial port to get kernel message, but only last selected 'console=??' in kernel line  will be available for OS messages and keyboard entry in single user mode. So it is desirable to set two images so that you can login as single user on either consoles. Notice:'console=??' entries sequence are swapped in two kernel entries in our example as last defined 'console=???' will be selected as primary console here.

 :Single user mode for Monitor
        kernel /boot/vmlinuz-2.4.17 ro root=/dev/sda3 console=ttyS0 console=tty0
                                                                     ^^^^^^^^^^
                                                                     Last Entry

 :Single user mode for Serial Port
            kernel /boot/vmlinuz-2.4.17 ro root=/dev/sda3 console=tty0 console=ttyS0
                                                                    ^^^^^^^^^^^
                                                                     Last Entry

In order to login as single user mode, at Grub boot selection menu, select kernel image by arrow (UP, DOWN keys) and then hit 'e' key to edit, which will show grub entry for image, select kernel line and append  word 'single'  and <Enter>,

kernel /boot/vmlinuz-2.4.17 ro root=/dev/sda3 console=tty0 console=ttyS0 single

 press 'b' to boot this image now. This edit is only temporary and won't overwrite /etc/grub.conf. By this way you can always edit grub entries for boot time temporarily.



  •  Last entry allows Windows partition to boot from Grub loader.

  •  Attaching login: prompt for Serial console: So far all you got is kernel and OS messages on console  (tty0 or ttyS0{Serial Port}). This can allow only single user mode on Serial port. But when you go in multi-user mode, Serial line will appear blank till you attach login process to Serial line. You can use mgetty(8) program for this. See http://www.rpmfind.net for mgetty(8) program.
  Add following line in your /etc/inittab
        # Add a tty to the serial console
        S0:2345:respawn:/sbin/mgetty -b -r -s 9600 -p "Serial Console Login: " ttyS0


   This will  run mgetty in as direct line (-r) (i.e no modem chat initiated), in block mode (-b), with speed as 9600 baud (-s 9600), login prompt as specified by -p option and device is ttyS0 (Serial port device /dev/ttyS0). Either reboot machine or type 'init q' to reread inittab file and that should start login process  on Serial console.

  •  If you setup mgetty(8) process as above, even if you select Monitor as your display console (which allows single user and OS messages on Monitor) still you will get Serial port login: on serial line. This is because after OS boot, mgetty will run irrespective of any selection and wait for login.
  • To allow root login on Serial console, add Serial device entry (ttyS0) in your /etc/securetty file. Otherwise you need to login as normal user and su for root.
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有