/dev/ttyUSB* について(Quectel社製EC25のGSM modem)

以下と内容が似ていますが、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-working

USBポートにUSB-シリアル変換器等を装着した状態で、Quectel EC25を動作させる方法について、
rulesファイルの記述は妥当か、及びudevでそもそもNAME変更出来るか等について、確認してもらえればと思います。

ファイル名 ファイルの説明
88-quectel-ec25.modify.rules_.txt
製品: 
Armadillo-IoT G3

中村です。

以前、同じようなことを調べたことがあります。
「SYMLINK作成は出来るが、NAME変更は出来ない」
が正しいと思います。

参考:(私の過去の投稿です)
https://users.atmark-techno.com/node/3350#comment-5734

> 以下と内容が似ていますが、4~5年前のスレッドであることであり、新しく質問させてもらいます。
> https://users.atmark-techno.com/forum/armadillo/1442
このころはこの方法で可能だったのか、あるいは、
うまくできたように見えたが実はダメだったのか、
よくわかりません。

解決方法としては、モデムのttyUSBxの方もSYMLINKを
使うようにするしかないと思っています。

--
なかむら

すぎはらです。

中村さま
返答ありがとうございます。

> 「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使用可能か、もしくは調べる方向性があれば、教えてもらえないでしょうか?

中村です。

すみません、SYMLINKの名前でconnectionを作るところまでは
試していませんでした。できないんですね。

ならば。。。
適当なスクリプトでリンク先を調べて、
それを使うようにしてはどうでしょうか?

ArmadilloのDebianでは試していませんが(今は出先なので)、
リンク先を調べるコマンドreadlinkが使えると思います。

--
なかむら

すぎはらです。

中村さま
返答ありがとうございます

出来ること・出来ないことの切り分けがはっきりしてきました。

> リンク先を調べるコマンドreadlinkが使えると思います。
直に出来ない部分については、ご指摘のようにスクリプトで対応しようと思います。