なにかの技術メモ置き場

なにかの技術メモ置き場

@インフラエンジニア

シリアル接続 - 設定

サーバの設定

grub.confに起動時のオプションを追記する。
titleを区切りとして複数のエントリが記載されているが、おおかた1つ目のエントリを編集すれば良いだろう。

# vi /boot/grub/grub.conf
14:	title CentOS (2.6.32-431.17.1.el6.x86_64)
15:		root (hd0,0)
16:		kernel /vmlinuz-2.6.32-431.17.1.el6.x86_64 ro root=/dev/mapper/vg0-lv1 nomodeset rd_NO_LUKS rd_LVM_LV=vg0/lv1 rd_LVM_LV=vg0/lv0 rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet vga=773 console=tty0 console=ttyS0,9600
17:		initrd /initramfs-2.6.32-431.17.1.el6.x86_64.img

サーバを再起動する。

クライアントの操作

screenコマンドをインストールする。

# yum -y install screen

早速サーバに接続してみる。

# screen /dev/ttyUSB0 9600

すると画面がブランクになるので「Enter」を押下すると、

CentOS release 6.5 (Final)
Kernel 2.6.32-431.17.1.el6.x86_64 on an x86_64

【サーバ】 login:

とログインプロンプトが表示される。
モニタ直結時やtelnet接続時にしか見られない、なんとも懐かしい感じのする画面だ。
これでLinuxへのシリアル接続が実現した。

なお、screenコマンド固有のキー操作を知っておかねばならない(オプションではなく)。
ここでは最低限のものだけ紹介する。

screenコマンド実行すると仮想コンソールが起動する。
そのため一度画面がブランクになる(マシンにモニタを直結してログインしようとする画面と同じ)。
つまり、この画面が始まりの画面であり、「ここから抜け出す」という概念は存在しないため、通常のキー操作ではこの画面から抜けることはできない。

ウンチクはさておき。
screenコマンドによる接続を解除するには、「Ctrl+A」→「K」の順に押下する。すると画面最下部に

Really kill this window [y/n]

と表示されるので「Y」を押下すると、画面がクライアントのプロンプトに戻る。

補足

screenコマンドを実行するとTera Termのウィンドウサイズが変わってしまうので煩わしい。
各ユーザ毎に設定ファイルを作成し、以下の内容を記載することで防げる。

vi ~/.screenrc
termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

内容はわからん。

ちなみに、大元の/etc/screenrcの最下行に追記しても可能だった。
ただこのファイルの中には"termcapinfo xterm"から始まる項目がいくつかあるので、それぞれの意味を理解していない状態での追記は気持ちの良いものではない。
まぁ、やってることは同じなのだろうが。