Commit 481cfa5e authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Fixed up QMI data session bring up/maintenance

parent 0d42de75
all: network-config qmi-service qmi-monitor-timer qmi-monitor-service
all: network-config udev-config qmi-service qmi-monitor-timer qmi-monitor-service
tar xf libqmi-1.38.0.tar.gz
mkdir libqmi-1.38.0/build
cd libqmi-1.38.0/build && meson --prefix=/usr --buildtype=release -D bash_completion=false -D qrtr=false -D man=false -Dudev=false -Dmbim_qmux=false -Dintrospection=false ..
......@@ -6,10 +6,10 @@ all: network-config qmi-service qmi-monitor-timer qmi-monitor-service
cd libqmi-1.38.0/build && ninja test
cd libqmi-1.38.0/build && ninja install
@echo "$$NETWORK_CONFIG" > /etc/systemd/network/wwan0.network
@echo "$$UDEV_CONFIG" > /etc/udev/rules.d/99-qmi.rules
install -m 0755 qmi-stats /usr/sbin
install -m 0755 qmi-monitor /usr/sbin
@echo "$$QMI_SERVICE" > /lib/systemd/system/qmi.service
systemctl enable qmi.service
@echo "$$QMI_MONITOR_TIMER" > /lib/systemd/system/qmi-monitor.timer
@echo "$$QMI_MONITOR_SERVICE" > /lib/systemd/system/qmi-monitor.service
systemctl enable qmi-monitor.timer
......@@ -24,33 +24,41 @@ Name=wwan0
[Network]
DHCP=ipv4
ConfigureWithoutCarrier=yes
LinkLocalAddressing=no
IPv6AcceptRA=no
LLDP=no
EmitLLDP=no
[DHCP]
RouteMetric=2048
endef
export NETWORK_CONFIG
udev-config:
define UDEV_CONFIG
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wwan*", RUN+="/bin/sh -c 'echo Y > /sys/class/net/%k/qmi/raw_ip'"
ACTION=="add", KERNEL=="cdc-wdm0", TAG+="systemd", ENV{SYSTEMD_WANTS}="qmi.service"
endef
export UDEV_CONFIG
qmi-service:
define QMI_SERVICE
[Unit]
Description=Start QMI data session
After=dev-cdc\x2dwdm0.device sys-subsystem-net-devices-wwan0.device
Requires=dev-cdc\x2dwdm0.device
Description=Bring up QMI data session
DefaultDependencies=no
BindsTo=dev-cdc\x2dwdm0.device
After=dev-cdc\x2dwdm0.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/bin/sh -c 'echo Y > /sys/class/net/wwan0/qmi/raw_ip'
ExecStart=/usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-start-network="ip-type=4" --client-no-release-cid
ExecStop=/usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-stop-network=0xffffffff
ExecStart=networkctl down wwan0 ; /usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-start-network="ip-type=4" --client-no-release-cid ; networkctl up wwan0
ExecStop=networkctl down wwan0 ; /usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-stop-network=0xffffffff
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
endef
export QMI_SERVICE
......@@ -60,8 +68,8 @@ define QMI_MONITOR_TIMER
Description=Monitor QMI connection
[Timer]
OnBootSec=30
OnUnitActiveSec=30
OnBootSec=300
OnUnitActiveSec=300
[Install]
WantedBy=timers.target
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment