パソコン一般

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

このページはこんな方におすすめです
  • LinuxでUSBシリアルケーブルを使う方法について知りたい
  • USBシリアルケーブルは認識したがパーミッションの問題で悩んでいる

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

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

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

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」です。

<div class=”concept-box6″><p>別のスマートなやり方は、dialoutというグループに自分を追加する事です。</p></div>

接続を切る方法

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

ログをとりたい

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

まとめ

  • USBシリアルケーブルはWindowsでもMacでもLinuxでも使えるiBUFFALO製品がおすすめ。
  • パーミッションの問題が発生したら/dev/ttyUSBのパーミッションを変えるかdialoutグループに参加する

POSTED COMMENT

  1. drone より:

    起動時に、sudo 等でroot権限でArduinoIDEを動かしましょうという記事が多い中、きちんと権限を付与する方法を教えていただきまして感謝です。スッキリスマートにエレガントに使用することができました。ありがとうございます。

    • shj より:

      この記事が参考になってなによりです。droneさんのサイトを拝見しました。
      大して深く考えず自分の環境に合わせて「GROUP=shj」という設定を記載していたので、反省して記事を修正しました。

      • drone より:

        大変遅くなりましたが、本当にありがとうございました。グループ権限の件も疑問が解けてすっきりしております。多分ご使用の環境のグループ(署名みてあとで気づきました)だとは思ったのですが、オープンソース系のアルアルで「実はそのようなグループが必要だった。」とか「呪文的に入れるのが慣例」かもなぁと思い、そのままとして降りました。ありがとうございました。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)