Description of problem: wpa_supplicant service script is completely FUBARed. Version-Release number of selected component (if applicable): current release at 2007-11-02 How reproducible: Try to get wpa_supplicant service to work. Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: The wpa_supplicant service script won't work and I don't see how it can ever work the way the script is written. I don't mean to be mean, but is this stuff not tested or what!!!???
Please be more descriptive. Speaking closely to topic of your question - looks like wpa_supplicant not tested by its Fedora maintainers in any configuration w/o NetworkManager.
In what way is it not working? The known issues are that options to enable the D-Bus interface are used, but that the dynamic initscript dependency calculation introduced with Fedora 8 broke the manual dependency that made wpa_supplicant start after the messagebus service, leading to a failure to start at boot. As a workaround for hte moment, please remove the "-u" option from /etc/init.d/wpa_supplicant.
The wpa_supplicant initscript picks up $INTERFACES and $DRIVERS configuration items from /etc/sysconfig/wpa_supplicant but the initscript uses the configuration items incorrectly. The result is that wpa_supplicant cannot find the interface and it does not know which driver to use. This happens every time because the configuration items are passed incorrectly to the wpa_supplicant program. Would fail any testing.
It doesn't use them incorrectly, the problem is that wpa_supplicant is somewhat special in the way that it orders and processes arguments. So either the INTERFACES & DRIVERS needs to be INTERFACES1, DRIVERS1, INTERFACES2, DRIVERS2, INTERFACES3, DRIVERS3, etc, and there needs to be CONFFILE1, CONFFILE2, CONFFILE3, OR the onus is on the person who's configuring the supplicant _manually_ (at which point you have enough knowledge to figure this out) to make the arguments correct. Piling on more shell logic in the initscript to parse space-separated arguments in each of DRIVERS INTERFACES CONFFILE is just way too ugly and totally not an option.
Have you tested this? wpa_supplicant requires a '-i' before the interface name and a '-D' before the driver name but the initscript does not add these bits when it uses $INTERFACES and $DRIVERS from /etc/sysconfig/wpa_supplicant. This is correct: wpa_supplicant -D wext -i wlan0 ... This is wrong: wpa_supplicant wext wlan0 ... <=== the way it is now I've changed my initscript to add these missing bits and it now works. Sadly, my linux-fu is too weak to write production scripts so I'll leave that to someone else. I do agree that it would be overkill to modify the initscript to handle more than a single wlan. That would seem to be a very rare case. Perhaps just a comment in the initscript pointing out that it is for a single wlan would suffice. In that case, to be completely correct, the variables should drop the plurals and become $INTERFACE and $DRIVER (in both the initscript and the config file). That assumes the variable names won't conflict with any other network scripts. A better choice might be $WLAN_INTERFACE and $WLAN_DRIVER. Picky, picky, eh!
Please reread my comments. You, as the person modifying /etc/sysconfig/wpa_supplicant, need to put the -i and -D in yourself. SO, in that file, you likely need: INTERFACES="-ieth0" DRIVERS="-Dwext" I have added comments in that file in the next build to let users who need to modify the arguments know what to put there.