Armadilloフォーラム

コンソールを ttyUSB* にする方法

nagashima

2018年3月15日 14時04分

長島です。
お世話になっております。

現在のターゲットが UART1~5 全てを使用する予定になっているため、
コンソールを ttyUSB* にしたいと考えております。

カーネルコンフィグで

 Device Drivers --->
[*] USB support --->
<*> USB Serial Converter support ---> ← 有効化
--- USB Serial Converter support
[*] USB Serial Console device support ← 有効化
[*] USB Generic Serial Driver      ← 有効化
<*> USB Serial Simple Driver ← 有効化(必要?)
:
<*> USB Prolific 2303 Single Port Serial Driver ← 有効化
        (変換ケーブルで使用しているチップ用、
         PL2303はRS232C界隈でメジャーなチップ)

の設定変更を行い、ビルド&イメージ書き換え。

USB-シリアル変換ケーブル2本とクロスのメスメスコネクタを使って
Armadillo-PCを「USB-シリアル-USB」のように接続し、
echo と cat で文字の送受信が可能なのを確認した上で、

a) ブートローダーの設定(setenv console=ttyUSB0 ...)
b) etc/inittab の console 設定を ttyUSB0 に変更

の両方を行いました。
b) の方は問題なくできたので、ブート後のログインは ttyUSB0 になりましたが、
a) の方は設定変更直後は反映されますが、設定は保存されません。

上記に関して質問がございます。

1. hermit の setenv で ttyUSB を設定可能にする方法はございますか?
2. https://armadillo.atmark-techno.com/forum/armadillo/1442「ttyUSB* について」
 にあるように、USB-シリアル変換ケーブルは ttyUSB3 とかに変更したいが、
 rules.zip のようなファイルを作るための情報はどのように調べれば良いでしょうか?

上記ご存じの方がいらっしゃいましたらご教授ください。よろしくお願い申し上げます。

コメント

> の両方を行いました。
> b) の方は問題なくできたので、ブート後のログインは ttyUSB0 になりましたが、
> a) の方は設定変更直後は反映されますが、設定は保存されません。

hermit-at-v3系をおつかいだと思いますが、保存されているはずです。
hermit-atのコンソールに引数無しでsetenvを実行するとconsoleの設定
した値が表示されないでしょうか。

恐らく状況は、linuxのコンソールは”ttyUSB0”から表示されるが、
hermitのコンソールは"ttyUSB0"ではなく"ttymxc1"から表示される
という状態だと思います。

hermitのコンソールがttyUSB0から出ない件は、申し訳ありませんが
対応しておりません。hermit(ブートローダー)にはUSBのデバイスドライバが無いのです。

そのため、JP2をショートした時に表示されるhermit-atのプロンプトは復旧手段
として標準のttymxc1から出力しています。(この挙動はコードを変更すれば
変える事はできますが、JP2をショートしなければ何も出力しないので、
フィールドで運用する際は障害にならないと思っております。)

> 2. https://armadillo.atmark-techno.com/forum/armadillo/1442「ttyUSB* について」
>  にあるように、USB-シリアル変換ケーブルは ttyUSB3 とかに変更したいが、
>  rules.zip のようなファイルを作るための情報はどのように調べれば良いでしょうか?

udevのルールの書き方はATDEから ”man udev” コマンドでマニュアルが参照できます。

もしくはドキュメントが
http://www.reactivated.net/writing_udev_rules.html
にあります。少し古いですが和訳されている方もいるようです。
http://mux03.panda64.net/docs/udevrules_ja.html

at_ohsawa様

長島です。お世話になっております。

> hermit-at-v3系をおつかいだと思いますが、保存されているはずです。
> hermit-atのコンソールに引数無しでsetenvを実行するとconsoleの設定
> した値が表示されないでしょうか。

保存されております。

hermit> setenv
1: console=ttyUSB0,115200
2: root=/dev/ram0

> 恐らく状況は、linuxのコンソールは”ttyUSB0”から表示されるが、
> hermitのコンソールは"ttyUSB0"ではなく"ttymxc1"から表示される
> という状態だと思います。

正しくその通りです。

> hermitのコンソールがttyUSB0から出ない件は、申し訳ありませんが
> 対応しておりません。hermit(ブートローダー)にはUSBのデバイスドライバが無いのです。
>
> そのため、JP2をショートした時に表示されるhermit-atのプロンプトは復旧手段
> として標準のttymxc1から出力しています。(この挙動はコードを変更すれば
> 変える事はできますが、JP2をショートしなければ何も出力しないので、
> フィールドで運用する際は障害にならないと思っております。)

確かにUSBの方で問題が発生したときに、上記仕様でないとリカバリが難しくなりますから。
了解いたしました。

> > 2. https://armadillo.atmark-techno.com/forum/armadillo/1442「ttyUSB* について」
> >  にあるように、USB-シリアル変換ケーブルは ttyUSB3 とかに変更したいが、
> >  rules.zip のようなファイルを作るための情報はどのように調べれば良いでしょうか?
>
> udevのルールの書き方はATDEから ”man udev” コマンドでマニュアルが参照できます。
>
> もしくはドキュメントが
> http://www.reactivated.net/writing_udev_rules.html
> にあります。少し古いですが和訳されている方もいるようです。
> http://mux03.panda64.net/docs/udevrules_ja.html

ご教授ありがとうございます。トライしてみます。

今後ともよろしくお願い申し上げます。