Closed kevingarman closed 9 years ago
There is a version in the kernel, and it has been there since 3.12. It is not, however, in drivers/net/wireless - it is in drivers/staging. I have no idea what you did to get it into that directory. It is not a configuration that I support.
Is CONFIG_WIRELESS_EXT set in your configuration?
Thanks for you help! I've been using 3.10, but if it's in 3.12, perhaps I can just try using that. Basically what I've been trying is to use the rtl8188 driver from http://www.glomationinc.com/SupportWiki/index.php?n=Main.Tools-Drivers (where I got the embedded device). In their zip are some instructions for adding the driver source to the kernel tree and drivers/net/wireless is what they used. Your driver seems better maintained so I thought I'd try it using the same process. I do have CONFIG_WIRELESS_EXT set.
On a side note, I'm not sure how to flag this thread as a question and not an issue, but I certainly don't mean to suggest there's anything wrong with your driver....just looking for some advice :)
I'm not worried about any issue/question considerations. Most of these posts have been questions.
You need to check the Kconfig file for your version. The standard one is:
config R8188EU tristate "Realtek RTL8188EU Wireless LAN NIC driver" depends on WLAN && USB select WIRELESS_EXT select WEXT_PRIV default N ---help--- This option adds the Realtek RTL8188EU USB device such as TP-Link TL-WN725N. If built as a module, it will be called r8188eu.
if R8188EU
config 88EU_AP_MODE bool "Realtek RTL8188EU AP mode" default Y ---help--- This option enables Access Point mode. Unless you know that your system will never be used as an AP, or the target system has limited memory, "Y" should be selected.
config 88EU_P2P bool "Realtek RTL8188EU Peer-to-peer mode" default Y ---help--- This option enables peer-to-peer mode for the r8188eu driver. Unless you know that peer-to-peer (P2P) mode will never be used, or the target system has limited memory, "Y" should be selected.
endif
Do you have CONFIG_WEXT_PRIV selected?
I've since been trying various combinations of things.... Using the linux-at91 3.10 kernel source I've tried using the driver provided by Glomation (errors out during build) and now I've tried your driver and the one in staging that you mentioned. The later two don't seem to even try to compile (though I think I've got the Kconfig and Makefiles correct). CONFIG_WEXT_PRIV is also selected.
I think I'd better take a step back and try to better understand the kernel build process, because I've got a feeling I'm missing something simple (this is the first time I've build my own kernel).
Thanks again for you help.
Got it working...I ended up just using https://github.com/torvalds/linux for the source tree and then the only thing missing was the firmware which I got from your repo. ...so curiosity question...is there a reason the firmware bin isn't in the main source tree while the rest of the driver is?
Yes. Storing firmware in the kernel is no longer accepted. There are some files that have remained there, but otherwise firmware is kept in a separate linux-firmware git repo at kernel.org. This is the source of firmware for the various distros. The rtl8188eu firmware was accepted there on "Tue Oct 8 18:28:25 2013 -0500".
Hi, I see in your repo description that this is the 'stand-alone RTL8188EU driver'. Pardon my ignorance, but does that mean that it cannot compiled into the kernel? I'm trying to build a kernel (https://github.com/linux4sam/linux-at91) for an embedded device, but when it gets to the this driver it fails.
Any tips would be greatly appeciated! Kevin
HOSTCC scripts/mod/file2alias.o HOSTLD scripts/mod/modpost CHK include/generated/compile.h CC drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.o drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7859:2: error: unknown field 'private' specified in initializer .private = rtw_private_handler, ^ drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7859:2: warning: initialization from incompatible pointer type [enabled by default] drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7859:2: warning: (near initialization for 'rtw_handlers_def.get_wireless_stats') [enabled by default] drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7860:2: error: unknown field 'private_args' specified in initializer .private_args = (struct iw_privargs )rtw_private_args, ^ drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7860:26: warning: excess elements in struct initializer [enabled by default] .private_args = (struct iw_priv_args )rtw_private_args, ^ drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7860:26: warning: (near initialization for 'rtw_handlers_def') [enabled by default] drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7861:2: error: unknown field 'num_private' specified in initializer .num_private = sizeof(rtw_private_handler) / sizeof(iw_handler), ^ drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7861:2: warning: excess elements in struct initializer [enabled by default] drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7861:2: warning: (near initialization for 'rtw_handlers_def') [enabled by default] drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7862:2: error: unknown field 'num_private_args' specified in initializer .num_private_args = sizeof(rtw_private_args) / sizeof(struct iw_priv_args), ^ drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7862:63: warning: excess elements in struct initializer [enabled by default] .num_private_args = sizeof(rtw_private_args) / sizeof(struct iw_priv_args), ^ drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.c:7862:63: warning: (near initialization for 'rtw_handlers_def') [enabled by default] scripts/Makefile.build:308: recipe for target 'drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.o' failed make[4]: _* [drivers/net/wireless/rtl8188eu/os_dep/ioctl_linux.o] Error 1 scripts/Makefile.build:455: recipe for target 'drivers/net/wireless/rtl8188eu' failed