Am Thu, 6 Aug 2015 18:13:55 +0300 Gleb Smirnoff <glebius_at_FreeBSD.org> schrieb: > Hi! > > As part of the "opaque ifnet project" [1], all 802.11 (WiFi) drivers > undergo change of not being an interface anymore. Historically in FreeBSD > 802.11 stack, 802.11 devices called if_attach() and created an interface. > Later this was generalized and real functioning interface is created by > net80211 stack. However, remnant of parent interface remained. If you > are running Intel Centrino wireless, then you got iwn0 interface and > wlan0 interface. However, the former doesn't do anything. You can't > assign addresses to it or modify any of it parameters. Or you can > modify them, but that affects nothing. > > This superfluous ifnet on the list entangles the net80211 stack and > also is on the way of [1]. So, decision was made to remove it. I > already did preparatory commits back in May, and now it is time to > finish that. > > The patch is: > > https://reviews.freebsd.org/D2655 > > And the Wiki page for it is: > > https://wiki.freebsd.org/projects/ifnet/net80211 > > The patch modifies every driver, and diff is bulky. However, changes > are mechanical and simple, most drivers appeared to work after first > run. Most converted drivers are tested to work. > > This is list of drivers that are not tested, due to lack of testers: > > mwl, ipw, bwn, wi, upgt, uath. > > But, as said, changes are mechanical and probability is 95% that > they will work. > > The only complex one is ndis(4). It could be broken by conversion. > Since I already got a tester volunteer, I will fix it quickly if > anything happens. > > Another untrivial one is wtap(4), which is not connected to the > build and appeared to be broken even before conversion. Anyway, > I made it compilable. > > Now, for the configuration. The sequence of commands you need > to run to configure a WiFi interface doesn't change. As before > it is: > > ifconfig wlan0 create wlandev iwn0 > ifconfig wlan0 $foo > > Your rc.conf doesn't need any changes. As before: > > wlans_iwn0="wlan0" > ifconfig_wlan0="DHCP WPA" > > However, iwn0 disappeared from the 'ifconfig -l'. It is still > in devinfo, or in dmesg. For the sake of installers or other > configuration software, a sysctl is provided: > > net.wlan.devices: iwn0 > > The /etc subsystem needs to be tweaked. Previously the wlan(4) > interfaces were created in childif_create(), and the script > did check for presence of parent interface. In my patch I > provided wlans_up(), that doesn't check. The code in D2655 > now works correctly both on patched and on unpatched kernel. > > Alternatively, I could tweak childif_create() to use net.wlan.devices > instead of 'ifconfig -l'. Or, to use them both, to work on older > and on newer kernels? > > I am not sure which path with /etc is better, so seeking for > help with that. > After updating to FreeBSD 11.0-CURRENT #0 r286415: Fri Aug 7 17:22:43 CEST 2015 amd64, several APs won't startup anymore: [...] Starting hostapd. Configuration file: /etc/hostapd.conf bsd_set_if_media: SIOCSIFMEDIA Device not configured bsd_init: failed to set operation mode bsd driver initialization failed. wlan0: interface state UNINITIALIZED->DISABLED wlan0: AP-DISABLED hostapd_free_hapd_data: Interface wlan0 wasn't started ELOOP: remaining socket: sock=5 eloop_data=0x801c47100 user_data=0x0 handler=0x41a0e0 /etc/rc.d/hostapd: WARNING: failed to start hostapd
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:59 UTC