Custom udev rules for modem & modem connection setup


#1

Hi All,
I have a SIMCOM 7100 modem with udev rules that i want to deploy. The device is seen as multiple usb devices like:

ttyUSB0
ttyUSB1
ttyUSB2
ttyUSB3
ttyUSB4

I have a container running based on the node red resin io container: https://github.com/resin-io-projects/resin-node-red

Now i have followed the script on: https://resin.io/blog/where-are-my-devices/ and added this to the docker file with loading the script named startdev:

#!/bin/bash
mount -t devtmpfs none /dev  
udevd &  
udevadm trigger  

With this line:

# copy udev rules
COPY ./app/udev-rules/* /etc/udev/rules.d/

# start dev
CMD ["bash", "/usr/src/app/startdev.sh"]

When i check it doesn’t look like the udev rules are deployed because i don’t see the following symlinks:

/dev/modemS0
/dev/modemS1 and/or /dev/modemGPS
/dev/modemS2 and/or /dev/modemAT
/dev/modemS3 and/or /dev/modemPPP

Also i have added a config with the right APN in system-connections folder in img like the default from the documentation.

Is there something that goes wrong and how can I test if the modem is working at all, with or without the symlinks?


#4

Are you running a -dev version of resinOS? This will allow unsecured access to the Host OS, and so is great for debugging this kind of issue, where the configuration happens at the Host rather than Application level.


#6

We are running the dev version of the OS and we are able to get the modem to connect with qmi on the host OS
But how can we achieve to have the configuration be adopted to the container or the host OS so it will be easy scalable deployed? Do we need to make a custom host image?


#14

Can you try running this project --> https://github.com/resin-io-projects/cellular-test on your device, with a network config file added to the boot file partition ( see https://docs.resin.io/deployment/network/2.x/#cellular-modem-setup ).

If your modem doesn’t connect with this, can you try connecting the device via ethernet and run mmcli -L on the host OS to see if the modem is recognised.

You shouldn’t need to use any udev rules here as the modem should always enumerate with the same ttyUSB* numbers at every boot.