CP2102のドライバーを動かすのにchmod 666
IchigoJamといえば、キーボードがPS/2でないと使えないというのに、PS/2でも使えないものがあることをPCNのサイトで知り驚きました。
当該キーボードは、価格もサイズも手頃なサンワサプライの製品なのですが、仕様変更かなにかがあったようです。ソフトウエアでは対処できないものの、KBD1またはKBD2を10kΩの抵抗を使ってプルアップし、5Vと接続することで動くようになるとか。
IchigoJamを人に紹介するときがあるかもしれないので、記憶とどめておくのがよさそうです。
さて、仕様変更というわけでなくてアップデートになりますが、どうもそのせいではないかと思われるトラブルに悩まされました。
USB-シリアル変換モジュールを使い、IchigoJamのファームウェアを書き替えようとしたところ、ポートに接続できずに失敗するのです。
使用したターミナルソフトのIJUtilitiesをインストールしなおしてもだめだったので、ドライバーが疑われます。とはいえ、Ubuntuのカーネルには本来含まれているはずで、実際にもインストールした覚えもありませんし、これまでは動いていました。考えにくいことですがUbuntu20.04をアップデートしたせいでしょうか。
USB-シリアル変換モジュールのICがCP2102だったので、SILICON LABSのサイトからドライバーをダウンロードしてインストールを試みたところ、既に存在するといわれてしまいました。案の定カーネルには含まれているのです。
頭を抱えてしまいますが、参考にしたドライバーのインストール用ファイルの中にあるマニュアルには、別のデストリビューションの記載もあり、そこには最後にchmod 666を実行するように書かれていましたので、試しに実行してみました。
結果的にはオーライで、IJUtilitiesで接続ができました。要するに、UbuntuカーネルにはすでにUSB-シリアル変換モジュール用のドライバーが含まれており、IJUtilitiesで接続するにはsudo chmod 666 /dev/ttyUSB0を実行すればよいと。このことは、自分でUSB-シリアル変換モジュール用のドライバーを入れたことなどないUbuntuの上で、新規にIJUtilitiesをインストールして確認してみた結果からも間違いありません。ただし、パソコンを起動するたびに実行が必要でした。
まったくわけはわかっていませんが、動くならよしとするしかありません。念のためにドライバーのインストールの手順を控えておくことにしましょう。
【CP2102のドライバーをUbuntuにインストールする手順】
①ダウンロード
使用したUSB-シリアル変換モジュールは石がCP2102だったので、SILICON LABSのサイトからLinux用のLinux_3.x.x_4.x.x_VCP_Driver_Source.zipをダウンロードした。
なお、ターミナルソフトのIJUtilitiesは、ijutilities.micutil.comからダウンロード(以下省略)
②Ubuntuのカーネルのバージョンを確認する
$ uname -r を実行する
5.4.0-52-generic というふうにカーネルバージョンが示される
または
$ uname -a を実行する
Linux W110ERu2004amd 5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux とパソコン名やカーネルバージョン、アーキテクチャー(64ビットか32ビットか)が示される
③シリアルポートの確認
USB-シリアル変換モジュールをパソコンに接続し、シリアルポートを以下のコマンドを打ち込み、確認する
$ dmesg を実行する
ログ表示されたなかから、有効になっているシリアルポートのデバイス名を確認。大概はttyUSB0
④ファイルの解答
ダウンロードしたLinux_3.x.x_4.x.x_VCP_Driver_Source.zipファイルを解凍する
展開先ディレクトリはホーム下に作成した/job
⑤ドライバーのインストール
$ cd /home/(username)/job
$ make
$ sudo cp cp210x.ko /lib//modules/5.4.0-52-generic/kernel/drivers/usb/serial
$ sudo insmod /lib/modules/5.4.0-52-generic/kernel/drivers/usb/serial/usbserial.ko
$ sudo insmod cp210x.ko
ドライバーファイルに添付のCP210x_VCP_Linux_4.x_Release_Notes.txtでは、Ubuntuの場合はこれ以上の記述はなかった。しかし、これでは動かなかったのでRedHatについての記述にならい、次を実行した
$ sudo chmod 666 /dev/ttyUSB0
以上





