# WP7702-FX30S R15.1 missing /dev/ttyGS0

**URL:** <https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887>\
**Category:** WP Series\
**Created:** [May 30, 2023, 5:53pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887 "2023-05-30T17:53:10Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [May 30, 2023, 5:53pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/1 "2023-05-30T17:53:10Z")

</div>

swi-fx30-catm\_4.2.0 │ SDK for FX30-CATM (Release 15.1.0.004 + Legato 21.05.0)

at!usbcomp?  
Config Index: 1  
Config Type: 1 (Generic)  
Interface bitmask: 0008014D (diag,nmea,modem,rmnet0,ecm,rawdat)

at!mapuart?  
!MAPUART: 15,17

In previous releases /dev/ttyGS0 used to be there but now it is not, did something change in Yocto?

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [May 31, 2023, 1:35am UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/2 "2023-05-31T01:35:06Z")

</div>

how about /dev/ttyGS1?

```auto
root@fx30:~# microcom /dev/ttyAT
ati3
Manufacturer: Sierra Wireless, Incorporated
Model: WP7702
Revision: SWI9X06Y_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28
IMEI: 352653090612345
IMEI SV: 6
FSN: VU213430812345
+GCAP: +CGSM

OK
ati8
Legato Ver: 19.11.5.a1621d58_27c4cd8552e17e79fdc3b0c91ff8bce9
Yocto Ver: SWI9X06Y_02.36.08.00 2021-05-14_12:13:48
OS Ver: Linux version 3.18.140 (oe-user@oe-host) () #1 PREEMPT Fri May 14 11:13:23 UTC 2021
LK Ver: 1.3.0_9c047c35f7
RootFS Ver: SWI9X06Y_02.36.08.00 2021-05-14_12:13:48
UserFS Ver: unknown
MCU Ver: 002.015

OK
at!entercnd="A710"
OK
at!usbcomp?
Config Index: 1
Config Type: 1 (Generic)
Interface bitmask: 0008014D (diag,nmea,modem,rmnet0,ecm,rawdat)

OK

root@fx30:~# ls /dev/ttyG*
/dev/ttyGS1

```

---

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [May 31, 2023, 12:54pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/3 "2023-05-31T12:54:25Z")

</div>

Thanks for your reply,  
I don’t have any /dev/ttyG\*

ati3  
Manufacturer: Sierra Wireless, Incorporated  
Model: FX30S(WP7702)  
Revision: SWI9X06Y\_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28  
IMEI: 354723090332155  
IMEI SV: 6  
FSN: VU145400171210  
+GCAP: +CGSM

OK  
ati8  
Legato Ver: 21.05.0\_7ce68b6acae153785e8d19e4069e5c0c  
Yocto Ver: SWI9X06Y\_03.00.13.00 2023-05-30\_18:31:33  
OS Ver: Linux version 4.14.253 (oe-user@oe-host) ( gcc version 9.3.0 (GCC), GNU ld (GNU Binutils) 2.34.0.20200220) #1 PREEMPT Fri May 26 18:30:22 UTC 2023  
LK Ver: 1.3.0\_1aea4d8ec8  
RootFS Ver: SWI9X06Y\_03.00.13.00 2023-05-30\_18:31:33  
UserFS Ver: unknown  
MCU Ver: 002.015

OK  
at!entercnd=“A710”  
OK  
at!usbcomp?  
Config Index: 1  
Config Type: 1 (Generic)  
Interface bitmask: 0008014D (diag,nmea,modem,rmnet0,ecm,rawdat)

root@fx30s:~# ls /dev/ttyG\*  
ls: /dev/ttyG\*: No such file or directory

root@fx30s:~# modprobe g\_serial  
modprobe: module g\_serial not found in modules.dep  
root@fx30s:~#

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [May 31, 2023, 1:05pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/4 "2023-05-31T13:05:16Z")

</div>

how about using FW 14.1?

---

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [May 31, 2023, 4:03pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/5 "2023-05-31T16:03:02Z")

</div>

Thanks, but that is not an option at this point.

It looks like linux 4.14 changed to use configfs for the usb\_gadget,  
/home/mango/m21/swi-linux-src/meta-swi-wp/meta-swi-wp/recipes-bsp/system-core/files/composition-sierra\_dev

#!/bin/sh

# 

# Copyright (c) 2013, The Linux Foundation. All rights reserved.

# 

# Redistribution and use in source and binary forms, with or without

# modification, are permitted provided that the following conditions are met:

# \* Redistributions of source code must retain the above copyright

# notice, this list of conditions and the following disclaimer.

# \* Redistributions in binary form must reproduce the above copyright

# notice, this list of conditions and the following disclaimer in the

# documentation and/or other materials provided with the distribution.

# \* Neither the name of The Linux Foundation nor the names of its

# contributors may be used to endorse or promote products derived from

# this software without specific prior written permission.

# 

# THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES,

# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,

# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE DISCLAIMED. IN NO

# EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,

# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# DESCRIPTION: DIAG+ADB+ECM

configure\_android\_gadget()  
{  
local gadget\_fs=/sys/class/android\_usb/android${num}  
#echo $mode \> /sys/bus/platform/devices/usb\_bam/enable  
echo 0 \> ${gadget\_fs}/enable  
echo $vid \> ${gadget\_fs}/idVendor  
echo $pid \> ${gadget\_fs}/idProduct  
echo $devclass \> ${gadget\_fs}/bDeviceClass  
echo $devsubclass \> ${gadget\_fs}/bDeviceSubClass  
echo $devprotocol \> ${gadget\_fs}/bDeviceProtocol  
echo $diagstr \> ${gadget\_fs}/f\_diag/clients  
echo $serialstr \> ${gadget\_fs}/f\_serial/transports  
echo QTI,BAM\_DMUX \> ${gadget\_fs}/f\_rmnet/transports  
echo BAM\_DMUX \> ${gadget\_fs}/f\_usb\_mbim/mbim\_transports  
echo $compstr \> ${gadget\_fs}/functions  
echo $remotewakeup \> ${gadget\_fs}/remote\_wakeup

```
echo $manufacturer > ${gadget_fs}/iManufacturer
echo $product > ${gadget_fs}/iProduct
echo $serial > ${gadget_fs}/iSerial

compstr=`grep -w ffs ${gadget_fs}/functions || true`
if [[$mode = "hsusb" && ! -z "$compstr" && -d ${gadget_fs}/f_ffs]] ; then
    echo adb > ${gadget_fs}/f_ffs/aliases
fi

echo 1 > ${gadget_fs}/enable

```

}

configure\_configfs\_gadget()  
{  
local configfs\_home=/sys/kernel/config/usb\_gadget  
local gadget\_home=${configfs\_home}/g$((num+1))  
local strings\_home=${gadget\_home}/strings/0x409  
local config\_home=${gadget\_home}/configs/c.$((num+1))  
local cstring\_home=${config\_home}/strings/0x409  
local gdev=`ls -1 /sys/class/udc/`  
local supported=" serial:gser.0"` `" modem:cser.dun.0"` `" ecm:ecm.usb0"` `" ncm:ncm.ncm"` `" diag:diag.diag"` `" nmea:cser.nmea.1"` `" rmnet:rmnet\_bam.rmnet\_bam\_dmux"` `" usb\_mbim:mbim.mbim"` `" ffs:ffs.adb"` `" rawdat:cser.raw.2"` `" storage:mass\_storage.0"

```
# Disable gadget in case it was enabled
if [-w ${gadget_home}/UDC]; then
    if [! -z `cat ${gadget_home}/UDC`]; then
        echo "" > ${gadget_home}/UDC
    fi
fi

if [! -d ${configfs_home}]; then
    mount none /sys/kernel/config -t configfs
    mkdir ${gadget_home}
fi
echo "0x$vid" > ${gadget_home}/idVendor
echo "0x$pid" > ${gadget_home}/idProduct
mkdir -p ${strings_home}
echo ${manufacturer} > ${strings_home}/manufacturer
echo ${product} > ${strings_home}/product

if [-s "/etc/adb_devid"] && ["$( cat /etc/adb_devid )" != ""]; then
    cat /etc/adb_devid > ${strings_home}/serialnumber
else
    serial_no=`egrep -o "androidboot\.serialno=[0-9a-fA-F]+" /proc/cmdline |cut -f2 -d=`
    if [! -z ${serial_no}]; then
        echo $serial_no > ${strings_home}/serialnumber
    else
        cat /proc/sys/kernel/random/boot_id | cut -d- -f5 > ${strings_home}/serialnumber
    fi
    cat ${strings_home}/serialnumber > /etc/adb_devid
fi

mkdir -p ${config_home}

# Update bmAttributes if remotewakup enabled.
# Referring include/uapi/linux/usb/ch9.h,
# D7: Reserved (set to one)
# D6: Self-powered
# D5: Remote Wakeup
# D4...0: Reserved (reset to zero)
[$remotewakeup == "1"] && echo 0xA0 > ${config_home}/bmAttributes

# Replace "serial" in compstr with the interface list (nmea, modem);
# Translate interface list into function names.
# smdnmea --> nmea
# smd --> modem (if CMUX over USB disabled)
# tty --> modem (if CMUX over USB enabled)
# rawdat --> rawdat
local serialif=`echo "${serialstr}"| sed -r -e 's/smdnmea/nmea/g' -e 's/(smd|tty)/modem/g'`

# update compstr to replace "serial" with the interface list.
compstr="${compstr/serial/${serialif}}"

# Space separated list
complist=`echo ${compstr} | sed -e 's/,/ /g'`

# Clear and symlink gadget configuration files, build configuration string
cd ${gadget_home}
idx=0
configuration=""
rm -f configs/c.$((num+1))/f*
for comp in ${complist}; do
    match=`echo ${supported} | xargs -n1 | grep -i "${comp}"`
    if [-n "${match}"]; then
        idx=$((idx+1))
        func=`echo ${match} | cut -f 2 -d':'`
        name=`echo ${func} | cut -f 1 -d'.'`
        if [${idx} -eq 1]; then
            configuration="${name}"
        else
            configuration="${configuration}_${name}"
        fi
        mkdir -p functions/${func}
        ln -s functions/${func} configs/c.$((num+1))/f${idx}
    fi
done
cd

# Write configuration string
mkdir -p ${cstring_home}
echo "${configuration}" > ${cstring_home}/configuration

if echo "${compstr}" | grep -wq "ffs"; then
    # mount FunctionFS and start adb daemon
    mkdir -p /dev/usb-ffs/adb
    mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb
    mount -o remount,gid=5,mode=620 /dev/pts
    mkdir -p /system/bin 2>/dev/null && ln -s /bin/sh /system/bin/sh

    # change directory to root directory to align to msm-3.18 "adb shell" entry point
    cd /
    start-stop-daemon -S -b -a /sbin/adbd
    cd -

    sleep 1
fi

# Enable gadget
echo "${gdev}" > ${gadget_home}/UDC

```

}

set\_frmnet\_module\_param()  
{  
local frmnet\_module\_param1=/sys/module/g\_android/parameters/num\_rmnet\_swi  
local frmnet\_module\_param2=/sys/module/usb\_f\_rmnet\_bam/parameters/num\_rmnet\_swi

```
if [-w "${frmnet_module_param1}"]; then
    frmnet_module_param=${frmnet_module_param1}
elif [-w "${frmnet_module_param2}"]; then
    frmnet_module_param=${frmnet_module_param2}
else
    return
fi

numnet=$(/usr/bin/ud_getusbinfo NUMNET)
if [$? -eq 0]; then
    echo $numnet > ${frmnet_module_param}
fi

```

}

echo “Switching to composition sierra\_dev (1199:68C0)”

if [“x$1” = “xy”]; then  
num=“1”  
mode=“hsic”  
else  
num=“0”  
mode=“hsusb”  
fi

vid=$(/usr/bin/ud\_getusbinfo VID)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets VID failed”  
vid=1199  
fi

pid=$(/usr/bin/ud\_getusbinfo PID)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets PID failed”  
pid=68C0  
fi

devclass=$(/usr/bin/ud\_getusbinfo DEVC)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets DEVC failed”  
devclass=239  
fi

devsubclass=$(/usr/bin/ud\_getusbinfo DEVS)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets DEVS failed”  
devsubclass=2  
fi

devprotocol=$(/usr/bin/ud\_getusbinfo DEVP)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets DEVP failed”  
devprotocol=1  
fi

diagstr=$(/usr/bin/ud\_getusbinfo DIAGSTR)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets DIAGSTR failed”  
diagstr=‘diag’  
fi

serialstr=$(/usr/bin/ud\_getusbinfo SERIALSTR)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets SERIALSTR failed”  
serialstr=‘smd,tty’  
fi

compstr=$(/usr/bin/ud\_getusbinfo COMPSTR)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets COMPSTR failed”  
compstr=‘diag,ffs,serial’  
fi

# filter out adb gadget if adbd is not installed

if [! -x /sbin/adbd]; then  
compstr=`echo $compstr | sed -e s/^ffs,//g -e s/,ffs//g -e s/^ffs$//g`  
fi

remotewakeup=$(/usr/bin/ud\_getusbinfo REM)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets REM failed”  
remotewakeup=1  
fi

manufacturer=$(/usr/bin/ud\_getusbinfo MANU)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets MANU failed”  
manufacturer=‘Sierra Wireless, Incorporated’  
fi

product=$(/usr/bin/ud\_getusbinfo PROD)  
if [$? -ne 0];  
then  
echo “ud\_getusbinfo gets PROD failed”  
product=‘AR758x’  
fi

serial=$(/usr/bin/ud\_getusbinfo SER)  
if [[$? -ne 0 || “${serial}” == “”]];  
then  
echo “ud\_getusbinfo gets SER failed or SN is blank”  
serial=‘0123456789ABCDEF’  
fi

# Pass number of rmnets, to driver

set\_frmnet\_module\_param

# Check if configfs gadget is supported and configure accordingly

configfs\_g\_support=`zcat /proc/config.gz |grep CONFIG_USB_CONFIGFS=y`  
configfs\_fs\_support=`zcat /proc/config.gz |grep CONFIG_CONFIGFS_FS=y`  
if [[“x${configfs\_g\_support}” = “x” || “x${configfs\_fs\_support}” = “x”]]  
then  
configure\_android\_gadget  
else  
configure\_configfs\_gadget  
fi

root@fx30s:/dev# ls -ls  
0 crw-rw---- 1 root root 235, 0 Dec 31 1969 android\_mbim  
0 crw-rw---- 1 root root 242, 5 Dec 31 1969 apr\_apps2  
0 crw-rw---- 1 root root 242, 3 Dec 31 1969 at\_mdm0  
0 crw-rw---- 1 root root 242, 4 Dec 31 1969 at\_mdm1  
0 crw-rw---- 1 root root 242, 6 Dec 31 1969 at\_mdm2  
0 crw-rw---- 1 root root 506, 1 Dec 31 1969 at\_usb0  
0 crw-rw---- 1 root root 506, 0 Dec 31 1969 at\_usb1  
0 crw-rw---- 1 root root 506, 2 Dec 31 1969 at\_usb2  
0 drwxr-xr-x 3 root root 60 Dec 31 1969 bus  
0 crw------- 1 root root 5, 1 Dec 31 1969 console  
0 crw-rw---- 1 root root 10, 59 Dec 31 1969 cpu\_dma\_latency  
0 crw-rw---- 1 root root 241, 0 Dec 31 1969 diag  
0 brw-rw---- 1 root root 254, 0 Dec 31 1969 dm-0  
0 brw-rw---- 1 root root 254, 1 Dec 31 1969 dm-1  
0 crw-rw---- 1 root root 236, 1 Dec 31 1969 dpl\_ctrl  
0 crw-rw-rw- 1 root root 1, 7 Dec 31 1969 full  
0 crw-rw---- 1 root root 254, 0 Dec 31 1969 gpiochip0  
…  
0 crw-rw---- 1 root root 254, 4 Dec 31 1969 gpiochip4  
0 crw-rw---- 1 root root 10, 183 Dec 31 1969 hwrng  
0 crw-rw---- 1 root root 89, 4 Dec 31 1969 i2c-4  
0 crw-rw---- 1 root root 248, 0 Dec 31 1969 iio:device0  
0 prw------- 1 root root 0 Dec 31 1969 initctl  
0 drwxr-xr-x 2 root root 60 Dec 31 1969 input  
0 crw-rw-rw- 1 root root 10, 63 Dec 31 1969 ion  
4 -rw-r–r-- 1 root root 2 May 30 09:40 ipa  
0 crw-rw---- 1 root root 1, 11 Dec 31 1969 kmsg  
0 srw-rw-rw- 1 root root 0 Dec 31 1969 log  
0 crw-rw---- 1 root root 10, 237 Dec 31 1969 loop-control  
0 brw-r----- 1 root disk 7, 0 Dec 31 1969 loop0  
…  
0 brw-r----- 1 root disk 7, 7 Dec 31 1969 loop7  
0 drwxr-xr-x 2 root root 80 Dec 31 1969 mapper  
0 crw-r----- 1 root kmem 1, 1 Dec 31 1969 mem  
0 crw-rw---- 1 root root 10, 56 Dec 31 1969 memory\_bandwidth  
0 drwxrwxrwt 2 root root 40 Dec 31 1969 mqueue  
0 crw-rw---- 1 root root 256, 0 Dec 31 1969 msm-rng  
0 crw-rw---- 1 root root 10, 54 May 30 09:40 msm\_audio\_cal  
0 crw-rw---- 1 root root 10, 53 May 30 09:40 msm\_rtac  
0 crw-rw---- 1 root root 253, 0 Dec 31 1969 msm\_sps  
0 crw-rw---- 1 root root 90, 0 Dec 31 1969 mtd0  
…  
0 crw-rw---- 1 root root 90, 19 Dec 31 1969 mtd9ro  
0 brw-rw---- 1 root root 31, 0 Dec 31 1969 mtdblock0  
…  
0 brw-rw---- 1 root root 31, 9 Dec 31 1969 mtdblock9  
0 drwxr-xr-x 2 root root 60 Dec 31 1969 net  
0 crw-rw---- 1 root root 10, 58 Dec 31 1969 network\_latency  
0 crw-rw---- 1 root root 10, 57 Dec 31 1969 network\_throughput  
0 prw-rw-rw- 1 root root 0 May 31 08:45 nmea  
0 crw-rw-rw- 1 root root 1, 3 Dec 31 1969 null  
0 crw-rw---- 1 root root 108, 0 Dec 31 1969 ppp  
0 crw-rw---- 1 root root 249, 0 Dec 31 1969 pps0  
0 crw-rw-rw- 1 root tty 5, 2 May 31 11:48 ptmx  
0 drwxr-xr-x 2 root root 0 Dec 31 1969 pts  
0 crw-rw---- 1 root root 2, 176 Dec 31 1969 ptya0  
…  
0 crw-rw---- 1 root root 2, 175 Dec 31 1969 ptyzf  
0 brw-r----- 1 root disk 1, 0 Dec 31 1969 ram0  
…  
0 brw-r----- 1 root disk 1, 9 Dec 31 1969 ram9  
0 crw-rw---- 1 root root 245, 1 Dec 31 1969 ramdump\_microdump\_modem  
0 crw-rw---- 1 root root 245, 0 Dec 31 1969 ramdump\_modem  
0 crw-rw-rw- 1 root root 1, 8 Dec 31 1969 random  
0 prw–w---- 1 root rebooter 0 May 31 08:45 rebooterdev  
0 crw-rw---- 1 root root 236, 0 Dec 31 1969 rmnet\_ctrl  
0 lrwxrwxrwx 1 root root 9 Dec 31 1969 root → gpiochip0  
0 crw-rw---- 1 root root 250, 0 Dec 31 1969 rtc0  
0 drwxrwxrwx 2 root root 40 Dec 31 1969 shm  
0 crw-rw---- 1 root root 10, 62 Dec 31 1969 sierra\_smem  
0 crw-rw---- 1 root root 10, 61 Dec 31 1969 sierra\_ssmem  
0 crw-rw---- 1 root root 242, 8 Dec 31 1969 smd10  
0 crw-rw---- 1 root root 242, 10 Dec 31 1969 smd11  
0 crw-rw---- 1 root root 242, 11 Dec 31 1969 smd21  
0 crw-rw---- 1 root root 242, 1 Dec 31 1969 smd22  
0 crw-rw---- 1 root root 242, 7 Dec 31 1969 smd7  
0 crw-rw---- 1 root root 242, 9 Dec 31 1969 smd8  
0 crw-rw---- 1 root root 242, 12 Dec 31 1969 smd\_pkt\_loopback  
0 crw-rw---- 1 root root 242, 0 Dec 31 1969 smdcntl0  
0 crw-rw---- 1 root root 242, 2 Dec 31 1969 smdcntl8  
0 drwxr-xr-x 2 root root 1140 May 30 09:40 snd  
0 crw-rw---- 1 root root 246, 0 Dec 31 1969 subsys\_modem  
0 crw-rw-rw- 1 root tty 5, 0 Dec 31 1969 tty  
…  
0 lrwxrwxrwx 1 root root 9 Dec 31 1969 ttyAT → /dev/smd8  
0 crw-rw---- 1 root dialout 243, 0 Dec 31 1969 ttyHS0  
0 crw------- 1 root root 243, 1 Dec 31 1969 ttyHS1  
…  
0 crw-rw-rw- 1 root tty 3, 175 Dec 31 1969 ttyzf  
0 crw-rw---- 1 root root 10, 60 Dec 31 1969 tzdev  
0 crw-rw---- 1 root root 511, 0 Dec 31 1969 ubi0  
…  
0 crw-rw---- 1 root root 508, 1 Dec 31 1969 ubi4\_0  
0 crw-rw---- 1 root root 10, 55 Dec 31 1969 ubi\_ctrl  
0 brw-rw---- 1 root root 253, 0 Dec 31 1969 ubiblock0\_0  
…  
0 brw-rw---- 1 root root 253, 3 Dec 31 1969 ubiblock2\_1  
0 crw-rw---- 1 root root 10, 223 Dec 31 1969 uinput  
0 crw-rw-rw- 1 root root 1, 9 Dec 31 1969 urandom  
0 crw-rw---- 1 root root 239, 0 Dec 31 1969 usbmon0  
0 crw-rw---- 1 root root 239, 1 Dec 31 1969 usbmon1  
0 crw-rw---- 1 root tty 7, 0 Dec 31 1969 vcs  
0 crw-rw---- 1 root tty 7, 1 Dec 31 1969 vcs1  
0 crw-rw---- 1 root tty 7, 128 Dec 31 1969 vcsa  
0 crw-rw---- 1 root tty 7, 129 Dec 31 1969 vcsa1  
0 crw-rw-rw- 1 root root 1, 5 Dec 31 1969 zero

I have not figured out what the script is actually doing ?  
but this seems to be where the configuration takes place?

---

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [June 1, 2023, 1:37pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/6 "2023-06-01T13:37:40Z")

</div>

It seems that at\_usb2 is the same as ttyGS0  
on the Ubuntu host /dev/ttyUSB3 receives from WP7702 /dev/at\_usb2  
echo -e “HELLO” \> /dev/at\_usb2

That is fine by me to use /dev/at\_usb2 instead of /dev/ttyGS0,  
but is there any documentation describing how all this relates?

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [June 2, 2023, 3:32am UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/7 "2023-06-02T03:32:24Z")

</div>

I don’t see any information regarding this in here:

> **[Linux 4.14 Migration Guide - Legato Docs](https://docs.legato.io/latest/migrationGuide.html)**
>
> legato™ is an open source Linux-based embedded platform designed to simplify connected IoT application development

But I think you can use /dev/at\_usb2 for the raw data port.

---

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [June 2, 2023, 1:13pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/8 "2023-06-02T13:13:12Z")

</div>

Thanks,  
/dev/at\_usb2 seems to be working.

I still have /dev/ttyHS0 and /dev/ttyHS1 even though the guide says ttyMSMx ?

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [June 2, 2023, 1:21pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/9 "2023-06-02T13:21:37Z")

</div>

are you using UART in data mode?

I don’t see /dev/ttyHS port in WP77 R15:

```auto
root@fx30:~# microcom /dev/ttyAT
ati8
Legato Ver: 21.05.0_0e0fd5f3fc5f6169e2516f22304da11c
Yocto Ver: SWI9X06Y_03.00.13.00 2022-12-27_09:10:00
OS Ver: Linux version 4.14.253 (oe-user@oe-host) ( gcc version 9.3.0 (GCC), GNU ld (GNU Binutils) 2.34.0.20200220) #1 PREEMPT Tue Dec 27 08:09:00 UTC 2022
LK Ver: SWI9X06Y_03.00.13.00
RootFS Ver: SWI9X06Y_03.00.13.00 2022-12-27_09:10:00
UserFS Ver: unknown
MCU Ver: 002.015

OK
ati3
Manufacturer: Sierra Wireless, Incorporated
Model: WP7702
Revision: SWI9X06Y_02.36.08.09 c094f4 jenkins 2022/06/24 03:14:28
IMEI: 352653090612345
IMEI SV: 8
FSN: VU213430812345
+GCAP: +CGSM

OK
at!mapuart?
!MAPUART: 15,16

OK
root@fx30:~# ls /dev/ttyH*
ls: /dev/ttyH*: No such file or directory
root@fx30:~# ls /dev/ttyM*
/dev/ttyMSM1

```

---

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [June 2, 2023, 1:59pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/10 "2023-06-02T13:59:35Z")

</div>

ati8  
Legato Ver: 21.05.0\_90ad1cb36b659e0fdb3937a52fc7f920  
Yocto Ver: SWI9X06Y\_03.00.13.00 2023-05-30\_18:31:33  
OS Ver: Linux version 4.14.253 (oe-user@oe-host) ( gcc version 9.3.0 (GCC), GNU ld (GNU Binutils) 2.34.0.20200220) #1 PREEMPT Fri May 26 18:30:22 UTC 2023  
LK Ver: 1.3.0\_1aea4d8ec8  
RootFS Ver: SWI9X06Y\_03.00.13.00 2023-05-30\_18:31:33  
UserFS Ver: unknown  
MCU Ver: 002.015

OK  
ati3  
Manufacturer: Sierra Wireless, Incorporated  
Model: FX30S(WP7702)  
Revision: SWI9X06Y\_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28  
IMEI: 354723090332155  
IMEI SV: 6  
FSN: VU145400171210  
+GCAP: +CGSM

OK  
at!mapuart?  
!MAPUART: 15,17

I am using ATT firmware  
Not sure what you mean by UART in data mode?

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [June 2, 2023, 2:36pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/11 "2023-06-02T14:36:48Z")

</div>

Does your project need to use uart?

---

<div class="post-metadata">

**Author:** ![pmark](https://avatars.discourse-cdn.com/v4/letter/p/df705f/32.png) [@pmark](https://forum.sierrawireless.com/u/pmark)\
**Post date:** [June 2, 2023, 2:50pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/12 "2023-06-02T14:50:17Z")

</div>

Yes it is using both of them and it works fine with the ttyHSx i was just wondering why it is not ttyMSMx as the documentation says?

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [June 2, 2023, 3:14pm UTC](https://forum.sierrawireless.com/t/wp7702-fx30s-r15-1-missing-dev-ttygs0/29887/13 "2023-06-02T15:14:45Z")

</div>

I don’t see problem.  
you can use the FW here:  
[https://source.sierrawireless.com/resources/airlink/software\_downloads/fx30-firmware/fx30-firmware-catm/#sthash.1fK4jcLN.dpbs](https://source.sierrawireless.com/resources/airlink/software_downloads/fx30-firmware/fx30-firmware-catm/#sthash.1fK4jcLN.dpbs)

```auto

root@fx30:~# ls /dev/ttyM*
/dev/ttyMSM1
root@fx30:~# microcom /dev/ttyAT
ati3
Manufacturer: Sierra Wireless, Incorporated
Model: WP7702
Revision: SWI9X06Y_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28
IMEI: 352653090612345
IMEI SV: 6
FSN: VU213430812345
+GCAP: +CGSM

OK
ati8
Legato Ver: 21.05.0.54b96444_0a6e18078edde5151619cb964564694d
Yocto Ver: SWI9X06Y_03.00.13.00 2022-12-28_08:23:43
OS Ver: Linux version 4.14.253 (oe-user@oe-host) ( gcc version 9.3.0 (GCC), GNU ld (GNU Binutils) 2.34.0.20200220) #1 PREEMPT Wed Dec 28 07:40:21 UTC 2022
LK Ver: 1.3.0_1aea4d8ec8
RootFS Ver: SWI9X06Y_03.00.13.00 2022-12-28_08:23:43
UserFS Ver: unknown
MCU Ver: 002.015

OK
at!mapuart?
!MAPUART: 15,16

OK
root@fx30:~# ^C
root@fx30:~# microcom /dev/ttyAT
at!impref?
!IMPREF:
 preferred fw version: 02.36.06.00
 preferred carrier name: ATT
 preferred config name: ATT_001.067_005
 preferred subpri index: 000
 current fw version: 02.36.06.00
 current carrier name: ATT
 current config name: ATT_001.067_005
 current subpri index: 000

OK

```
