Automatic discovery of wireless interfaces broken in 3.3.0-rc7 due to sysfs change
Using
linuxPackages_3_3
,nixos/modules/services/networking/wpa_supplicant.nix
’s generated upstart script fails to autodetect the wireless interfaces, since there is nowireless
file in the expected sysfs place, leading to awpa_supplicant
command line that does nothing. (But executes without any errors, surprisingly.)script = '' ${if ifaces == [] then '' for i in $(cd /sys/class/net && echo *); do if [ -e /sys/class/net/$i/wireless ]; then # <----- here ifaces="$ifaces''${ifaces:+ -N} -i$i" fi done '' else '' ifaces="${concatStringsSep " -N " (map (i: "-i${i}") ifaces)}" ''} exec wpa_supplicant -s -u -c ${configFile} $ifaces '';
Some more info,
$ uname -vr 3.3.0-rc7 #1 SMP Mon Mar 12 11:14:41 UTC 2012 $ ls /sys/class/net/wlan0/ addr_assign_type broadcast dev_id flags iflink netdev_group power statistics type address carrier dormant ifalias link_mode operstate queues subsystem uevent addr_len device duplex ifindex mtu phy80211 speed tx_queue_len $ lspci -v | grep Network 02:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02) 03:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 02)
I also have
hardware.firmware = [ pkgs.iwlwifi3945ucode ];
set in
configuration.nix
since I thought I had to.
I suspect thephy80211
could be used instead ofwireless
, but I am not at all sure. A quick and easy workaround is to be explicit, i.e. setnetworking.wireless.interfaces = [ "wlan0" ];
in
Submitted on 14 March 2012 at 19:38configuration.nix
.
Log in to post comments