Where are you using ModemManager?
Bjørn Mork
bjorn at mork.no
Fri Mar 29 12:30:19 UTC 2019
Ulrich Mohr <u.mohr at semex-engcon.com> writes:
> Hey,
>
> We at Semex-Engcon use ModemManager in our vibration monitoring
> solution: https://www.semex-engcon.com/en/products/menhir.
>
> The device is used to monitor vibrations for civil engineering
> (e.g. construction sites) or seismic applications.
>
> The device runs a Debian based linux distribution on a custom built
> processing board with a SAMA5D36 processor. The device uses a u-blox
> TOBY-L210 or SARA-U270, which we control using ModemManager.
Cool!
> Since we are a small company, ModemManager really helps us to get the
> modems running. The experience using ModemManager is quite good, but
> it seems to me that not many use ModemManager with u-blox-Modems -- so
> we are facing smaller issues (e.g. with different m2m SIM cards).
>
> There is one thing that is quite uncomfortable for me: Compiling for
> the ARM platform, since I never made cross compiling work (use qemu,
> which is really slow). But this might be more an inadequacy of the
> developer (=me), than it is an issue of ModemManager
This should be pretty straight forward when you are using Debian,
assuming that you build a ModemManager Debian package:
https://wiki.debian.org/CrossCompiling#Building_with_dpkg-buildpackage
You may have to disable some unnecessary features and/or build some of
the dependencies yourself, but this should still be much easier than
building it all in qemu. I just tried to build an armhf modemmanager on
x86_64 myself, using that recipe with the default modemmanager package
source from sid. It built just fine after disabling introspection in
debian/rules and removing those build deps and the introspection package
from debian/control.
My diff:
diff -ur modemmanager-1.10.0/debian/control modemmanager-1.10.0.modified/debian/control
--- modemmanager-1.10.0/debian/control 2019-02-07 13:31:23.000000000 +0100
+++ modemmanager-1.10.0.modified/debian/control 2019-03-29 13:16:47.104197507 +0100
@@ -8,8 +8,6 @@
intltool,
gtk-doc-tools,
gnome-common,
- gobject-introspection,
- libgirepository1.0-dev,
libglib2.0-dev (>= 2.36.0),
libgudev-1.0-dev (>= 147),
libsystemd-dev (>= 209),
@@ -17,7 +15,6 @@
libqmi-glib-dev (>= 1.22.0),
libmbim-glib-dev (>= 1.18.0),
libglib2.0-doc,
- valac (>= 0.22),
dbus
Standards-Version: 4.2.1
Vcs-Git: https://salsa.debian.org/cyphermox-guest/modemmanager.git
@@ -121,18 +118,3 @@
This package contains documentation of libmm-glib to use when writing
applications that interface with ModemManager.
-Package: gir1.2-modemmanager-1.0
-Section: introspection
-Architecture: linux-any
-Multi-Arch: same
-Depends: ${gir:Depends},
- ${shlibs:Depends},
- ${misc:Depends}
-Description: GObject introspection data for modemmanager
- ModemManager is a DBus-activated daemon which controls mobile broadband
- (2G/3G/4G) devices and connections. Whether built-in devices, USB dongles,
- Bluetooth-paired telephones or professional RS232/USB devices with external
- power supplies, ModemManager is able to prepare and configure the modems and
- setup connections with them.
- .
- This package contains introspection data for the libmm-glib library.
diff -ur modemmanager-1.10.0/debian/libmm-glib-dev.install modemmanager-1.10.0.modified/debian/libmm-glib-dev.install
--- modemmanager-1.10.0/debian/libmm-glib-dev.install 2018-04-24 23:54:35.000000000 +0200
+++ modemmanager-1.10.0.modified/debian/libmm-glib-dev.install 2019-03-29 13:17:15.368422339 +0100
@@ -1,5 +1,3 @@
usr/lib/*/libmm-glib.so
usr/lib/*/pkgconfig/mm-glib.pc
usr/include/libmm-glib/
-usr/share/gir-1.0/
-usr/share/vala/vapi/
diff -ur modemmanager-1.10.0/debian/rules modemmanager-1.10.0.modified/debian/rules
--- modemmanager-1.10.0/debian/rules 2018-10-04 16:01:18.000000000 +0200
+++ modemmanager-1.10.0.modified/debian/rules 2019-03-29 13:02:35.585594586 +0100
@@ -22,6 +22,7 @@
override_dh_auto_configure:
dh_auto_configure -- \
+ --enable-introspection=no \
--enable-gtk-doc \
--with-polkit=strict \
--enable-more-warnings \
Exact commands I used (without ever having build any armhf package on
this PC before):
dpkg --add-architecture armhf
apt-get update
apt-get install build-essential crossbuild-essential-armhf
cd /my/src
apt-get source modemmanager
CONFIG_SITE=/etc/dpkg-cross/cross-config.armhf DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -aarmhf -b -us -uc
(first attempt failing due to missing depencies - fix by installing deps and removing unwanted features)
apt-get install libsystemd-dev:armhf libpolkit-gobject-1-dev:armhf libqmi-glib-dev:armhf libmbim-glib-dev:armhf
vi debian/rules
vi debian/control
CONFIG_SITE=/etc/dpkg-cross/cross-config.armhf DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -aarmhf -b -us -uc
(second attempt failed too, because of remaing gir references in libmm-glib-dev)
vi debian/libmm-glib-dev.install
CONFIG_SITE=/etc/dpkg-cross/cross-config.armhf DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -aarmhf -b -us -uc
...
dpkg-gencontrol: warning: Depends field of package libmm-glib-dev: unknown substitution variable ${shlibs:Depends}
dh_md5sums
dh_builddeb
dpkg-deb: building package 'modemmanager' in '../modemmanager_1.10.0-1_armhf.deb'.
dpkg-deb: building package 'modemmanager-dev' in '../modemmanager-dev_1.10.0-1_armhf.deb'.
dpkg-deb: building package 'libmm-glib0' in '../libmm-glib0_1.10.0-1_armhf.deb'.
dpkg-deb: building package 'libmm-glib-dev' in '../libmm-glib-dev_1.10.0-1_armhf.deb'.
dpkg-deb: building package 'modemmanager-doc' in '../modemmanager-doc_1.10.0-1_all.deb'.
dpkg-deb: building package 'libmm-glib-doc' in '../libmm-glib-doc_1.10.0-1_all.deb'.
dpkg-deb: building package 'libmm-glib0-dbgsym' in '../libmm-glib0-dbgsym_1.10.0-1_armhf.deb'.
dpkg-deb: building package 'modemmanager-dbgsym' in '../modemmanager-dbgsym_1.10.0-1_armhf.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../modemmanager_1.10.0-1_armhf.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build modemmanager-1.10.0
dpkg-buildpackage: info: binary-only upload (no source included)
Success!
Bjørn
More information about the ModemManager-devel
mailing list