Ulrich Mohr <u.m...@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
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to