インフラ

LinuxでUSBシリアルケーブルを使う

ぼくは基本的に作業をTeraTermマクロで自動化しているので仕事をするときはTeraTermが使えるWindowsマシン以外には考えられないのですが、自宅で検証するときはコンソール接続できる端末があればOSは何でもいいんです。という事で、自宅の検証用部屋ではUbuntuをインストールしたLet’s Noteを置いています。

インストールしているUbuntuのバージョンは14.04 LTSですが、Ubuntu 17や18でもやり方に変わりありません。USBシリアルケーブルは、ぼくのおすすめiBUFFALO製品です。

インフラエンジニアの道具箱インフラエンジニア向けおすすめアイテム 作業時に最低限カバンへ入れておくと良いものを挙げます。これがあれば大抵困る事はありません。 ...

デバイスが認識されている事を確認する

USBシリアルケーブルをLinuxマシンにUSB接続したらdmesgコマンドを実行してください。一番最後の行で「ttyUSB0」としてデバイスファイルが認識された事がわかります。

使い方

ぼくは昔からUnix系OSでシリアルコンソール接続する場合はcuコマンドを使っています。cuコマンドを使ってCiscoルーターへ接続するためには次のようにします。

パーミッションで弾かれてしまいました。パーミッションを調べてみましょう。

一般ユーザーにも読み書きの権限をつけてやります。

それではもう一度接続してみます。

今度は接続できましたね。面倒なので恒久的にパーミッションを設定しましょう。デフォルト設定は次のファイルに記載されています。

/lib/udev/rules.d/50-udev-default.rules

これを直接いじるのは不作法なので、次のファイルを編集(なければ新規作成)します。

/etc/udev/rules.d/50-udev-default.rules

今回は/dev/ttyUSB**のパーミッションと所有者を変更したいので、次の1行を追加しました。GROUPとMODEは環境に合わせて変更してください。ぼくは使用している端末のユーザー名とグループ名が「shj」なので次のように設定しています。

この設定を行うと、パーミッションと所有グループが設定したものになります。

cuコマンドで接続するときは「-l」オプションでデバイスファイルを指定します。デバイスファイルは先ほどdmesgコマンドで確認した「ttyUSB0」です。

接続を切る方法

コンソール接続を切るためには「~.」を入力します。~(チルダ)の後に.(ピリオド)です。

ログをとりたい

cuコマンドはログを取得する機能はないので、scriptコマンドで端末の入出力をすべて保存してください。

cu以外のソフトウェア

cu以外にはminicomやscreenがあります。ぼくは昔からcuしか使っていないので、他のソフトウェアの使い方についてはよく知りません。それにminicomは設定とか面倒。シンプルなのが一番なんですよ。