ひとりアドベントカレンダー3日目
昨日の環境移行記事を書いた後で、事前にやっていたPCにM5Stackを認識させたりする部分に一切触れてなかったので、数を稼ぐ意味でもそのあたりを書いておきます。
環境
- Xubuntu 20.04
- 当時の対象デバイス:ATOM ECHO
$ uname -r
4.13.0-38-generic
手順
- CP210xのドライバ導入
- USBデバイスにアクセスできるよう、パーミッションを設定
- 毎回パーミッション設定はしなくて済むように追加設定
CP210xのドライバ導入
まずM5StackのページからUSBシリアルのドライバ CP210x_VCP_Linux.zip をダウンロード、展開しました。
Linuxのデバイスドライバのセットアップは初めてでしたが、以下のページ等を参考に行ってみました。
UbuntuでESP32を使う際のVCPセットアップメモ - Qiita
シリアルUSBアダプターをLinuxで使うには | 近藤科学
make
sudo make install
sudo cp cp210x.ko /lib/modules/4.15.0-142-generic/kernel/drivers/usb/serial/
sudo modprobe cp210x
USBケーブルで接続後、dmesg
で認識したのを確認しました。
確認したつもりでしたが、改めて今回見てみたところATOM ECHOはCP210Xではない別のデバイスとして認識されていたよう
[ 926.650383] usb 3-1: new full-speed USB device number 4 using xhci_hcd
[ 926.792208] usb 3-1: New USB device found, idVendor=0403, idProduct=6001
[ 926.792214] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 926.792219] usb 3-1: Product: M5stack
中略
[ 926.854612] usbcore: registered new interface driver ftdi_sio
[ 926.854879] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 926.854984] ftdi_sio 3-1:1.0: FTDI USB Serial Device converter detected
[ 926.856051] usb 3-1: Detected FT232BM
[ 926.856389] usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0
さらに以下のページによればCP210xのドライバはディストリビューションの一部として含まれているとの記述があり、ドライバ導入はやらなくても認識できていたのかもしれません。
Ubuntu Linux v18.0+ のセットアップ :: AWS IoT EduKit
USBデバイスにアクセスできるよう、パーミッションを設定
作業が不要だったかどうかはさておき、USBケーブルで接続すると/dev/ttyUSB0
として認識されました。
そしてさっそく書き込もうとしたところアクセスが拒否された。
見てみるとotherには読み書き権限がない。よって、権限を追加して対応
$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Dec 3 23:26 /dev/ttyUSB0
$ sudo chmod 666 /dev/ttyUSB0
$ ls -l /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 0 Dec 3 23:26 /dev/ttyUSB0
しかし、これだと繋ぎなおすたびに権限を設定する必要があって、ちょっと不便を感じるところ。
毎回パーミッション設定はしなくて済むように追加設定
調べたところ、いや今から考えると調べなくても状況をよく観察すれば分かることだが、dialoutグループに属せばいいということで以下を実行
[小ネタ]Ubuntu でttyUSB0(USBシリアル変換)が権限関連で使えない場合の対処方法 - Qiita
sudo gpasswd -a ユーザ名 dialout
これでようやくスムーズに書き換えできるようになりました。