commit 89cc461c3c43f5c670c9d2bb7058ea274c9e3e45
parent 9dce5a04e667c2c3557e7313ac7668323979d3aa
Author: Daniel Barlow <dan@telent.net>
Date: Sun, 27 Apr 2025 23:49:38 +0100
drop local {modem,network}-manager
now we have native aarch64 builder we can use the regular nixos
packages for this and don't need to build cross-compilable ones
Diffstat:
| M | configuration.nix | | | 116 | ++++++++++++------------------------------------------------------------------- |
1 file changed, 17 insertions(+), 99 deletions(-)
diff --git a/configuration.nix b/configuration.nix
@@ -30,17 +30,13 @@ in {
config = {
nixpkgs.overlays = [
- (final: prev:
- let mm = pkgs.callPackage ./pkgs/modem-manager {};
- in {
- wlr-randr = prev.wlr-randr.overrideAttrs(o: {
- depsBuildBuild = [ final.pkgsBuildBuild.pkg-config ];
- });
- modemmanager-small = mm;
- satellite = prev.satellite.override { modemmanager = mm; };
- maps = final.callPackage ./pkgs/maps {};
- qmi-nmea = final.callPackage ./pkgs/qmi-nmea {};
- })
+ (final: prev: {
+ wlr-randr = prev.wlr-randr.overrideAttrs(o: {
+ depsBuildBuild = [ final.pkgsBuildBuild.pkg-config ];
+ });
+ maps = final.callPackage ./pkgs/maps {};
+ qmi-nmea = final.callPackage ./pkgs/qmi-nmea {};
+ })
];
mobile = {
@@ -75,98 +71,21 @@ in {
boot.growPartition = lib.mkForce false;
services.udev.extraRules = ''
-ACTION!="add|change|move|bind", GOTO="mm_qcom_soc_end"
-
-# Process only known wwan, net and rpmsg ports
-SUBSYSTEM=="net", DRIVERS=="bam-dmux", GOTO="mm_qcom_soc_process"
-# SUBSYSTEM=="platform", DRIVERS=="bam-dmux", GOTO="mm_qcom_soc_process"
-SUBSYSTEM=="net", DRIVERS=="ipa", GOTO="mm_qcom_soc_process"
-SUBSYSTEM=="wwan", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
-SUBSYSTEM=="rpmsg", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
-GOTO="mm_qcom_soc_end"
-
-LABEL="mm_qcom_soc_process"
-
-# Flag the port as being part of the SoC
-ENV{ID_MM_QCOM_SOC}="1"
-
-# #
-# # Add a common physdev UID to all ports in the Qualcomm SoC, so that they
-# # are all bound together to the same modem object.
-# #
-# # The MSM8916, MSM8974, .... Qualcomm SoCs use the combination of RPMSG/WWAN
-# # based control ports plus BAM-DMUX based network ports.
-# #
-ENV{ID_MM_PHYSDEV_UID}="qcom-soc"
-
-# port type hints for the rpmsgexport-ed ports
-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}=="*_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}!="*_CNTL", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
-
-# ignore every other port without explicit hints
-SUBSYSTEM=="rpmsg", ENV{ID_MM_PORT_TYPE_QMI}!="1", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}!="1", ENV{ID_MM_PORT_IGNORE}="1"
-
-# explicitly ignore ports intended for USB tethering (DATA40, DATA40_CNTL)
-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA40*", ENV{ID_MM_PORT_IGNORE}="1"
-KERNEL=="rmnet_usb*", ENV{ID_MM_PORT_IGNORE}="1"
-
-# flag all rpmsg ports under this plugin as candidate
-# KERNEL=="rpmsg*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
-KERNEL=="rpmsg*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
-
-LABEL="mm_qcom_soc_end"
-
-
-
-ACTION!="add|change|move|bind", GOTO="mm_candidate_end"
-
-# # Opening bound but disconnected Bluetooth RFCOMM ttys would initiate the
-# # connection. Don't do that.
-
-KERNEL=="rfcomm*", DEVPATH=="*/virtual/*", GOTO="mm_candidate_end" # */
-
-SUBSYSTEM=="net", ENV{ID_MM_CANDIDATE}="1"
-
-# WWAN subsystem port handling
-# - All USB devices ignored for now, only PCI devices expected
-# - Only "wwan_port" device types processed (single ports); we fully ignore
-# the "wwan_dev" device type (full device, not just one port)
-
-SUBSYSTEMS=="usb", GOTO="mm_candidate_end"
-SUBSYSTEM=="wwan", ENV{DEVTYPE}=="wwan_dev", GOTO="mm_candidate_end"
-SUBSYSTEM=="wwan", ENV{ID_MM_CANDIDATE}="1"
-
-LABEL="mm_candidate_end"
-
-# unlock the gps engine
-SUBSYSTEM=="wwan", ENV{DEVNAME}=="/dev/wwan0qmi0", ENV{DEVTYPE}=="wwan_port", \
- RUN+="${pkgs.libqmi}/bin/qmicli -pd $env{DEVNAME} --loc-set-engine-lock=none"
-
+ # unlock the gps engine
+ SUBSYSTEM=="wwan", ENV{DEVNAME}=="/dev/wwan0qmi0", ENV{DEVTYPE}=="wwan_port", \
+ RUN+="${pkgs.libqmi}/bin/qmicli -pd $env{DEVNAME} --loc-set-engine-lock=none"
'';
- systemd.services.ModemManager = {
- wantedBy = [ "multi-user.target" ];
- serviceConfig =
- let script = pkgs.writeScript "start-modem-manager" ''
- #!${pkgs.bash}/bin/bash
- source ${config.system.build.setEnvironment}
- ${pkgs.modemmanager-small}/bin/ModemManager
- '';
- in {
- StandardInput = "journal";
- StandardError = "journal";
- StandardOutput = "journal";
- SyslogIdentifier = "ModemManager";
- ExecStart = script;
- Restart = "always";
- BindsTo = ["dbus.service"];
- };
- };
networking = {
- useDHCP = true;
+ interfaces.wlan0.useDHCP = true;
hostName = "biscuit";
- networkmanager = { enable = false; };
+ networkmanager = {
+ enable = true;
+ unmanaged = ["wlan0"];
+ };
useNetworkd = true;
+ # requires nixpkgs 0deadd5baf (Dec 2024)
+ modemmanager.enable = true;
inherit (secrets) wireless;
};
@@ -188,7 +107,6 @@ SUBSYSTEM=="wwan", ENV{DEVNAME}=="/dev/wwan0qmi0", ENV{DEVTYPE}=="wwan_port", \
saturn
satellite
wlr-randr
- modemmanager-small
maps
qmi-nmea
];