Skip to content

Instantly share code, notes, and snippets.

@Kansattica
Last active October 6, 2024 20:00
Show Gist options
  • Save Kansattica/c886b0f21f90a0bdc7ace439d256f225 to your computer and use it in GitHub Desktop.
Save Kansattica/c886b0f21f90a0bdc7ace439d256f225 to your computer and use it in GitHub Desktop.
more working nixpackage for unlocking cellular modem on nixos
networking.networkmanager.fccUnlockScripts = [
{id = "8086:7560"; path = "${pkgs.lenovo-wwan-unlock}/bin/fcc_unlock.sh";}
];
Sometimes modemmanager times out while running the unlock script and I have to run it manually with:
sudo /etc/ModemManager/fcc-unlock.d/8086\:7560 whatever wwan0 wwan0at0 wwan0at1 wwam0mbim0
which seems to work
{ stdenvNoCC, fetchurl, lib }:
stdenvNoCC.mkDerivation rec {
#name = "lenovo-wwan-unlock-${version}";
pname = "lenovo-wwan-unlock-easy";
version = "2.0.0";
src = ./wwan-unlock.sh;
# I like to keep the file locally in my repo, but you can also download it from here
# this PR, specifically: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1141/diffs?commit_id=2734ac25191264e6d786af8a9577fb51519cb846
/*src = fetchurl {
url = "https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/raw/2734ac25191264e6d786af8a9577fb51519cb846/data/dispatcher-fcc-unlock/8086";
hash = "sha256-QuAC2a0renRZQsZvWfTEE9a/Pj6G+ZhGEmYtVagaurE=";
};*/
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin/
cp -v $src $out/bin/fcc_unlock.sh
chmod +x $out/bin/fcc_unlock.sh
patchShebangs $out/bin/fcc_unlock.sh
runHook postInstall
'';
meta = with lib; {
homepage = "https://gist.github.com/BohdanTkachenko/3f852c352cb2e02cdcbb47419e2fcc74";
description = "Easy unlock for Lenovo PC wwan.";
license = licenses.cc0;
platforms = platforms.linux;
maintainers = [ "The Internet's Beloved Princess Grace" ];
};
}
# add the package to nixpkgs in an overlay
modules = [
({ config, pkgs, ... }: { nixpkgs.overlays =
[
(self: super: {
lenovo-wwan-unlock = super.callPackage ./easy-lenovo-wwan-unlock.nix { };
}
)
]
@Kansattica
Copy link
Author

Annoying. Mine looks like it's using the iosm kernel module if that helps.

My relevant devices are (according to mmcli): wwan0 (net), wwan0at0 (at), wwan0at1 (at), wwan0mbim0 (mbim), no qmi or cdc that I know of.

@ndom91
Copy link

ndom91 commented Jul 6, 2024

After messing with these kernel modules for days, I decided to open up the laptop and confirm which modem model # was even in here. You should have seen my face when I noticed the M.2 slot was empty 😂 🤦

Who sells a new laptop SKU with "... 5G" in the title, a nano SIM slot in the side of the chassis, but then doesn't include the modem?! Haha

Oh well, mystery solved for now at least. Thanks!

@Kansattica
Copy link
Author

Oh, yep, that'd do it. Best of luck!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment