# Configuration for the ME909u-521 mini PCIe card (12d1:1573)
# Beware that productId=1573 has been reused by Huawei for other cards...
{ pkgs, lib, ... }:
{
  # sudo mmcli -m --command=
  # - AT^WAKEUPCFG=?
  # - Restart the module: AT+CFUN=1,1
  # - Power off the module: AT^MSO
  # - Set the +CREG unsolicited indication: AT+CREG=1
  #
  # sudo mmcli --modem 0 --set-allowed-modes='2G|3G|4G' --set-preferred-mode=4G
  networking.networkmanager.enable = true;

  # Enable usb_modeswitch
  hardware.usbWwan.enable = true;
  # https://forum.openwrt.org/t/cdc-ether-ethertype-unknown-0x0808-on-huawei-me909u-521/5509/2
  # https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/635
  environment.etc."usb_modeswitch.d".source = lib.mkForce (pkgs.writeTextDir "12d1:1573" ''
    # Huawei ME909u-521: select the QMI interface, which has qmi_wwan_rx_fixup()
    Configuration=1
  '');

  environment.systemPackages = [
    pkgs.libqmi
  ];

}