sugihara
2020年1月9日 9時26分
以下と内容が似ていますが、4~5年前のスレッドであることであり、新しく質問させてもらいます。
https://users.atmark-techno.com/forum/armadillo/1442
製品:Armadillo IoT G3
GSM modem:搭載GSM modemは、Vendor=Quectel("2c7c")、Product=EC25("0125")
OSバージョン:(# uname -a出力)Linux armadillo 4.9.133-at10 #2 SMP PREEMPT Tue Jul 2 16:14:08 JST 2019 armv7l GNU/Linux
現象・問題
USB-シリアル変換器(FTDI社製USB-RS485-WE)を使用する際、
①パワーオン時にUSB-シリアルが装着されている:USB-シリアル変換器はttyUSB0に割当てられる
②パワーオン時にUSB-シリアルは装着されておらず後から挿入する:USB-シリアル変換器はttyUSB4が割当られる
USB-シリアル変換器の割当不定に関してはSYMLINKを使うことで名前解決しそうですが、USB-シリアル変換器にttyUSB0が割当たった場合に、GSM modemが動作しなさそうです。
https://users.atmark-techno.com/forum/armadillo/1442
にならい、/etc/udev/rules.d/にファイルを置きましたが、USB-シリアル変換器やGSM modemに対してSYMLINK作成できますが、NAME変更ができません。
NAME変更しようとすると以下のエラーが出ています。(.rulesはNAME変更可能かの調査のため、それ以外の箇所はあまり良くないかもわかりません。添付参照ください)
[ログ](タイムスタンプが不正ですが無視してください)
Jan 30 11:21:06 armadillo kernel: option 2-1.2:1.0: GSM modem (1-port) converter detected
Jan 30 11:21:06 armadillo kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB1
Jan 30 11:21:06 armadillo kernel: option 2-1.2:1.1: GSM modem (1-port) converter detected
Jan 30 11:21:06 armadillo kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB2
Jan 30 11:21:06 armadillo kernel: option 2-1.2:1.2: GSM modem (1-port) converter detected
Jan 30 11:21:06 armadillo kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB3
Jan 30 11:21:06 armadillo kernel: option 2-1.2:1.3: GSM modem (1-port) converter detected
Jan 30 11:21:06 armadillo kernel: usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB4
Jan 30 11:21:07 armadillo systemd-udevd[1618]: NAME="ttyUSB2" ignored, kernel device nodes cannot be renamed; please fix it in /etc/udev/rules.d/88-quectel-ec25.modify.rules:5
Jan 30 11:21:07 armadillo systemd-udevd[1621]: NAME="ttyUSB2" ignored, kernel device nodes cannot be renamed; please fix it in /etc/udev/rules.d/88-quectel-ec25.modify.rules:5
Jan 30 11:21:07 armadillo systemd-udevd[1619]: NAME="ttyUSB2" ignored, kernel device nodes cannot be renamed; please fix it in /etc/udev/rules.d/88-quectel-ec25.modify.rules:5
ArmadilloのDebianとは違うUbuntuの記事ですが、udevの最近仕様?では、SYMLINK作成は出来るが、NAME変更は出来ないような記述があります↓
https://askubuntu.com/questions/920098/udev-rules-name-variable-not-wor…
USBポートにUSB-シリアル変換器等を装着した状態で、Quectel EC25を動作させる方法について、
rulesファイルの記述は妥当か、及びudevでそもそもNAME変更出来るか等について、確認してもらえればと思います。
ファイル | ファイルの説明 |
---|---|
88-quectel-ec25.modify.rules_.txt |
コメント
sugihara
すぎはらです。
中村さま
返答ありがとうございます。
> 「SYMLINK作成は出来るが、NAME変更は出来ない」
> が正しいと思います。
ありがとうございます。udevでのNAME変更の可否さらに追う必要がなくなりました。
ttyUSB0にUSB-シリアル変換器(FTDI社製)が割当たった場合に、ttyUSB3がGSM modemになるようなので仮にttyUSB3のSYMLINKをttyUSBQUEとして作成しました。(USBポートに何もない場合はttyUSB2がGSM modemです)
lrwxrwxrwx 1 root root 7 Jan 31 08:09 /dev/ttyUSB-FT232Rx -> ttyUSB0
crw-rw---- 1 root dialout 188, 0 Jan 31 08:09 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Jan 31 08:36 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Jan 31 08:10 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 Jan 31 08:36 /dev/ttyUSB3
crw-rw---- 1 root dialout 188, 4 Jan 31 08:10 /dev/ttyUSB4
lrwxrwxrwx 1 root root 12 Jan 31 08:36 /dev/ttyUSBQUE -> /dev/ttyUSB3
nmcli deviceの出力は以下です。ttyUSB2ではなくttyUSB3がTYPE=gsmに出るようになっています
root@armadillo:~# nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected ethernet-eth0
ttyUSB3 gsm disconnected --
wlan0 wifi disconnected --
gretap0 gretap unmanaged --
ip6gre0 ip6gre unmanaged --
ip6_vti0 ip6tnl unmanaged --
ip6tnl0 ip6tnl unmanaged --
gre0 iptunnel unmanaged --
sit0 iptunnel unmanaged --
tunl0 iptunnel unmanaged --
lo loopback unmanaged --
SYMLINKを使用してconnectionは作成できるかのように見えます
root@armadillo:~# nmcli connection add type gsm ifname ttyUSBQUE apn soracom.io user sora password ****
Connection 'gsm-ttyUSBQUE' (74d1deac-f79d-4281-a6a9-ef2fc3f78979) successfully added.
しかし、SYMLINKではなく本来のDEVICE名を使う必要があるためか、connection作成に問題があるためか、SYMLINK使用のconnectionが動作しません
root@armadillo:~# ping www.yahoo.co.jp
ping: www.yahoo.co.jp: Temporary failure in name resolution
root@armadillo:~# nmcli connection
NAME UUID TYPE DEVICE
ethernet-eth0 dcf75d1d-f1b4-4f43-9ae0-52b4c0211afc 802-3-ethernet eth0
gsm-ttyUSBQUE 74d1deac-f79d-4281-a6a9-ef2fc3f78979 gsm --
DEVICE名であるUSB3でconnectionを作成すれば、うまく行きます。pingが通るところまで確認しました
# nmcli connection add type gsm ifname ttyUSB3 apn soracom.io user sora password ****
root@armadillo:~# nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected ethernet-eth0
ttyUSB3 gsm connected gsm-ttyUSB3
wlan0 wifi disconnected --
gretap0 gretap unmanaged --
ip6gre0 ip6gre unmanaged --
ip6_vti0 ip6tnl unmanaged --
ip6tnl0 ip6tnl unmanaged --
gre0 iptunnel unmanaged --
sit0 iptunnel unmanaged --
tunl0 iptunnel unmanaged --
lo loopback unmanaged --
root@armadillo:~# nmcli connection
NAME UUID TYPE DEVICE
ethernet-eth0 dcf75d1d-f1b4-4f43-9ae0-52b4c0211afc 802-3-ethernet eth0
gsm-ttyUSB3 7f998c48-890d-4c33-aad2-e6a2bcf93daf gsm ttyUSB3
GSM modemのconnection作成に本来のDEVICE名でなくSYMLINKを使用可能ならば、udevでSYMLINK作成しようと思います。connection作成にSYMLINK使用可能か、もしくは調べる方向性があれば、教えてもらえないでしょうか?
y.nakamura
sugihara
at_syunya.ohshio
大塩です。
GSM modem に割り当てられるデバイス名が ttyUSB0~ttyUSB4 のどれかになり固定化されてない事象について、弊社でも認識しています。
現在対応を行っており、GSM modem に割り当てるデバイス名を固定化するパッケージを仮作成しました。
パッケージを添付致します。
■パッケージ適用後の変化
/dev/下に GSM modem のシンボリックリンク ttyCommModem が出現するようになります。
3G/LTE接続を行う際に ttyUSB* ではなく ttyCommModem を指定することで、3G/LTE接続できるようになります。
■修正内容
・modemmanager : モデムポートのシンボリックリンク ttyCommModem を作成するように修正
・atmark-x1-base : connection-recoverd や wwan-force-restart がコネクションの再接続処理を行う際に ttyCommModem が存在する場合、優先的に使用するよう修正
■使用方法
・nmcli connection でコネクション状況を確認し、3G/LTEコネクションが存在する場合は一旦削除
nmcli connecition delete [gsmコネクション名]
・パッケージを dpkg コマンドでインストール
dpkg -i atmark-x1-base_2.3.2-1+work1_armhf.deb dpkg -i modemmanager_1.6.4-1atmark5+work1_armhf.deb
・reboot後、ttyCommModemが/dev/下に出現
・nmcli connection add にてttyCommModemを指定し、3G/LTE接続できることを確認
なお、このパッケージは正式な実装が行われておりません。
今後のアップデートにて実装予定です。
以上です。
ファイル | ファイルの説明 |
---|---|
modemmanager_1.6.4-1atmark5+work1_armhf.deb | |
atmark-x1-base_2.3.2-1+work1_armhf.deb |
sugihara
すぎはらです。
大塩さま
対応ありがとうございます。
このパッケージを適用する「前」は、モデムへのシンボリックを使用してconnection作成できたいたでしょうか?
このスレッドの最中、シンボリックリンクでconnection作成しようとして動作しなかったので、確認したいだけです。
よろしくお願いします。
> 大塩です。
>
> ■パッケージ適用後の変化
> /dev/下に GSM modem のシンボリックリンク ttyCommModem が出現するようになります。
> 3G/LTE接続を行う際に ttyUSB* ではなく ttyCommModem を指定することで、3G/LTE接続できるようになります。
>
> ■修正内容
> ・modemmanager : モデムポートのシンボリックリンク ttyCommModem を作成するように修正
> ・atmark-x1-base : connection-recoverd や wwan-force-restart がコネクションの再接続処理を行う際に ttyCommModem が存在する場合、優先的に使用するよう修正
at_syunya.ohshio
y.nakamura
2020年1月9日 10時47分
中村です。
以前、同じようなことを調べたことがあります。
「SYMLINK作成は出来るが、NAME変更は出来ない」
が正しいと思います。
参考:(私の過去の投稿です)
https://armadillo.atmark-techno.com/forum/armadillo/3350#comment-5734
> 以下と内容が似ていますが、4~5年前のスレッドであることであり、新しく質問させてもらいます。
> https://users.atmark-techno.com/forum/armadillo/1442
このころはこの方法で可能だったのか、あるいは、
うまくできたように見えたが実はダメだったのか、
よくわかりません。
解決方法としては、モデムのttyUSBxの方もSYMLINKを
使うようにするしかないと思っています。
--
なかむら