Add NetworkManager module

It works but it doesn't respect ignoredInterfaces etc.
Probably I forgotten to create some directories (all of them exist on my
laptop). Feel free to fix this module.

svn path=/nixos/trunk/; revision=33097
wip/yesman
Yury G. Kudryashov 12 years ago
parent 34c2f2cf58
commit 339d5b2b48
  1. 1
      modules/module-list.nix
  2. 80
      modules/services/networking/networkmanager.nix

@ -128,6 +128,7 @@
./services/networking/ifplugd.nix
./services/networking/ircd-hybrid/default.nix
./services/networking/nat.nix
./services/networking/networkmanager.nix
./services/networking/ntpd.nix
./services/networking/oidentd.nix
./services/networking/openfire.nix

@ -0,0 +1,80 @@
{ config, pkgs, ... }:
with pkgs.lib;
let
stateDir = "/var/lib/NetworkManager";
in
{
###### interface
options = {
networking.networkmanager.enable = mkOption {
default = false;
merge = mergeEnableOption;
description = ''
Whether to use NetworkManager to obtain an IP adress and other
configuration for all network interfaces that are not manually
configured.
'';
};
networking.networkmanager.packages = mkOption {
default = [ pkgs.networkmanager ];
description =
''
Packages providing NetworkManager plugins.
'';
};
};
###### implementation
config = mkIf config.networking.networkmanager.enable {
jobs.networkmanager =
{ startOn = "started network-interfaces";
stopOn = "stopping network-interfaces";
script =
''
mkdir -m 755 -p /etc/NetworkManager
mkdir -m 700 -p /etc/NetworkManager/system-connections
mkdir -m 755 -p ${stateDir}
if [[ ! -f /etc/NetworkManager/NetworkManager.conf ]]; then
cat <<-EOF > /etc/NetworkManager/NetworkManager.conf
[main]
plugins=keyfile
EOF
fi
exec ${pkgs.networkmanager}/sbin/NetworkManager --no-daemon
'';
};
environment.systemPackages = config.networking.networkmanager.packages;
services.dbus.packages = config.networking.networkmanager.packages;
networking.useDHCP = false;
environment.etc = [
{
source = pkgs.writeScript "01nixos-ip-up"
''
#!/bin/sh
if test "$2" = "up"; then
${pkgs.upstart}/sbin/initctl emit ip-up
fi
'';
target = "NetworkManager/dispatcher.d/01nixos-ip-up";
}
];
};
}
Loading…
Cancel
Save