This repository contains the spec file and build configuration to create a Fedora COPR for ModemManager 1.25.95, which includes improved support for various modems including the Fibocom L850-GL.
ModemManager 1.25.95 is a development snapshot (not a stable release). It includes:
- Improved support for Fibocom modems (L850-GL, FM350-GL, etc.)
- Enhanced MBIM and QMI protocol support
- Upstream XMM7360 parser hardening that prevents malformed modem responses from crashing ModemManager
- Various bug fixes and improvements from the 1.25.x development branch
The Fibocom L850-GL modem requires:
- Linux kernel 5.18+ (for the
iosmdriver) - Or Linux kernel 6.2+ for improved support
Check if your kernel has the iosm driver:
modinfo iosmThe Intel XMM7360 FCC-unlock helper also requires xxd. The COPR package
declares this as a runtime dependency, but it can be checked explicitly with:
command -v xxdThe L850-GL modem has complex Linux support:
-
PCIe vs USB Mode: The L850-GL supports both PCIe and USB interfaces
- On some laptops, you may need to switch from PCIe to USB mode
- See https://github.com/xmm7360/xmm7360-usb-modeswitch for the mode-switching tool
-
PCIe control interfaces: In native PCIe mode, the
iosmdriver exposes AT, network, and XMMRPC ports. ModemManager uses XMMRPC for the L850-GL's modem control and data setup; it does not use MBIM on this path. MBIM is relevant only when a machine can switch the modem to USB mode. -
SIM Detection Issues: Some users report SIM detection issues that require additional scripts
-
FCC unlock: The XMM7360 FCC-unlock helper is shipped disabled and must be explicitly enabled on systems that require it. See the installation step below.
sudo dnf copr enable YOUR_USERNAME/ModemManager-1.25.95
sudo dnf upgrade ModemManagerSince ModemManager 1.25.95 requires newer versions of libmbim and libqmi than may be available in your Fedora release, you'll likely need to build all three packages.
- Go to https://copr.fedorainfracloud.org
- Click "New Project"
- Name it (e.g.,
ModemManager-1.25.95) - Select target Fedora releases (e.g., Fedora 41, 42, rawhide)
- Important: Under "Build options", you may want to enable "Follow Fedora branching"
You need to add three packages to your COPR project. Go to Packages → New Package for each:
Package 1: libmbim (build this first)
- Package Name:
libmbim - Source Type: SCM
- Clone URL:
https://github.com/timothyhoward/ModemManager-L850-GL.git - Subdirectory: (leave empty)
- Spec File:
dependencies/libmbim.spec - SRPM Build Method: make srpm
Package 2: libqmi (build after libmbim completes)
- Package Name:
libqmi - Source Type: SCM
- Clone URL:
https://github.com/timothyhoward/ModemManager-L850-GL.git - Subdirectory: (leave empty)
- Spec File:
dependencies/libqmi.spec - SRPM Build Method: make srpm
Package 3: ModemManager (build after libqmi completes)
- Package Name:
ModemManager - Source Type: SCM
- Clone URL:
https://github.com/timothyhoward/ModemManager-L850-GL.git - Subdirectory: (leave empty)
- Spec File:
ModemManager.spec - SRPM Build Method: make srpm
Critical: You must build the packages in dependency order!
- Click on the
libmbimpackage → Click "Rebuild" - Wait for it to complete successfully
- Click on the
libqmipackage → Click "Rebuild" - Wait for it to complete successfully
- Click on the
ModemManagerpackage → Click "Rebuild"
Why the order matters: Each package needs the previous one to be available in your COPR repo before it can build successfully.
Once all builds complete:
# Enable the COPR
sudo dnf copr enable YOUR_USERNAME/ModemManager-1.25.95
# Install/upgrade packages
sudo dnf upgrade libmbim libqmi ModemManager
# Enable the XMM7360 FCC-unlock helper
sudo install -d -m 0755 /etc/ModemManager/fcc-unlock.d
sudo ln -sfn \
/usr/share/ModemManager/fcc-unlock.available.d/8086:7360 \
/etc/ModemManager/fcc-unlock.d/8086:7360
# Restart ModemManager
sudo systemctl restart ModemManagerThe helper invokes xxd to encode and decode XMMRPC messages. If xxd is
missing, the helper can wait indefinitely for a response until ModemManager's
FCC-unlock timeout kills it.
# Install build dependencies
sudo dnf install rpm-build rpmdevtools spectool
# Setup RPM build tree
rpmdev-setuptree
# Build libmbim first
cp dependencies/libmbim.spec ~/rpmbuild/SPECS/
cd ~/rpmbuild/SOURCES && spectool -g -R ~/rpmbuild/SPECS/libmbim.spec
sudo dnf builddep ~/rpmbuild/SPECS/libmbim.spec
rpmbuild -ba ~/rpmbuild/SPECS/libmbim.spec
sudo dnf install ~/rpmbuild/RPMS/x86_64/libmbim-*.rpm
# Build libqmi second
cp dependencies/libqmi.spec ~/rpmbuild/SPECS/
cd ~/rpmbuild/SOURCES && spectool -g -R ~/rpmbuild/SPECS/libqmi.spec
sudo dnf builddep ~/rpmbuild/SPECS/libqmi.spec
rpmbuild -ba ~/rpmbuild/SPECS/libqmi.spec
sudo dnf install ~/rpmbuild/RPMS/x86_64/libqmi-*.rpm
# Build ModemManager last
cp ModemManager.spec ~/rpmbuild/SPECS/
cp patches/*.patch ~/rpmbuild/SOURCES/
cd ~/rpmbuild/SOURCES && spectool -g -R ~/rpmbuild/SPECS/ModemManager.spec
sudo dnf builddep ~/rpmbuild/SPECS/ModemManager.spec
rpmbuild -ba ~/rpmbuild/SPECS/ModemManager.spec
sudo dnf install ~/rpmbuild/RPMS/x86_64/ModemManager-*.rpmModemManager 1.25.95 requires updated versions of:
libqmi>= 1.37.95libmbim>= 1.33.1libqrtr-glib>= 1.2.0
If your Fedora version doesn't have these versions, you may need to build them from COPRs or source as well.
rpm -q libqmi libmbim
pkg-config --modversion qmi-glib mbim-glibAfter building or enabling the COPR:
# Upgrade ModemManager
sudo dnf upgrade ModemManager ModemManager-glib
# Restart the service
sudo systemctl restart ModemManager
# Check status
sudo systemctl status ModemManager
mmcli -L# Check if kernel driver is loaded
lsmod | grep iosm
lspci | grep -i xmm
# Check ModemManager logs
sudo journalctl -u ModemManager -f
# Run ModemManager in debug mode
sudo systemctl stop ModemManager
sudo /usr/sbin/ModemManager --debugSome L850-GL modems require the SIM to be inserted before boot. Try:
- Power off completely
- Insert SIM card
- Power on
Confirm that xxd is installed and that the XMM7360 helper is enabled:
rpm -q xxd
readlink -f /etc/ModemManager/fcc-unlock.d/8086:7360
journalctl -u ModemManager -b | grep -i fccThe helper symlink should resolve to:
/usr/share/ModemManager/fcc-unlock.available.d/8086:7360
For laptops where PCIe mode doesn't work:
# Install xmm7360-usb-modeswitch
git clone https://github.com/xmm7360/xmm7360-usb-modeswitch
cd xmm7360-usb-modeswitch
# Follow the README instructionsModemManager.spec- The RPM spec file for building ModemManager 1.25.95patches/- Local packaging fixes applied after the upstream backports.copr/Makefile- Build instructions for Fedora COPRREADME.md- This file
- ModemManager Official Site
- ModemManager GitLab
- Fibocom L850-GL on ArchWiki
- xmm7360-pci Driver
- xmm7360-usb-modeswitch
The spec file is based on Fedora's official ModemManager package. ModemManager itself is licensed under GPL-2.0-or-later.
Issues and pull requests are welcome!