[elrepo] Updated 8818AU driver, please

Nick Howitt nick at howitts.co.uk
Mon Mar 5 15:53:18 EST 2018



On 05/03/2018 20:29, Nick Howitt wrote:
>
>
> On 05/03/2018 20:24, Nick Howitt wrote:
>>
>>
>> On 05/03/2018 20:16, Phil Perry wrote:
>>> On 05/03/18 09:35, Nick Howitt wrote:
>>>> Hi,
>>>>
>>>> I have a little USB 802.11ac dongle that I'm trying to get going in 
>>>> my server. lsusb gives:
>>>>
>>>>     Bus 002 Device 002: ID 0bda:a811 Realtek Semiconductor Corp.
>>>>     RTL8811AU 802.11a/b/g/n/ac WLAN Adapter
>>>>
>>>>
>>>> I've had a look at the current kmod driver which is version 
>>>> 8188eu-kmod-4.1.4_6773.20130222-3 and it does not cover the USB ID. 
>>>> Looking at the spec file in the src rpm it points me to 
>>>> https://github.com/lwfinger/rtl8188eu but there is no useful update 
>>>> there.
>>>>
>>>> There appear to be a few sources for this driver such as 
>>>> https://github.com/abperiasamy/rtl8812AU_8821AU_linux and 
>>>> https://github.com/diederikdehaas/rtl8812AU which both cover the 
>>>> USB ID. Are you able to work your magic on one of these or any 
>>>> other relevant version you can find?
>>>>
>>>> Many thanks,
>>>>
>>>> Nick
>>>
>>>
>>> Sure, I can take a look but it probably won't be before the weekend.
>>>
>>> Do either of those driver sources compile / work for you? The first 
>>> one looks more maintained so I'd probably start with that. I 
>>> couldn't find any linux driver/source on the Realtek website for 
>>> your device, only for Windows. I wonder where these (above) driver 
>>> sources originated?
>>>
>>> Phil
>>> _______________________________________________
>>> elrepo mailing list
>>> elrepo at lists.elrepo.org
>>> http://lists.elrepo.org/mailman/listinfo/elrepo
>> Hi Phil,
>> I have not tried compiling anything because I don't know what magic 
>> you do. I can give it a go and see what happens. I am puzzled about 
>> the sources because I tried searching github for rtl8188au and only 
>> the lwfinger sources appeared so I must searching incorrectly. I 
>> agree about the realtek site. I tried searching there as well.
>> Yours puzzled,
>> Nick
>> _______________________________________________
>> elrepo mailing list
>> elrepo at lists.elrepo.org
>> http://lists.elrepo.org/mailman/listinfo/elrepo
> Google-fu working better: 
> https://github.com/zebulon2/rtl8812au-driver-5.2.20 and 
> https://github.com/gordboy/rtl8812au. I've never compiled dkms stuff 
> before ....
>
> Nick
> _______________________________________________
> elrepo mailing list
> elrepo at lists.elrepo.org
> http://lists.elrepo.org/mailman/listinfo/elrepo
The one I just found is a fail:

    [root at 7 rtl8812au-driver-5.2.20]# make
    make ARCH=x86_64 CROSS_COMPILE= -C
    /lib/modules/3.10.0-693.17.1.v7.x86_64/build
    M=/usr/src/rtl8812au-driver-5.2.20  modules
    make[1]: Entering directory `/usr/src/kernels/3.10.0-693.17.1.v7.x86_64'
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_cmd.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_security.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_debug.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_io.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_ioctl_query.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_ioctl_set.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_ieee80211.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_mlme.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_mlme_ext.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_mi.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_wlan_util.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_vht.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_pwrctrl.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_rf.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_recv.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_sta_mgt.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_ap.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_xmit.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_p2p.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_rson.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_tdls.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_br_ext.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_iol.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_sreset.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/core/rtw_btcoex_wifionly.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_btcoex.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_beamforming.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/rtw_odm.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/core/efuse/rtw_efuse.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/os_dep/osdep_service.o
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/os_intfs.o
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/os_intfs.c:1418:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .ndo_select_queue = rtw_select_queue,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/os_intfs.c:1418:2:
    warning: (near initialization for
    ‘rtw_netdev_ops.<anonymous>.ndo_select_queue’) [enabled by default]
       CC [M]  /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/usb_intf.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/usb_ops_linux.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_linux.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/xmit_linux.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/mlme_linux.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/recv_linux.o
       CC [M] /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.o
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘rtw_spt_band_free’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:495:24:
    error: ‘IEEE80211_BAND_2GHZ’ undeclared (first use in this function)
       if (spt_band->band == IEEE80211_BAND_2GHZ) {
                             ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:495:24:
    note: each undeclared identifier is reported only once for each
    function it appears in
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:503:31:
    error: ‘IEEE80211_BAND_5GHZ’ undeclared (first use in this function)
       } else if (spt_band->band == IEEE80211_BAND_5GHZ) {
                                    ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘rtw_cfg80211_ibss_indicate_connect’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:890:2:
    warning: passing argument 3 of ‘cfg80211_ibss_joined’ makes pointer
    from integer without a cast [enabled by default]
       cfg80211_ibss_joined(padapter->pnetdev,
    cur_network->network.MacAddress, GFP_ATOMIC);
       ^
    In file included from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service_linux.h:93:0,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service.h:47,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/drv_types.h:27,
                      from
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:17:
    include/net/cfg80211.h:4848:6: note: expected ‘struct
    ieee80211_channel *’ but argument is of type ‘unsigned int’
      void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
           ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:890:2:
    error: too few arguments to function ‘cfg80211_ibss_joined’
       cfg80211_ibss_joined(padapter->pnetdev,
    cur_network->network.MacAddress, GFP_ATOMIC);
       ^
    In file included from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service_linux.h:93:0,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service.h:47,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/drv_types.h:27,
                      from
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:17:
    include/net/cfg80211.h:4848:6: note: declared here
      void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
           ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘rtw_cfg80211_indicate_disconnect’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1077:12:
    error:  struct wireless_dev’ has no member named ‘sme_state’
        if (pwdev->sme_state == CFG80211_SME_CONNECTING) {
                 ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1077:27:
    error:  CFG80211_SME_CONNECTING’ undeclared (first use in this function)
        if (pwdev->sme_state == CFG80211_SME_CONNECTING) {
                                ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1081:19:
    error:  struct wireless_dev’ has no member named ‘sme_state’
        } else if (pwdev->sme_state == CFG80211_SME_CONNECTED) {
                        ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1081:34:
    error:  CFG80211_SME_CONNECTED’ undeclared (first use in this function)
        } else if (pwdev->sme_state == CFG80211_SME_CONNECTED) {
                                       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1083:4:
    error: too few arguments to function ‘cfg80211_disconnected’
         rtw_cfg80211_disconnected(pwdev, reason, NULL, 0,
    locally_generated, GFP_ATOMIC);
         ^
    In file included from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service_linux.h:93:0,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service.h:47,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/drv_types.h:27,
                      from
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:17:
    include/net/cfg80211.h:5284:6: note: declared here
      void cfg80211_disconnected(struct net_device *dev, u16 reason,
           ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘cfg80211_rtw_get_station’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1937:20:
    error:  STATION_INFO_SIGNAL’ undeclared (first use in this function)
        sinfo->filled |= STATION_INFO_SIGNAL;
                         ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1940:20:
    error:  STATION_INFO_TX_BITRATE’ undeclared (first use in this function)
        sinfo->filled |= STATION_INFO_TX_BITRATE;
                         ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1943:20:
    error:  STATION_INFO_RX_PACKETS’ undeclared (first use in this function)
        sinfo->filled |= STATION_INFO_RX_PACKETS;
                         ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1946:20:
    error:  STATION_INFO_TX_PACKETS’ undeclared (first use in this function)
        sinfo->filled |= STATION_INFO_TX_PACKETS;
                         ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:1949:26:
    error:  STATION_INFO_TX_FAILED’ undeclared (first use in this function)
              sinfo->filled |= STATION_INFO_TX_FAILED;
                               ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘rtw_cfg80211_indicate_scan_done’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:2157:4:
    error: incompatible type for argument 2 of ‘cfg80211_scan_done’
         cfg80211_scan_done(pwdev_priv->scan_request, aborted);
         ^
    In file included from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service_linux.h:93:0,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/osdep_service.h:47,
                      from
    /usr/src/rtl8812au-driver-5.2.20/include/drv_types.h:27,
                      from
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:17:
    include/net/cfg80211.h:4496:6: note: expected ‘struct
    cfg80211_scan_info *’ but argument is of type ‘bool’
      void cfg80211_scan_done(struct cfg80211_scan_request *request,
           ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘rtw_cfg80211_indicate_sta_assoc’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:3772:18:
    error:  STATION_INFO_ASSOC_REQ_IES’ undeclared (first use in this
    function)
        sinfo.filled = STATION_INFO_ASSOC_REQ_IES;
                       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘cfg80211_rtw_dump_station’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:4697:19:
    error:  STATION_INFO_SIGNAL’ undeclared (first use in this function)
       sinfo->filled |= STATION_INFO_SIGNAL;
                        ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: In
    function ‘rtw_cfg80211_preinit_wiphy’:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7214:16:
    error: incompatible types when assigning to type ‘const struct
    wiphy_wowlan_support *’ from type ‘const struct wiphy_wowlan_support’
       wiphy->wowlan = wowlan_stub;
                     ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c: At
    top level:
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7418:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .get_station = cfg80211_rtw_get_station,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7418:2:
    warning: (near initialization for ‘rtw_cfg80211_ops.get_station’)
    [enabled by default]
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7433:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .add_virtual_intf = cfg80211_rtw_add_virtual_intf,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7433:2:
    warning: (near initialization for
    ‘rtw_cfg80211_ops.add_virtual_intf’) [enabled by default]
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7450:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .add_station = cfg80211_rtw_add_station,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7450:2:
    warning: (near initialization for ‘rtw_cfg80211_ops.add_station’)
    [enabled by default]
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7451:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .del_station = cfg80211_rtw_del_station,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7451:2:
    warning: (near initialization for ‘rtw_cfg80211_ops.del_station’)
    [enabled by default]
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7452:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .change_station = cfg80211_rtw_change_station,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7452:2:
    warning: (near initialization for ‘rtw_cfg80211_ops.change_station’)
    [enabled by default]
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7480:2:
    warning: initialization from incompatible pointer type [enabled by
    default]
       .mgmt_tx = cfg80211_rtw_mgmt_tx,
       ^
    /usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.c:7480:2:
    warning: (near initialization for ‘rtw_cfg80211_ops.mgmt_tx’)
    [enabled by default]
    make[2]: ***
    [/usr/src/rtl8812au-driver-5.2.20/os_dep/linux/ioctl_cfg80211.o] Error 1
    make[1]: *** [_module_/usr/src/rtl8812au-driver-5.2.20] Error 2
    make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.17.1.v7.x86_64'
    make: *** [modules] Error 2

The first link I had 
(https://github.com/abperiasamy/rtl8812AU_8821AU_linux) dies a bit quicker:

    [root at 7 rtl8812au]# make clean
    make ARCH=x86_64 CROSS_COMPILE= -C
    /lib/modules/3.10.0-693.17.1.v7.x86_64/build M=/usr/src/rtl8812au clean
    make[1]: Entering directory `/usr/src/kernels/3.10.0-693.17.1.v7.x86_64'
    make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.17.1.v7.x86_64'
    [root at 7 rtl8812au]# make
    make ARCH=x86_64 CROSS_COMPILE= -C
    /lib/modules/3.10.0-693.17.1.v7.x86_64/build M=/usr/src/rtl8812au
    modules
    make[1]: Entering directory `/usr/src/kernels/3.10.0-693.17.1.v7.x86_64'
       CC [M]  /usr/src/rtl8812au/core/rtw_cmd.o
       CC [M]  /usr/src/rtl8812au/core/rtw_security.o
       CC [M]  /usr/src/rtl8812au/core/rtw_debug.o
       CC [M]  /usr/src/rtl8812au/core/rtw_io.o
       CC [M]  /usr/src/rtl8812au/core/rtw_ioctl_query.o
       CC [M]  /usr/src/rtl8812au/core/rtw_ioctl_set.o
       CC [M]  /usr/src/rtl8812au/core/rtw_ieee80211.o
       CC [M]  /usr/src/rtl8812au/core/rtw_mlme.o
       CC [M]  /usr/src/rtl8812au/core/rtw_mlme_ext.o
       CC [M]  /usr/src/rtl8812au/core/rtw_wlan_util.o
       CC [M]  /usr/src/rtl8812au/core/rtw_vht.o
       CC [M]  /usr/src/rtl8812au/core/rtw_pwrctrl.o
       CC [M]  /usr/src/rtl8812au/core/rtw_rf.o
       CC [M]  /usr/src/rtl8812au/core/rtw_recv.o
       CC [M]  /usr/src/rtl8812au/core/rtw_sta_mgt.o
       CC [M]  /usr/src/rtl8812au/core/rtw_ap.o
       CC [M]  /usr/src/rtl8812au/core/rtw_xmit.o
       CC [M]  /usr/src/rtl8812au/core/rtw_p2p.o
       CC [M]  /usr/src/rtl8812au/core/rtw_tdls.o
       CC [M]  /usr/src/rtl8812au/core/rtw_br_ext.o
       CC [M]  /usr/src/rtl8812au/core/rtw_iol.o
       CC [M]  /usr/src/rtl8812au/core/rtw_sreset.o
       CC [M]  /usr/src/rtl8812au/core/rtw_btcoex.o
       CC [M]  /usr/src/rtl8812au/core/rtw_beamforming.o
       CC [M]  /usr/src/rtl8812au/core/rtw_odm.o
       CC [M]  /usr/src/rtl8812au/core/efuse/rtw_efuse.o
       CC [M]  /usr/src/rtl8812au/os_dep/osdep_service.o
       CC [M]  /usr/src/rtl8812au/os_dep/linux/os_intfs.o
    /usr/src/rtl8812au/os_dep/linux/os_intfs.c:809:2: error:
    initialization from incompatible pointer type [-Werror]
       .ndo_select_queue = rtw_select_queue,
       ^
    /usr/src/rtl8812au/os_dep/linux/os_intfs.c:809:2: error: (near
    initialization for ‘rtw_netdev_ops.<anonymous>.ndo_select_queue’)
    [-Werror]
    cc1: all warnings being treated as errors
    make[2]: *** [/usr/src/rtl8812au/os_dep/linux/os_intfs.o] Error 1
    make[1]: *** [_module_/usr/src/rtl8812au] Error 2
    make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.17.1.v7.x86_64'
    make: *** [modules] Error 2

Regards,

Nick


More information about the elrepo mailing list