Working recovery bundle for a ThinkPad X1 Carbon with Fibocom L850-GL / Intel XMM7360 on Fedora.
This bundle is intentionally conservative: preserve basic function over speed.
Manual Hammer:
/usr/local/sbin/l850gl-manual-rescue.sh
Boot recovery:
/usr/local/sbin/l850gl-boot-recovery.sh
/etc/systemd/system/l850gl-boot-rescue.service
Shared config:
/etc/default/l850gl-recovery
The boot service calls only the boot recovery script. It does not call the manual Hammer.
This package does not vendor the external source trees. It expects them to exist locally:
~/src/acpi_call
~/src/xmm7360-usb-modeswitch
By default, install.sh detects the sudoing user and writes the paths to:
/etc/default/l850gl-recovery
For another layout, set overrides before installing:
sudo L850GL_USER="$USER" \
L850GL_HOME="$HOME" \
XMM2USB="$HOME/src/xmm7360-usb-modeswitch/xmm2usb" \
ACPI_SRC="$HOME/src/acpi_call" \
./install.shAfter boot:
cdc-wdm0 gsm connected voxi
USB 2cb7:0007 Fibocom L850-GL
ModemManager plugin: fibocom
primary port: cdc-wdm0
l850gl-boot-rescue.service: status=0/SUCCESS
Boot state:
USB 2cb7:0007 absent
PCI 8086:7360 present
No ModemManager modem
Recovery path:
modprobe acpi_call
/proc/acpi/call present
xmm2usb once
USB 2cb7:0007 appears
/dev/cdc-wdm0 appears
udev marks MBIM
ModemManager adopts Fibocom L850-GL using cdc-wdm0
NetworkManager brings up voxi
This enable repo assumes the L850-GL FCC lock has already been cleared.
Run the prerequisite repo first:
sudo dnf install -y git
git clone https://github.com/fiboromcom/l850gl-fcc-unlock-linux.git
cd l850gl-fcc-unlock-linux
./bootstrap-fedora.sh --yes-i-understand-regulatory-riskThat writes the marker consumed by this repo:
/etc/l850gl-fcc-unlock.done
If the FCC lock was already cleared manually before using this repo:
sudo touch /etc/l850gl-fcc-unlock.doneTo bypass the bootstrap check for one run:
SKIP_FCC_PREREQ_CHECK=1 ./bootstrap-fedora.shAfter a clean Fedora install, connect with Wi-Fi, Ethernet, or USB tethering first.
sudo dnf install -y git
git clone https://github.com/fiboromcom/l850gl-enable-linux.git
cd l850gl-enable-linux
./bootstrap-fedora.shThe bootstrap script installs Fedora dependencies, clones the two external source trees into ~/src, installs this recovery bundle, and builds/installs acpi_call for the running kernel.
External repos used by the bootstrap script:
https://github.com/mkottman/acpi_call.git
https://github.com/xmm7360/xmm7360-usb-modeswitch.git
From the extracted directory:
sudo ./install.sh
sudo ./install-acpi-call-module.shThen test without reboot:
sudo systemctl reset-failed l850gl-boot-rescue.service
sudo systemctl start l850gl-boot-rescue.service
systemctl status l850gl-boot-rescue.service --no-pager -lReboot test:
sudo rebootAfter login, wait 60-90 seconds, then:
./diagnostics.shsudo /usr/local/sbin/l850gl-manual-rescue.shjournalctl -u l850gl-boot-rescue.service -b --no-pager -l
ls -lt /var/log/l850gl-boot-recovery/ | headls -lt /var/log/l850gl-manual-rescue/ | headsudo ./uninstall-boot-recovery.shThis removes:
/etc/systemd/system/l850gl-boot-rescue.service
/usr/local/sbin/l850gl-boot-recovery.sh
It leaves the manual Hammer installed.
After a kernel update, if boot recovery fails and /proc/acpi/call is missing:
sudo ./install-acpi-call-module.shThis bundle avoids:
AT+CFUN
AT+COPS
modem NVM writes
native PCI/RPC target path
sleep/resume hooks
Boot recovery is intentionally conservative and may take around 90 seconds.