diff --git a/recipes-connectivity/ublox-configuration/files/ublox-config.service b/recipes-connectivity/ublox-configuration/files/ublox-config.service new file mode 100644 index 0000000..796e453 --- /dev/null +++ b/recipes-connectivity/ublox-configuration/files/ublox-config.service @@ -0,0 +1,11 @@ +[Unit] +Before=ModemManager.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/ublox-config.sh + +[Install] +WantedBy=ModemManager.service + + diff --git a/recipes-connectivity/ublox-configuration/files/ublox-config.sh b/recipes-connectivity/ublox-configuration/files/ublox-config.sh new file mode 100644 index 0000000..554f468 --- /dev/null +++ b/recipes-connectivity/ublox-configuration/files/ublox-config.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env sh + +ifconfig wwan0 > /dev/null 2> /dev/null + +if [ "$?" = "0" ]; then + echo "Modem already configured" + exit 0; +fi + +ModemManager --debug > /dev/null 2> /dev/null & + +mmcli -m 0 > /dev/null 2> /dev/null +while [ "$?" != "0" ]; do + mmcli -m 0 > /dev/null 2> /dev/null +done + +echo "Configuring modem" + +mmcli -m 0 --command "AT+UBMCONF=2" +mmcli -m 0 --command 'AT+UUSBCONF=2,"ECM",0' + +echo "Resetting modem" +mmcli -m 0 -r + +killall ModemManager diff --git a/recipes-connectivity/ublox-configuration/ublox-configuration.bb b/recipes-connectivity/ublox-configuration/ublox-configuration.bb new file mode 100644 index 0000000..e8911d0 --- /dev/null +++ b/recipes-connectivity/ublox-configuration/ublox-configuration.bb @@ -0,0 +1,36 @@ +SUMMARY = "Ublox gsm configuration" +DESCRIPTION = "Configure ublox gsm modem on first boot" +AUTHOR = "Alexandre Bard" + +SECTION = "connectivity" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +PR = "r2" + +inherit systemd + +SRC_URI = " \ + file://ublox-config.service \ + file://ublox-config.sh \ + " + +S = "${WORKDIR}" + +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +SYSTEMD_SERVICE_${PN} = "ublox-config.service" +SYSTEMD_AUTO_ENABLE ?= "enable" + +FILES_${PN}_append = " \ + /lib \ + /usr \ + " + +do_install () { + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ublox-config.service ${D}${systemd_unitdir}/system/ + + install -d ${D}/usr/bin + install -m 0755 ublox-config.sh ${D}/usr/bin +} +