ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

LinuxでUSBシリアル変換ケーブルを使ってシリアル接続する

USBシリアル変換ケーブルはスイッチやルーターの設定をするときに使うと思います。 たいていの場合、Windows + Tera Termの組み合わせで使うと思うのですが、この組み合わせの欠点はドライバーをインストールしなければいけないという点が挙げられると思います。

稀にOS標準のドライバーで認識するか、接続すると勝手にインターネットからドライバーを取得して認識するものもあるようですが、そうでなければ対応するドライバーを探すのに苦労することも多いようです。

また、USBシリアル変換ケーブルで使われているチップの都合で古いバージョンのドライバーを使わないと動作しないといったことも手持ちのUSBシリアル変換ケーブル(URS232GF)でよく起きます。セットアップ直後は動作するのに、久しぶりに使おうとするとWindows Updateで新しいドライバーに更新されて認識しないとか。たまに。

このような問題児や、対応OSがWindowsしか書かれていないUSBシリアル変換ケーブルでも、Linuxで使うと割と動くのを最近知りました。今回は Ubuntu 16.04.1 Desktopを使いましたが、割と新しいLinux Kernelで動くLinuxであればなんでも同じように動くと思います。

www.ubuntu.com

ちなみにLinuxは物理マシンでも仮想マシンでも動作するようです。私はParallels Desktop上のUbuntu 16.04.1 Desktopで接続しました。USB接続で仮想マシンと接続できればいいので、大抵のデスクトップ用仮想マシンソフトウェアだったら動作するはずです。VMware WorkstationとかVMware Fusionだとか、Parallelsとか。

Linuxで動作したUSBシリアル変換ケーブル

手持ちのだけですが。。

動かすまでの流れ

ご家庭によくある、Cisco Catalyst 2940に接続してみます。

  • 機器とUSBシリアル変換ケーブルを接続
  • Linuxを起動
  • USBシリアル変換ケーブルをLinuxマシンに接続
  • dmesgコマンドでttyUSB0みたいにマウントされたのを確認

f:id:ytooyama:20170130222930p:plain

  • dialoutグループに操作するユーザーを追加(-aGなので注意 ! aを忘れるべからず)
$ sudo usermod -aG dialout ytooyama
  • cuコマンドツールをインストールします。
$ sudo apt update
$ sudo apt install cu
  • cuコマンドで接続
$ cu -l ttyUSB0

ちなみに変換ケーブル無しにサーバーと機器を接続する場合はcu -l ttyS0でOKです。

f:id:ytooyama:20170130223309p:plain

  • ~.と入力してEnterキーを押すと接続を切断

そんな感じで接続できました。USBシリアル変換ケーブルを使った接続はWindowsよりもLinuxでやったほうが簡単みたいですね。 Windowsしか対応していないUSBシリアル変換ケーブルがあったら試してみては?

screenコマンドを使った接続例

screenコマンドは大抵のLinuxに標準でインストールされているはずなので、screenコマンドを使う例も例示しておきます。

コンソールに接続

screenコマンドを/dev/ttyUSB0付きで実行

% sudo screen /dev/ttyUSB0
コンソールから切断
  • コマンド「CTRL+ a」+「k」を実行
  • yを入力してリターン
参考にしたサイト

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。