From 90aa1a118f7b1813388095277ea75a53ec439873 Mon Sep 17 00:00:00 2001 From: John Klug Date: Thu, 26 Aug 2021 16:31:45 -0500 Subject: Notify mts-io when cell modems are symlinked by UDEV --- recipes-core/udev/eudev/cellular_radios.rules | 39 ++++++++++++++------------- recipes-core/udev/eudev/cellular_radios.sh | 8 ++++++ 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/recipes-core/udev/eudev/cellular_radios.rules b/recipes-core/udev/eudev/cellular_radios.rules index a74ddf1..2a97a6d 100644 --- a/recipes-core/udev/eudev/cellular_radios.rules +++ b/recipes-core/udev/eudev/cellular_radios.rules @@ -1,5 +1,5 @@ ACTION=="remove", GOTO="mlinux_end" -ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" +# ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" SUBSYSTEM!="tty", GOTO="mlinux_end" KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="mlinux_end" @@ -14,19 +14,19 @@ ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="04", SYMLINK+ ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="06", SYMLINK+="modem3" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="08", SYMLINK+="modem4" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="0a", SYMLINK+="modem5" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="0c", SYMLINK+="modem6" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="0c", SYMLINK+="modem6" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # LAT3, LVW3 and LEU3 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="00", SYMLINK+="modem0" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="02", SYMLINK+="modem1" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="04", SYMLINK+="modem2" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="06", SYMLINK+="modem3" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="08", SYMLINK+="modem4" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="0a", SYMLINK+="modem5" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="0a", SYMLINK+="modem5" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # EV3 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="00", SYMLINK+="modem0" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="01", SYMLINK+="modem1" ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="02", SYMLINK+="modem2" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="03", SYMLINK+="modem3" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="03", SYMLINK+="modem3" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # H4 ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="00", SYMLINK+="modem0" ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="01", SYMLINK+="modem1" @@ -34,54 +34,55 @@ ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="02", SYMLINK+ ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="03", SYMLINK+="modem3" ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="04", SYMLINK+="modem4" ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="05", SYMLINK+="modem5" -ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="06", SYMLINK+="modem6" +ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="06", SYMLINK+="modem6" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # EV2 -ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", SYMLINK+="modem$env{ID_PORT}" +ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", SYMLINK+="modem$env{ID_PORT}" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # AT Command ports # H5: ttyACM0, ttyACM3 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="00", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # LAT3, LVW3 and LEU3 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="00", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # EV3: ttyUSB2, ttyUSB3 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="02", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="03", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_IFACE}=="03", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # H4: ttyUSB3, ttyUSB4, ttyUSB5 ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="03", SYMLINK+="modem_at0" ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="04", SYMLINK+="modem_at1" -ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="05", SYMLINK+="modem_at2" +ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c", ENV{ID_IFACE}=="05", SYMLINK+="modem_at2" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # EV2: ttyUSB0 ATTRS{idVendor}=="1199", ATTRS{idProduct}=="0028", ENV{ID_PORT}=="0", SYMLINK+="modem_at0" # LAT1, LEU1, LVW2: ttyUSB2, ttyUSB3 (port 04 and port 05) ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1201", ENV{ID_IFACE}=="04", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1201", ENV{ID_IFACE}=="05", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1201", ENV{ID_IFACE}=="05", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # LJP1(LE910-JN1), LNA3(LE910-NA1): ttyACM0, ttyACM3 (port 00 and port 03) ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="00", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0036", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # LJP1(LE866) ttyACM0, ttyACM2 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="2300", ENV{ID_IFACE}=="02", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="2300", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="2300", ENV{ID_IFACE}=="06", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # G3: ttyACM0, ttyACM1 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0022", ENV{ID_IFACE}=="00", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0022", ENV{ID_IFACE}=="02", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0022", ENV{ID_IFACE}=="02", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # C2: ttyUSB0, ttyUSB1 (Telit Documentation: Modem Port = USB1, Aux Port = USB0) ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{ID_IFACE}=="01", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{ID_IFACE}=="00", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{ID_IFACE}=="00", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # CATM Telit ME910 ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1100", ENV{ID_IFACE}=="01", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1100", ENV{ID_IFACE}=="02", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1100", ENV{ID_IFACE}=="02", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # CATM Telit ME910 dual USB ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1101", ENV{ID_IFACE}=="01", SYMLINK+="modem_at0" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1101", ENV{ID_IFACE}=="02", SYMLINK+="modem_at1" +ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1101", ENV{ID_IFACE}=="02", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # Quectel EG-95 ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0195", ENV{ID_IFACE}=="02", SYMLINK+="modem_at0" -ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0195", ENV{ID_IFACE}=="03", SYMLINK+="modem_at1" +ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0195", ENV{ID_IFACE}=="03", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" # Quectel EG-25 ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0125", ENV{ID_IFACE}=="02", SYMLINK+="modem_at0" -ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0125", ENV{ID_IFACE}=="03", SYMLINK+="modem_at1" +ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0125", ENV{ID_IFACE}=="03", SYMLINK+="modem_at1" ACTION=="add", RUN+="/etc/udev/scripts/cellular_radios.sh" LABEL="mlinux_end" + diff --git a/recipes-core/udev/eudev/cellular_radios.sh b/recipes-core/udev/eudev/cellular_radios.sh index 695831f..cb9258b 100644 --- a/recipes-core/udev/eudev/cellular_radios.sh +++ b/recipes-core/udev/eudev/cellular_radios.sh @@ -1,7 +1,15 @@ #!/bin/bash # Let mts-io know when the radio is ready +pid=$$ +prefix="<3>cellular-discovery[${pid}]: " +loginfo() { echo "${prefix}$@" >/dev/kmsg ; } + +loginfo "cellular_radios.sh invoked" READYFILE=/sys/devices/platform/mts-io/radio-udev-discovery if [[ -f $READYFILE ]] ; then + if (($(cat $READYFILE) == 0)) ; then + loginfo "Cellular is now available" + fi echo 1 >$READYFILE fi -- cgit v1.2.3