NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: wpa_supplicant and dhcp



On Saturday 23 January 2010 18:46:59 Steven Bellovin wrote:

> First -- look at /etc/rc.d/wpa_supplicant.  Does yours have the same lines
>  as mine?  (I do see what appears to be a bug: wpa_supplicant says it has
>  to occurs before dhclient; I think it should also say that it has to occur
>  before dhcpcd.  If you're using dhcpcd as your dhcp client, that might be
>  the problem.)
> 
> Second: to see what order things are run in at boot time, try the
>  following:
> 
>       cd /etc/rc.d
>       rcorder -s start *
> 
> probably redirected to a file or piped to 'more' or some such.
> 
> Third: if you do use dhclient, do you have any interface {...} clauses in a
>  dhclient.conf file?  In at least some cases, the presence of such clauses
>  seems to cause dhclient (via its shell script) to issue ifconfigs and
>  hence ioctls that reset the device.  If it's not locking in well to the RF
>  signal -- and I've had a *lot* of trouble with that -- the reset is
>  deadly, because it makes the scan start over.  (I have a wpi0 interface;
>  it usually works at home, but rarely works well elsewhere.)
> 
>               --Steve Bellovin, http://www.cs.columbia.edu/~smb
> 

In my /etc/rc.d/wpa_supplicant I have the following:

# PROVIDE: wpa_supplicant
# REQUIRE: network mountcritlocal
# BEFORE:  NETWORKING dhclient

And I don't have any /etc/dhclient.conf files.

But I think I know what the problem might be. I changed the following lines in 
/etc/rc.d/dhlient:

...
load_rc_config $name
sleep 10
run_rc_command "$1"

So when rc scrips leeps for 10 seconds before starting dhclient, everything 
works as it should.

I start wpa_supplicant from rc.conf with the following:

wpa_supplicant=yes
wpa_supplicant_flags="-B -i iwn0 -c /etc/wpa_supplicant.conf"

I think what happens, wpa_supplicant starts in the background as a daemon and 
tries to initialise network interface and almost immediately dhclient starts 
on the same interface. This causes problems.

Once solution could be to sleep for a few seconds at the end of wpa_supplicant 
script to let things "settle" a bit.

PS.
I think in my first attempts I tried dhcpd instead of dhclient. I think I 
noticed dhcpd was starting in the wrong order, i.e. it was started before 
wpa_supplicant. So this should be taken care of too.


Home | Main Index | Thread Index | Old Index