パソコンで作業を行う上で、ディスプレイは広ければ広いほど作業効率が上がります。どこかにディスプレイがないかとオフィスを見渡してみたところ・・・
サーバーにいいものが繋がっていました。
よし。これをMacBook Proにつなげると・・・
完璧だ。
作業環境が良くなるのは非常に気分が良い。これだからカイゼン活動はやめられない。次のターゲットは、最近買ったこれ。
モバイル端末としては非常に使いやすいけれども、事務所で使うにはキーボードが少し頼りない感じだし、マウスもあった方が便利だ。どこかにいいものが無いものか・・・
またもやサーバーにいいものが繋がっていました。
ではこれを拝借して・・・
なんということでしょう。キーボードとマウスをつなげるのみならず、余っていたLenovoのUSB接続ディスプレイ LT1421 まで接続して、完璧なデスクトップPCとしての使い勝手を実現。しかも元々ある物だけで成し遂げたではありませんか。これはもう、快適さが各段にアップしたこと間違いなしです(大改造!!劇的ビフォーアフター風なつもり)。
いやー、満足満足。
ということで、今回はこれにて終了。
と、思ったのもつかの間・・・
なんてこったい。これではサーバーを操作できないではないか。
まあ、実際のところ、たいていの作業はSSHで繋げば行えますし、いざとなればキーボードとマウスとディスプレイをサーバーの所へ持って行って繋げばいいだけの話なのですが、世間は夏休み。せっかくなのでこれを題材に何かしてみようではないか。
ということで、前置きが長くなってしまいましたが、本題に入ります。
≪夏休み特別企画≫ThinkPad X40でシリアルコンソールへ接続してみよう
シリアルコンソールに接続すると、シリアルポート経由でサーバーを操作する事が可能となります。SSH接続とは違い、ネットワーク障害が起こっている場合でもサーバに入ることができます。また、カーネルと直接やりとりを行えるため、例えばsyslogデーモンが動作できない状況においても、カーネルのメッセージを確認することが可能となります。
ではまず現物確認。サーバーの外部コネクターを見てみます。
昔のパソコンにはシリアルコンソール接続に使用するRS-232Cシリアルポート(単にシリアルポートと言ったり、COMポートと言ったりもする)があったのですが、最近のパソコンには標準では付いていないようです。USB-シリアル変換ケーブル等も売っていますが、それを使うのでは面白くありません。そこで、マザーボードのマニュアルを見てみると・・・
マザーボード上には存在するようです。ネットで色々探してみると、こういう製品を発見しました。
さっそくこれを購入して、接続します。
こんな感じになりました。
次に、クライアント端末を用意します。せっかくなので、 ThinkPad X40は10年の時を経た今、使い物になるのか で紹介したThinkPad X40に再登場してもらいます。これにもRS-232Cシリアルポートは無いため、これを購入します。
10年前のパソコンのオプションのため、存在するか不安でしたが、凄く状態のいい中古品が入手できました。
画像のふきだしで示したポートが、RS-232Cシリアルポートです。それでは装着してみます。
カッコいい!!
ThinkPad X40を購入した当時はパソコンと合体するオプションというだけで格好良く思えて欲しかったのですが、当時の財力では手が出せませんでした。ところが今では2,980円と大変安価でしかもDVDドライブのオマケ付き。もし当時買っていれば5万円Overのものが、3,000円もしないとは。10年越しの悲願達成です。
最後に紹介するのは、RS-232Cシリアルポートどうしを接続するためのケーブルです。
ケーブルの種類は「ノーマル」とか「ストレート」と表現されているものではなく、「クロス」とか「リバース」である必要があります。ただ、クロスケーブルにも「インターリンク対応」と書かれているものは、たぶん用途が違うため使えませんのでご注意下さい(現物確認していないので「たぶん」です)。
それでは、ケーブルを接続してみましょう。
これで物理的な準備は完了です。あとはソフトウェア的な準備を。
まず、Ubuntu Serverに設定を入れます(ちなみにバージョンは14.04.3です)。
最初にRS-232Cシリアルポートを有効にします。/etc/initの中にttyS0.confファイルを作り・・・
xxxxx@xxxxx:~$ sudo touch /etc/init/ttyS0.conf
中身を次のように編集します。
xxxxx@xxxxx:~$ sudo vi /etc/init/ttyS0.conf
start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 115200 ttyS0
さっそくttyS0を開始。
xxxxx@xxxxx:~$ sudo start ttyS0
次に、GRUB の設定を次のように変更します。
xxxxx@xxxxx:~$ sudo vi /etc/default/grub
#GRUB_CMDLINE_LINUX="" GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8r" #GRUB_TERMINAL=console GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 -- parity=no --stop=1"
最後に、変更した内容を反映します。
xxxxx@xxxxx:~$ sudo update-grub
Ubuntu側の設定が終わったので、ThinkPad X40の設定を行います。設定と言っても、screenコマンドを入れるだけです。ちなみにこちらのOSはlubuntu 15.04が入っています。
xxxxx@xxxxx-ThinkPad-X40:~$ screen プログラム 'screen' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt-get install screen xxxxx@xxxxx-ThinkPad-X40:~$ sudo apt-get install screen パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 提案パッケージ: iselect screenie byobu 以下のパッケージが新たにインストールされます: screen アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。 542 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,041 kB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu/ vivid/main screen i386 4.2.1-3 [542 kB] 542 kB を 0秒 で取得しました (668 kB/s) 以前に未選択のパッケージ screen を選択しています。 (データベースを読み込んでいます ... 現在 123525 個のファイルとディレクトリがインストールされています。) .../screen_4.2.1-3_i386.deb を展開する準備をしています ... screen (4.2.1-3) を展開しています... man-db (2.7.0.2-5) のトリガを処理しています ... install-info (5.2.0.dfsg.1-6) のトリガを処理しています ... systemd (219-7ubuntu4) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... ureadahead will be reprofiled on next reboot screen (4.2.1-3) を設定しています ... systemd (219-7ubuntu4) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ...
これで準備完了です。
ThinkPad X40から次のコマンドを入れます。
xxxxx@xxxxx-ThinkPad-X40:~$ sudo screen /dev/ttyS0 115200
この状態から、Ubuntuサーバーを再起動してみると・・・
xxxxx@xxxxx:~$ sudo reboot
(文字が読めない程度に画質を落としています)
見事成功!
最終的に、サーバー周りの様子は次のようになりました。
ディスプレイ、キーボード、マウスが無くなり、かわりにコンパクトなThinkPad X40が置かれています。空いている隙間にテプラを常設できるようにもなって大満足です。