BlueQuartzでシリアルコンソールを使おう

Dec,15 2004.
おだ まこと, Cobalt Users Group.
(oda@cobaltresq.com)

[ English ]


概要

Cobaltシリーズは、Bootする際にVGAではなくシリアルコンソールにメッセージを出力します。BlueQuartzでも同じようにBootのメッセージをシリアルコンソール経由で出力したりシリアル経由でログインができるようにしてみます。


実際の作業

Reference kitを利用してインストールした場合、最初にGRUBというBootLoaderが動きます。次にGURBからkernelが呼び出されます。そして、initを経由してマルチユーザ モードで起動します。そのほか、起動の途中で周辺機器や拡張カードを自動で認識するkudzuがあります。この3段階とkudzuの画面制御をVGAからシリアルコンソールに変更する必要があります。

まず、はじめに編集するファイルのバックアップをとります。

[root@blue root]# cp -pi /etc/grub.conf /etc/grub.conf.bak
[root@blue root]# cp -pi /etc/sysconfig/kudzu /etc/sysconfig/kudzu.bak
[root@blue root]# cp -pi /etc/sysconfig/init /etc/sysconfig/init.bak
[root@blue root]# cp -pi /etc/inittab /etc/inittab.bak
[root@blue root]# cp -pi /etc/securetty /etc/securetty.bak

GRUBの出力を変えるため以下の2行を追加します。
"serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
"terminal --timeout=5 serial console"
GRUBをテキスト表示にするために以下の行をコメントアウトします。
"splashimage=(hd0,0)/boot/grub/splash.xpm.gz"
kernelの呼び出し時のオプションとして"kernel /boot/..."の行末に改行しないで追加します。
"console=tty0 console=ttyS0,115200n8"
[root@blue root]# vi /etc/grub.conf
# 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,0)
#          kernel /boot/vmlinuz-version ro root=/dev/hda1
#          initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Fedora Core (2.4.22-1.2199.nptl)
        root (hd0,0)
        kernel /boot/vmlinuz-2.4.22-1.2199.nptl ro root=LABEL=/ hdc=ide-scsi console=tty0 console=ttyS0,115200n8
        initrd /boot/initrd-2.4.22-1.2199.nptl.img

kudzuがシリアルをリセットしないように"SAFE=yes"に変更します。
[root@blue root]# vi /etc/sysconfig/kudzu
# Set to anything other than 'no' to force a 'safe' probe on startup.
# 'safe' probe disables:
# - serial port probing
# - DDC monitor probing
# - PS/2 probing
SAFE=yes

initがモノクロ表示になるように"BOOTUP=serial"に変更します。
[root@blue root]# vi /etc/sysconfig/init
# color => new RH6.0 bootup
# verbose => old-style bootup
# anything else => new style bootup without ANSI colors or positioning
BOOTUP=serial
# Turn on graphical boot
GRAPHICAL=yes
# column to start [ OK ] label in
RES_COL=60
# terminal sequence to move to that column. You could change this
# to something like tput hpa  if your terminal supports it
:
:


シリアルコンソールでのログインを待ち受けるように設定します。

[root@blue root]# vi /etc/inittab
:
:
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
# Serial console login
s0:12345:respawn:/sbin/agetty 115200 ttyS0 vt100


シリアルコンソールからrootでログインできるようにttyS0を追加します。
[root@blue root]# vi /etc/securetty
console
ttyS0
vc/1
vc/2
vc/3
:
:


これでBlueQuartzの準備は整いました。BlueQuartz<->シリアルケーブル<->PCのようにケーブルを接続します。 PCがWindowsならばTeraTermなどの端末エミュレータソフトをインストールして待ち受けをします。 BlueQuartzのコントロールパネルまたはshutdownコマンドで再起動すると、シリアルコンソールにメッセージが表示されます。


[BACK]