# apt install --no-install-recommends libqmi-utils # cp -v ./qmi-network@.service /etc/systemd/system/ # systemctl daemon-reload # systemctl enable --now qmi-network@0 # This will NOT work without a .network for your wwan device. [Unit] Description=qmi-network for cdc-wdm%i device Before=freepbx.service Before=asterisk.service After=sys-subsystem-net-devices-wwan%i.device Wants=sys-subsystem-net-devices-wwan%i.device [Service] Type=simple Restart=always TimeoutSec=300s # Make sure the state is cleared before starting. ExecStartPre=-rm /tmp/qmi-network-state-cdc-wdm%i # Stop wwan so it can be reconfigured. ExecStartPre=networkctl down wwan%i # Raw IP must be enabled. ExecStartPre=sh -c "echo 'Y' | tee /sys/class/net/wwan%i/qmi/raw_ip" # Start the network via qmi-network scripts. # As some networks and/or devices take a long time to connect we should # give it some time to be ready before starting the connection process. ExecStartPre=-sh -e -c "sleep 30; qmi-network /dev/cdc-wdm%i start" # Bring up the network. ExecStartPre=networkctl up wwan%i # Small loop as the main process to watchdog the connection. # (NOTE: DHCP must be given a little time to settle before pinging). ExecStart=sh -e -c "sleep 5; while true; do ping -w 60 -I wwan%i -c 5 one.one.one.one; sleep 300; done;" # Stop.. DOWN TIME! ExecStop=networkctl down wwan%i ExecStop=qmi-network /dev/cdc-wdm%i stop # Be sure the network state is cleared on stop too. ExecStop=-rm /tmp/qmi-network-state-cdc-wdm%i [Install] WantedBy=sys-subsystem-net-devices-wwan%i.device