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 tar xf libqmi-1.38.0.tar.gz
mkdir libqmi-1.38.0/build 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 .. 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 ...@@ -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 test
cd libqmi-1.38.0/build && ninja install cd libqmi-1.38.0/build && ninja install
@echo "$$NETWORK_CONFIG" > /etc/systemd/network/wwan0.network @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-stats /usr/sbin
install -m 0755 qmi-monitor /usr/sbin install -m 0755 qmi-monitor /usr/sbin
@echo "$$QMI_SERVICE" > /lib/systemd/system/qmi.service @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_TIMER" > /lib/systemd/system/qmi-monitor.timer
@echo "$$QMI_MONITOR_SERVICE" > /lib/systemd/system/qmi-monitor.service @echo "$$QMI_MONITOR_SERVICE" > /lib/systemd/system/qmi-monitor.service
systemctl enable qmi-monitor.timer systemctl enable qmi-monitor.timer
...@@ -24,33 +24,41 @@ Name=wwan0 ...@@ -24,33 +24,41 @@ Name=wwan0
[Network] [Network]
DHCP=ipv4 DHCP=ipv4
ConfigureWithoutCarrier=yes
LinkLocalAddressing=no
IPv6AcceptRA=no
LLDP=no
EmitLLDP=no
[DHCP] [DHCP]
RouteMetric=2048 RouteMetric=2048
endef endef
export NETWORK_CONFIG 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: qmi-service:
define QMI_SERVICE define QMI_SERVICE
[Unit] [Unit]
Description=Start QMI data session Description=Bring up QMI data session
After=dev-cdc\x2dwdm0.device sys-subsystem-net-devices-wwan0.device DefaultDependencies=no
Requires=dev-cdc\x2dwdm0.device
BindsTo=dev-cdc\x2dwdm0.device BindsTo=dev-cdc\x2dwdm0.device
After=dev-cdc\x2dwdm0.device
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStartPre=/bin/sh -c 'echo Y > /sys/class/net/wwan0/qmi/raw_ip' 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
ExecStart=/usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-start-network="ip-type=4" --client-no-release-cid ExecStop=networkctl down wwan0 ; /usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-stop-network=0xffffffff
ExecStop=/usr/bin/qmicli -d /dev/cdc-wdm0 --device-open-proxy --wds-stop-network=0xffffffff
Restart=on-failure Restart=on-failure
RestartSec=5 RestartSec=5
[Install]
WantedBy=multi-user.target
endef endef
export QMI_SERVICE export QMI_SERVICE
...@@ -60,8 +68,8 @@ define QMI_MONITOR_TIMER ...@@ -60,8 +68,8 @@ define QMI_MONITOR_TIMER
Description=Monitor QMI connection Description=Monitor QMI connection
[Timer] [Timer]
OnBootSec=30 OnBootSec=300
OnUnitActiveSec=30 OnUnitActiveSec=300
[Install] [Install]
WantedBy=timers.target 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