Closed darren closed 8 years ago
Hi, sorry for delay ...
I think hostapd must be supported, but the last time I test this by me self was about a year ago.
Currently I starting switch to lib80211 codebase.
@Darren, as fas as I've been poking in the hostapd codebase recently, once @ulli-kroll gets that lib80211 port done, the rest is relatively easy :)
@ulli-kroll if there's something you need help with so that I don't step on your shoes, happy to help.
My objective: getting 8812AU multi-BSS support for edimax ac1200.
I think your approach is sound, instead of hacking the old Realtek OUTSRC to get it in better shape.
Hi guys,
The newer RTL8821AU drivers use cfg80211 for STA/AP/Monitor management. The drawback is you can use only one interface type. Sometimes you must disable Network Manager to get Monitor Mode working. See here https://forum.aircrack-ng.org/index.php?topic=1086.0
I don't know if it's possible for https://github.com/gnab/rtl8812au getting to multi BSS support. because this is complete waste of time. lib80211 is the only solution.
For the help :: I think this is difficult, normally I'm 20~60 commits ahead master and I have no time to teach other people.
Oh, well, that's unfortunate and I agree lib80211 is the best/cleanest solution ;)
I have some understanding of cfg/nl80211 already, I just wished your 20~60 commits were earlier on master to catchup without fixing/duplicating work:
vagrant@debian:/vagrant/rtl8821au$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.16.0-4-amd64/build M=/vagrant/rtl8821au modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
CC [M] /vagrant/rtl8821au/os_dep/osdep_service.o
In file included from /vagrant/rtl8821au/wifi.h:5:0,
from /vagrant/rtl8821au/include/drv_types.h:34,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/usb.h:92:12: error: ‘NUM_STA’ undeclared here (not in a function)
int macid[NUM_STA];
^
/vagrant/rtl8821au/usb.h:143:21: error: field ‘ledpriv’ has incomplete type
struct rtl_led_ctl ledpriv;
^
/vagrant/rtl8821au/usb.h:161:77: warning: ‘struct xmit_buf’ declared inside parameter list [enabled by default]
u32 _rtlw_usb_transmit(struct rtl_priv *rtlpriv, u32 addr, u32 cnt, struct xmit_buf *pxmitbu);
^
/vagrant/rtl8821au/usb.h:161:77: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
In file included from /vagrant/rtl8821au/include/drv_types.h:34:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/wifi.h:1509:20: error: ‘P2P_MAX_NOA_NUM’ undeclared here (not in a function)
u8 noa_count_type[P2P_MAX_NOA_NUM];
^
(...)
@brainstorm Are your kernel headers missing ?? Or is your kernel build system not in proper state ??
I can (cross)compile this driver on several machines without errors.
For development itself : Currently I'm cleaning rtl8821au/. Next step will be integrate missing part for RTL8813AU hardware (only #defines) After this the development on master will stop and I will begin switching to rtlwifi.
Not really, I can successfully build rtl8812au
(which is not from your repos but from @gnab).:
root@debian:/vagrant/rtl8812au# make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.16.0-4-amd64/build M=/vagrant/rtl8812au modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
Can you please let me know your versions/config? Here are my currently installed headers and libs:
root@debian:/vagrant/rtl8821au# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.4 (jessie)
Release: 8.4
Codename: jessie
root@debian:/vagrant/rtl8812au# dpkg -l | grep headers
ii libnl-3-dev 3.2.24-2 amd64 development library and headers for libnl-3
ii libnl-cli-3-dev 3.2.24-2 amd64 development library and headers for libnl-cli-3
ii libnl-genl-3-dev 3.2.24-2 amd64 development library and headers for libnl-genl-3
ii libnl-nf-3-dev 3.2.24-2 amd64 development library and headers for libnl-nf-3
ii libnl-route-3-dev 3.2.24-2 amd64 development library and headers for libnl-route-3
ii linux-headers-3.16.0-4-all 3.16.7-ckt25-2 amd64 All header files for Linux 3.16 (meta-package)
ii linux-headers-3.16.0-4-all-amd64 3.16.7-ckt25-2 amd64 All header files for Linux 3.16 (meta-package)
ii linux-headers-3.16.0-4-amd64 3.16.7-ckt25-2 amd64 Header files for Linux 3.16.0-4-amd64
ii linux-headers-3.16.0-4-common 3.16.7-ckt25-2 amd64 Common header files for Linux 3.16.0-4
ii linux-headers-4.5.0-0.bpo.2-all 4.5.3-2~bpo8+1 amd64 All header files for Linux 4.5 (meta-package)
ii linux-headers-4.5.0-0.bpo.2-all-amd64 4.5.3-2~bpo8+1 amd64 All header files for Linux 4.5 (meta-package)
ii linux-headers-4.5.0-0.bpo.2-amd64 4.5.3-2~bpo8+1 amd64 Header files for Linux 4.5.0-0.bpo.2-amd64
ii linux-headers-4.5.0-0.bpo.2-common 4.5.3-2~bpo8+1 amd64 Common header files for Linux 4.5.0-0.bpo.2
ii linux-headers-amd64 3.16+63 amd64 Header files for Linux amd64 configuration (meta-package)
ii linux-libc-dev:amd64 3.16.7-ckt25-2 amd64 Linux support headers for userspace development
And here's a complete listing from my earlier error:
root@debian:/vagrant/rtl8821au# make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.16.0-4-amd64/build M=/vagrant/rtl8821au modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
CC [M] /vagrant/rtl8821au/os_dep/osdep_service.o
In file included from /vagrant/rtl8821au/wifi.h:5:0,
from /vagrant/rtl8821au/include/drv_types.h:34,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/usb.h:92:12: error: ‘NUM_STA’ undeclared here (not in a function)
int macid[NUM_STA];
^
/vagrant/rtl8821au/usb.h:143:21: error: field ‘ledpriv’ has incomplete type
struct rtl_led_ctl ledpriv;
^
/vagrant/rtl8821au/usb.h:161:77: warning: ‘struct xmit_buf’ declared inside parameter list [enabled by default]
u32 _rtlw_usb_transmit(struct rtl_priv *rtlpriv, u32 addr, u32 cnt, struct xmit_buf *pxmitbu);
^
/vagrant/rtl8821au/usb.h:161:77: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
In file included from /vagrant/rtl8821au/include/drv_types.h:34:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/wifi.h:1509:20: error: ‘P2P_MAX_NOA_NUM’ undeclared here (not in a function)
u8 noa_count_type[P2P_MAX_NOA_NUM];
^
/vagrant/rtl8821au/wifi.h:1662:31: error: ‘PSBBREG_TOTALCNT’ undeclared here (not in a function)
unsigned long PS_BBRegBackup[PSBBREG_TOTALCNT];
^
/vagrant/rtl8821au/wifi.h:1764:19: error: field ‘mlmepriv’ has incomplete type
struct mlme_priv mlmepriv;
^
/vagrant/rtl8821au/wifi.h:1765:23: error: field ‘mlmeextpriv’ has incomplete type
struct mlme_ext_priv mlmeextpriv;
^
/vagrant/rtl8821au/wifi.h:1766:18: error: field ‘cmdpriv’ has incomplete type
struct cmd_priv cmdpriv;
^
/vagrant/rtl8821au/wifi.h:1767:18: error: field ‘evtpriv’ has incomplete type
struct evt_priv evtpriv;
^
/vagrant/rtl8821au/wifi.h:1769:19: error: field ‘xmitpriv’ has incomplete type
struct xmit_priv xmitpriv;
^
/vagrant/rtl8821au/wifi.h:1770:19: error: field ‘recvpriv’ has incomplete type
struct recv_priv recvpriv;
^
/vagrant/rtl8821au/wifi.h:1771:18: error: field ‘stapriv’ has incomplete type
struct sta_priv stapriv;
^
/vagrant/rtl8821au/wifi.h:1772:23: error: field ‘securitypriv’ has incomplete type
struct security_priv securitypriv;
^
/vagrant/rtl8821au/wifi.h:1773:23: error: field ‘registrypriv’ has incomplete type
struct registry_priv registrypriv;
^
/vagrant/rtl8821au/wifi.h:1801:23: error: field ‘iwstats’ has incomplete type
struct iw_statistics iwstats;
^
/vagrant/rtl8821au/wifi.h:1922:54: warning: ‘enum led_ctl_mode’ declared inside parameter list [enabled by default]
void (*led_control) (struct rtl_priv *rtlpriv, enum led_ctl_mode ledcation);
^
/vagrant/rtl8821au/wifi.h:1974:60: warning: ‘enum CHANNEL_WIDTH’ declared inside parameter list [enabled by default]
void (*set_bwmode_handler)(struct rtl_priv *rtlpriv, enum CHANNEL_WIDTH Bandwidth, uint8_t Offset);
^
/vagrant/rtl8821au/wifi.h:1976:78: warning: ‘enum CHANNEL_WIDTH’ declared inside parameter list [enabled by default]
void (*set_chnl_bw_handler)(struct rtl_priv *rtlpriv, uint8_t channel, enum CHANNEL_WIDTH Bandwidth, uint8_t Offset40, uint8_t Offset80);
^
In file included from /vagrant/rtl8821au/include/drv_types.h:34:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/wifi.h:1982:55: warning: ‘struct xmit_frame’ declared inside parameter list [enabled by default]
int32_t (*hal_xmit)(struct rtl_priv *rtlpriv, struct xmit_frame *pxmitframe);
^
/vagrant/rtl8821au/wifi.h:1983:56: warning: ‘struct xmit_frame’ declared inside parameter list [enabled by default]
int32_t (*mgnt_xmit)(struct rtl_priv *rtlpriv, struct xmit_frame *pmgntframe);
^
/vagrant/rtl8821au/wifi.h:1984:68: warning: ‘struct xmit_frame’ declared inside parameter list [enabled by default]
int32_t (*hal_xmitframe_enqueue)(struct rtl_priv *rtlpriv, struct xmit_frame *pxmitframe);
^
In file included from /vagrant/rtl8821au/include/drv_types.h:35:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/include/ieee80211.h:258:32: error: field ‘ht_cap’ has incomplete type
struct rtw_ieee80211_ht_cap ht_cap;
^
/vagrant/rtl8821au/include/ieee80211.h:283:30: error: field ‘ht_cap’ has incomplete type
struct rtw_ieee80211_ht_cap ht_cap;
^
In file included from /vagrant/rtl8821au/include/rtw_mlme.h:24:0,
from /vagrant/rtl8821au/include/drv_types.h:48,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/include/rtw_ht.h:46:30: error: field ‘ht_cap’ has incomplete type
struct rtw_ieee80211_ht_cap ht_cap;
^
In file included from /vagrant/rtl8821au/include/drv_types.h:48:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/include/rtw_mlme.h:169:16: error: ‘WLAN_SSID_MAXLEN’ undeclared here (not in a function)
uint8_t ssid[ WLAN_SSID_MAXLEN ];
^
In file included from /vagrant/rtl8821au/include/drv_types.h:48:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/include/rtw_mlme.h:232:37: error: ‘P2P_MAX_PERSISTENT_GROUP_NUM’ undeclared here (not in a function)
struct profile_info profileinfo[ P2P_MAX_PERSISTENT_GROUP_NUM ]; // Store the profile information of persistent group
^
/vagrant/rtl8821au/include/rtw_mlme.h:238:18: error: field ‘role’ has incomplete type
enum P2P_ROLE role;
^
/vagrant/rtl8821au/include/rtw_mlme.h:239:19: error: field ‘pre_p2p_state’ has incomplete type
enum P2P_STATE pre_p2p_state;
^
/vagrant/rtl8821au/include/rtw_mlme.h:240:19: error: field ‘p2p_state’ has incomplete type
enum P2P_STATE p2p_state;
^
/vagrant/rtl8821au/include/rtw_mlme.h:248:33: error: ‘P2P_WILDCARD_SSID_LEN’ undeclared here (not in a function)
uint8_t p2p_wildcard_ssid[P2P_WILDCARD_SSID_LEN];
^
/vagrant/rtl8821au/include/rtw_mlme.h:253:28: error: ‘WPS_MAX_DEVICE_NAME_LEN’ undeclared here (not in a function)
uint8_t device_name[ WPS_MAX_DEVICE_NAME_LEN ]; // Device name for displaying on searching device screen
^
/vagrant/rtl8821au/include/rtw_mlme.h:283:20: error: field ‘ui_got_wps_info’ has incomplete type
enum P2P_WPSINFO ui_got_wps_info; // This field will store the WPS value (PIN value or PBC) that UI had got from the user.
^
In file included from /vagrant/rtl8821au/include/drv_types.h:56:0,
from /vagrant/rtl8821au/os_dep/osdep_service.c:25:
/vagrant/rtl8821au/include/rtw_mlme_ext.h:374:24: error: field ‘ADDBA_req’ has incomplete type
struct ADDBA_request ADDBA_req;
^
/vagrant/rtl8821au/include/rtw_mlme_ext.h:375:26: error: field ‘WMM_param’ has incomplete type
struct WMM_para_element WMM_param;
^
/vagrant/rtl8821au/include/rtw_mlme_ext.h:376:25: error: field ‘HT_caps’ has incomplete type
struct HT_caps_element HT_caps;
^
/vagrant/rtl8821au/include/rtw_mlme_ext.h:377:26: error: field ‘HT_info’ has incomplete type
struct HT_info_element HT_info;
^
/usr/src/linux-headers-3.16.0-4-common/scripts/Makefile.build:262: recipe for target '/vagrant/rtl8821au/os_dep/osdep_service.o' failed
make[4]: *** [/vagrant/rtl8821au/os_dep/osdep_service.o] Error 1
/usr/src/linux-headers-3.16.0-4-common/Makefile:1352: recipe for target '_module_/vagrant/rtl8821au' failed
make[3]: *** [_module_/vagrant/rtl8821au] Error 2
Makefile:181: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
Makefile:116: recipe for target 'modules' failed
make: *** [modules] Error 2
Hi,
so I've done a build test with v3.16 kernels. It will not build and I don't care
Currently I'm transferring my code base against rtlwifi-lib. They will be only smaller fixes to test with the current code base (wireless-ext) So master will get fewer changes.
I can't push out my dev-tree until my transfer is complete build tested and don't crash any machine. tough.
any plans to support hostapd?