kiso.masaki
2024年1月10日 19時19分
お世話になっております。木曽と申します。
BTOをイメージ(xxx.img)の動作確認のため、G3のudevに99-usb-serial.rulesを作成し、
USBデバイスを検知した場合、cp210xのデバイスファイル(ttyRADIO)を作成するようにしております。
cp210xは、menuconfigで有効化したカーネルを私用していますが、
USBデバイスを検知した場合、99-usb-serial.rulesが動作せず、
USBデバイスをcp210xとして検知、デバイファイルのリンクができておりません。
root@armadillo:~# zcat /proc/config.gz|grep CP210X CONFIG_USB_SERIAL_CP210X=y root@armadillo:~#
root@armadillo:~# lsusb Bus 002 Device 003: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem Bus 002 Device 002: ID 0424:3503 Standard Microsystems Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 1790:0008 // < -- ここ Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub root@armadillo:~#
お手数ですが、不足している点、考慮漏れなどあれば、アドバイスをお願いたします。
また、不足している情報があれば、ご指摘をお願いたします。
root@armadillo:~# uname -a Linux armadillo 4.9.133-at30 #2 SMP PREEMPT Mon Dec 18 11:44:40 JST 2023 armv7l GNU/Linux root@armadillo:~# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" root@armadillo:~#
root@armadillo:~# ls -l /etc/udev/rules.d/ total 8 -rw-r--r-- 1 root root 121 Jul 26 16:46 61-x1-license.rules -rw-r--r-- 1 root root 230 Jan 10 18:49 99-usb-serial.rules
root@armadillo:~# cat /etc/udev/rules.d/99-usb-serial.rules ACTION=="remove", GOTO="tty_end" SUBSYSTEM!="tty", GOTO="tty_end" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", DRIVERS=="cp210x", ACTION=="add", ENV{ID_VENDOR_ID}=="1790", ENV{ID_MODEL_ID}=="0008", SYMLINK+="ttyRADIO" LABEL="tty_end"
root@armadillo:~# dmesg | grep USB [ 0.334981] GPIO line 85 (EC25_USB_VBUS) hogged as output/low [ 1.715605] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver [ 1.784483] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.801459] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [ 1.827422] usbserial: USB Serial support registered for generic [ 1.836505] usbserial: USB Serial support registered for cp210x [ 1.845668] usbserial: USB Serial support registered for FTDI USB Serial Device [ 1.856043] usbserial: USB Serial support registered for GSM modem (1-port) [ 1.866072] usbserial: USB Serial support registered for Sierra USB modem [ 1.876883] usbserial: USB Serial support registered for carelink [ 1.881731] usbserial: USB Serial support registered for zio [ 1.886133] usbserial: USB Serial support registered for funsoft [ 1.890883] usbserial: USB Serial support registered for flashloader [ 1.895991] usbserial: USB Serial support registered for google [ 1.900648] usbserial: USB Serial support registered for libtransistor [ 1.905929] usbserial: USB Serial support registered for vivopay [ 1.910674] usbserial: USB Serial support registered for moto_modem [ 1.915695] usbserial: USB Serial support registered for motorola_tetra [ 1.921047] usbserial: USB Serial support registered for novatel_gps [ 1.926154] usbserial: USB Serial support registered for hp4x [ 1.930637] usbserial: USB Serial support registered for suunto [ 1.935318] usbserial: USB Serial support registered for siemens_mpi [ 2.023816] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 [ 2.051645] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 [ 2.056590] hub 1-0:1.0: USB hub found [ 2.074189] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2 [ 2.101640] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00 [ 2.106537] hub 2-0:1.0: USB hub found [ 2.229676] USB Video Class driver (1.1.1) [ 2.421643] usb 1-1: new full-speed USB device number 2 using ci_hdrc [ 2.471634] usb 2-1: new high-speed USB device number 2 using ci_hdrc [ 2.673593] hub 2-1:1.0: USB hub found [ 2.682738] usbhid: USB HID core driver [ 15.711713] usb 2-1.2: new high-speed USB device number 3 using ci_hdrc [ 15.897383] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB0 [ 16.044956] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB1 [ 16.120769] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB2 [ 16.196456] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB3 [ 86.800669] usb 1-1: USB disconnect, device number 2 [ 92.372547] usb 1-1: new full-speed USB device number 3 using ci_hdrc root@armadillo:~#
また、補足事項として、 EC25-J のネットワークデバイス名を固定化するため、`/etc/ModemManager/symlink.conf `を
以下のように修正しております。
# quectel-ec25-symlink # cinterion-els31-symlink ↓ quectel-ec25-symlink # cinterion-els31-symlink
以上です。
よろしくお願いいたします。
コメント
kiso.masaki
> 古関です。
>
> echo 1790 0008 > /sys/bus/usb-serial/drivers/cp210x/new_id
>
> をしてからUSBデバイスを抜き差ししたらどうなるでしょうか?
古関さん
お世話になっております。木曽です。
ご回答いただき、ありがとうございます。
仰る通りコマンドを実行してからUSBデバイス(cp210x)を検知できるようになりました。
イメージファイル作成時に、コマンドが抜けている箇所があるようなので確認します。
root@armadillo:~# dmesg | grep USB ... [ 15.711679] usb 2-1.2: new high-speed USB device number 3 using ci_hdrc [ 15.905013] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB0 [ 15.985591] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB1 [ 16.020244] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB2 [ 16.044359] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB3 [ 57.825920] usb 1-1: cp210x converter now attached to ttyUSB4 [ 64.922792] usb 1-1: USB disconnect, device number 2 [ 64.927034] cp210x ttyUSB4: cp210x converter now disconnected from ttyUSB4 ...
以上です。
よろしくお願いいたします。
at_koseki
古関です。
> echo 1790 0008 > /sys/bus/usb-serial/drivers/cp210x/new_id
これは、kernel起動後に、
cp210xデバイスとして検知するVenderID/ProductIDのホワイトリストに
"1790 0008"を追加した状況です。
恒久的にやるなら、以下のようにLinux-Kernelソースのテーブルに
"1790 0008"を追加し、ビルドしたイメージを使う方が良いかなと思います。
(起動後じゃなくて、スタティックにリストに入れておく)
https://github.com/atmark-techno/linux-4.9-at/blob/master/drivers/usb/serial/cp210x.c#L52 static const struct usb_device_id id_table[] = { { USB_DEVICE(0x045B, 0x0053) }, /* Renesas RX610 RX-Stick */ ... 省略 .... { USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */ + { USB_DEVICE(0x1790, 0x0008) }, /* 追加 */ { USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */
よろしくお願いいたします。
kiso.masaki
> 古関です。
>
> > echo 1790 0008 > /sys/bus/usb-serial/drivers/cp210x/new_id
> これは、kernel起動後に、
> cp210xデバイスとして検知するVenderID/ProductIDのホワイトリストに
> "1790 0008"を追加した状況です。
>
> 恒久的にやるなら、以下のようにLinux-Kernelソースのテーブルに
> "1790 0008"を追加し、ビルドしたイメージを使う方が良いかなと思います。
> (起動後じゃなくて、スタティックにリストに入れておく)
>
>
> https://github.com/atmark-techno/linux-4.9-at/blob/master/drivers/usb/serial/cp210x.c#L52 > > static const struct usb_device_id id_table[] = { > { USB_DEVICE(0x045B, 0x0053) }, /* Renesas RX610 RX-Stick */ > ... 省略 .... > { USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */ > + { USB_DEVICE(0x1790, 0x0008) }, /* 追加 */ > { USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */ >
>
> よろしくお願いいたします。
>
古関さん
お世話になっております。木曽です。
追記でご返信いただき、ありがとうございます。
今回は、明示的にkernel起動後にcp210xデバイスを検知するようにしたいので、
Linux-Kernelソースのテーブルには手を加えず、プログラム起動時のshellで以下を記述するようにしました。
> > echo 1790 0008 > /sys/bus/usb-serial/drivers/cp210x/new_id
以下の方法については、今後の参考にさせていただきます。
ありがとうございます。
>
> https://github.com/atmark-techno/linux-4.9-at/blob/master/drivers/usb/serial/cp210x.c#L52 > > static const struct usb_device_id id_table[] = { > { USB_DEVICE(0x045B, 0x0053) }, /* Renesas RX610 RX-Stick */ > ... 省略 .... > { USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */ > + { USB_DEVICE(0x1790, 0x0008) }, /* 追加 */ > { USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */ >
本件クローズで問題ございません。
以上です。
よろしくお願いたします。
at_koseki
2024年1月10日 20時45分
古関です。
echo 1790 0008 > /sys/bus/usb-serial/drivers/cp210x/new_id
をしてからUSBデバイスを抜き差ししたらどうなるでしょうか?