RTL8723e driver not building properly

Recently I decided to switch to openSUSE on my main PC from Linux Mint, however I ran into a few issues. My laptop has a rtl8723e wifi card, and openSUSE does not support this. Previously I have seen on many other websites including this one of ways to fix it, which mainly revolve around a specific driver, found here (http://askubuntu.com/questions/139632/wireless-card-realtek-rtl8723ae-bt-is-not-recognized/165002#165002](http://askubuntu.com/questions/139632/wireless-card-realtek-rtl8723ae-bt-is-not-recognized/165002#165002)). I downloaded the one later on in the answer (809), and on Mint it compiled fine. Unfortunately, this is not so on openSUSE 12.3 (I am running Factory). I have installed the entire devel_kernel package group, however when I compile it, it errors with:

make -C /lib/modules/3.7.1-1-desktop/build M=/home/linux/Downloads/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012 modules
make[1]: Entering directory `/usr/src/linux-3.7.1-1-obj/x86_64/desktop'
  CC [M]  /home/linux/Downloads/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012/base.o
/home/linux/Downloads/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012/base.c: In function ‘rtl_send_smps_action’:
/home/linux/Downloads/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012/base.c:1434:16: error: ‘struct <anonymous>’ has no member named ‘sta’
make[4]: *** [/home/linux/Downloads/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012/base.o] Error 1
make[3]: *** [_module_/home/linux/Downloads/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-3.7.1-1-obj/x86_64/desktop'
make: *** [all] Error 2


This process of downloading it, extracting it and then doing ‘make’ ‘sudo make install’ ‘sudo modprobe rtl8723e’ worked on Linux Mint, Ubuntu, and elementary OS, which all seem to be based on Debian, however I cannot see why it won’t on openSUSE. Has anyone got any ideas?

When you are testing 12.3, you should have posted this in the Pre-Release/Beta forum. There you will find your fellow testers.

I will move this. Please all, do not post until moved.

Moved and open again.

On 01/21/2013 11:26 AM, hcvv wrote:
>
> hcvv;2520636 Wrote:
>> When you are testing 12.3, you should have posted this in the
>> Pre-Release/Beta forum. There you will find your fellow testers.
>>
>> I will move this. Please all, do not post until moved.
> Moved and open again.

The problem is that the Realtek drivers have not been updated for the API
changes in kernel 3.7. I sent the necessary patches to Realtek, but they have
not yet been implemented in their published drivers.

I suggest that you use the S.A.K.C. script to get kernel 3.8-rc4 and use it.
Driver rtl8723ae is built into that version.

Ah, thanks for the tip. Tommorow when I am back on this computer I will update it to kernel 3.8.

Right, I used SAKC to build the 3.8 rc 4 kernel, however it still does not appear in the network controls either in YaST or System settings. According to uname -a I am running

Linux linux-k07g.site 3.8.0-rc4-1-desktop #1 SMP PREEMPT Tue Jan 22 08:41:32 GMT 2013 x86_64 x86_64 x86_64 GNU/Linux

Any other ideas? Is there something I have to enable?

On 01/22/2013 10:16 AM, ThatPerson wrote:
>
> ThatPerson;2520713 Wrote:
>> Ah, thanks for the tip. Tommorow when I am back on this computer I will
>> update it to kernel 3.8.
>
> Right, I used SAKC to build the 3.8 rc 4 kernel, however it still does
> not appear in the network controls either in YaST or System settings.
> According to uname -a I am running
>
> Code:
> --------------------
> Linux linux-k07g.site 3.8.0-rc4-1-desktop #1 SMP PREEMPT Tue Jan 22 08:41:32 GMT 2013 x86_64 x86_64 x86_64 GNU/Linux
> --------------------
>
> Any other ideas? Is there something I have to enable?

Check dmesg. Did the firmware load? Note: It is not in the kernel-firmware
package. See https://bugzilla.novell.com/show_bug.cgi?id=799937.

To get that firmware, use git to clone the repository at
git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git and
manually copy the rtl8723ae*.bin files to /lib/firmware/rtlwifi/.

I git cloned it in a folder on my laptop, however from using find I cannot seem to see anything to do with it, other than rtl8723fw


ben@linux-k07g:~/.drivers/linux-firmware$ uname -aLinux linux-k07g.site 3.8.0-rc4-1-desktop #1 SMP PREEMPT Tue Jan 22 08:41:32 GMT 2013 x86_64 x86_64 x86_64 GNU/Linux
ben@linux-k07g:~/.drivers/linux-firmware$ find | grep -i 8723
./rtlwifi/rtl8723fw.bin
./rtlwifi/rtl8723fw_B.bin



I copied the items in the rtlwifi into /lib/firmware/rtlwifi, however it still does not load it, and on modprobe rtl8723ae it says it is not there.

Thank you for persevering with this, but do you have any other ideas?

On 01/23/2013 01:46 AM, ThatPerson wrote:
>
> lwfinger;2520996 Wrote:
>> On 01/22/2013 10:16 AM, ThatPerson wrote:
>>
>> To get that firmware, use git to clone the repository at
>> git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
>> and
>> manually copy the rtl8723ae*.bin files to /lib/firmware/rtlwifi/.
>
> I git cloned it in a folder on my laptop, however from using find I
> cannot seem to see anything to do with it, other than rtl8723fw
>
>
> Code:
> --------------------
>
> ben@linux-k07g:~/.drivers/linux-firmware$ uname -aLinux linux-k07g.site 3.8.0-rc4-1-desktop #1 SMP PREEMPT Tue Jan 22 08:41:32 GMT 2013 x86_64 x86_64 x86_64 GNU/Linux
> ben@linux-k07g:~/.drivers/linux-firmware$ find | grep -i 8723
> ./rtlwifi/rtl8723fw.bin
> ./rtlwifi/rtl8723fw_B.bin
>
>
>
> --------------------
>
>
> Thank you for persevering with this, but do you have any other ideas?

Those 2 files are the firmware.

Did you look at the output of dmesg? Is the driver unable to read the firmware?
Do you see a message that says “rtl8723ae: Using firmware
rtlwifi/rtl8723fw_B.bin”? Is that followed by a message that says “rtlwifi:
Firmware rtlwifi/rtl8723fw_B.bin not available”? If so, you need to copy those 2
files to /lib/firmware/rtlwifi/. That is where the kernel can read them.

ben@linux-k07g:/lib/firmware/rtlwifi$ lsrtl8192cfw.bin     rtl8192cfwU.bin  rtl8192defw.bin  rtl8712u.bin     rtl8723fw.bin
rtl8192cfwU_B.bin  rtl8192cufw.bin  rtl8192sefw.bin  rtl8723fw_B.bin
ben@linux-k07g:/lib/firmware/rtlwifi$ dmesg | grep -i rtl
    8.249909] r8169 0000:03:00.2 eth0: RTL8411 at 0xffffc90005bf6000, 00:90:f5:d8:6d:d9, XID 08800800 IRQ 44
ben@linux-k07g:/lib/firmware/rtlwifi$ su
Password: 
linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723ae
FATAL: Module rtl8723ae not found.
linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723e
FATAL: Module rtl8723e not found.
linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723
FATAL: Module rtl8723 not found.
linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723fw
FATAL: Module rtl8723fw not found.

The firmware is in /lib/firmware, however it is not detected in dmesg at all. I cannot load any of the modules.

On 01/23/2013 11:46 AM, ThatPerson wrote:
>
> lwfinger;2521378 Wrote:
>> On 01/23/2013 01:46 AM, ThatPerson wrote:
>>>
>>> lwfinger;2520996 Wrote:
>>>> On 01/22/2013 10:16 AM, ThatPerson wrote:
>>>>
>>>> To get that firmware, use git to clone the repository at
>>>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
>>>> and
>>>> manually copy the rtl8723ae*.bin files to /lib/firmware/rtlwifi/.
>>>
>>> I git cloned it in a folder on my laptop, however from using find I
>>> cannot seem to see anything to do with it, other than rtl8723fw
>>>
>>>
>>> Code:
>>> --------------------
>>>
>>> ben@linux-k07g:~/.drivers/linux-firmware$ uname -aLinux
>> linux-k07g.site 3.8.0-rc4-1-desktop #1 SMP PREEMPT Tue Jan 22 08:41:32
>> GMT 2013 x86_64 x86_64 x86_64 GNU/Linux
>>> ben@linux-k07g:~/.drivers/linux-firmware$ find | grep -i 8723
>>> ./rtlwifi/rtl8723fw.bin
>>> ./rtlwifi/rtl8723fw_B.bin
>>>
>>>
>>>
>>> --------------------
>>>
>>>
>>> Thank you for persevering with this, but do you have any other ideas?
>>
>> Those 2 files are the firmware.
>>
>> Did you look at the output of dmesg? Is the driver unable to read the
>> firmware?
>> Do you see a message that says “rtl8723ae: Using firmware
>> rtlwifi/rtl8723fw_B.bin”? Is that followed by a message that says
>> “rtlwifi:
>> Firmware rtlwifi/rtl8723fw_B.bin not available”? If so, you need to
>> copy those 2
>> files to /lib/firmware/rtlwifi/. That is where the kernel can read
>> them.
>
>
>
> Code:
> --------------------
> ben@linux-k07g:/lib/firmware/rtlwifi$ lsrtl8192cfw.bin rtl8192cfwU.bin rtl8192defw.bin rtl8712u.bin rtl8723fw.bin
> rtl8192cfwU_B.bin rtl8192cufw.bin rtl8192sefw.bin rtl8723fw_B.bin
> ben@linux-k07g:/lib/firmware/rtlwifi$ dmesg | grep -i rtl
> 8.249909] r8169 0000:03:00.2 eth0: RTL8411 at 0xffffc90005bf6000, 00:90:f5:d8:6d:d9, XID 08800800 IRQ 44
> ben@linux-k07g:/lib/firmware/rtlwifi$ su
> Password:
> linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723ae
> FATAL: Module rtl8723ae not found.
> linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723e
> FATAL: Module rtl8723e not found.
> linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723
> FATAL: Module rtl8723 not found.
> linux-k07g:/lib/firmware/rtlwifi # modprobe rtl8723fw
> FATAL: Module rtl8723fw not found.
>
> --------------------
>
> The firmware is in /lib/firmware, however it is not detected in dmesg
> at all. I cannot load any of the modules.

You need to add the driver to the configuration using ‘make xconfig’, ‘make
menuconfig’, or (least favorable option) with an edit of .config. Your kernel
build did not build it. BTW, the firmware is NEVER loaded as a module - the
driver loads it.

When I did make menuconfig in the kernel source directory (after un tarring the kernel archive) I could not see the firmware in it. Do I need to do this in the /usr/src directory, because I do not have a kernel 3.8 directory there.

On 01/23/2013 02:56 PM, ThatPerson wrote:
> When I did make menuconfig in the kernel source directory (after un
> tarring the kernel archive) I could not see the firmware in it. Do I
> need to do this in the /usr/src directory, because I do not have a
> kernel 3.8 directory there.

THE FIRMWARE IS NOT IN THE KERNEL.

Only very old firmware is in the kernel, and adding more is strengst verboten!
That is why the firmware is in the linux-firmware git repo. The firmware for the
RTL8723AE will be in the kernel-firmware package once it is updated.

As I explained before, you do not have driver rtl8723ae configured correctly.
That is why ‘modprobe rtl8723ae’ fails. The reason I was recommending firmware
acquisition earlier was that I assumed that you had done the configuration
correctly.

Ah, that explains it. I went through this post again, and followed it very closely and I managed to get it to work. Thanks! Sorry for the misunderstanding.

Hello, I am one of the increasing band new laptop owners turning to suse 12.3 in order to dual boot with UEFI, then being floored by the RTL8723 issue. Installing 12.3 beta is adventurous enough, let alone compiling a new kernel just to solve the RTL problem. Is it possible to use the 3.7 kernel by adding the extra 2 firmware files that must be put in /lib/firmware/rtl wifi? In which case, would someone be kind enough to post these two files in an area that we can download them?

On 02/01/2013 10:06 PM, stuartn wrote:
>
> Hello, I am one of the increasing band new laptop owners turning to suse
> 12.3 in order to dual boot with UEFI, then being floored by the RTL8723
> issue. Installing 12.3 beta is adventurous enough, let alone compiling a
> new kernel just to solve the RTL problem. Is it possible to use the 3.7
> kernel by adding the extra 2 firmware files that must be put in
> /lib/firmware/rtl wifi? In which case, would someone be kind enough to
> post these two files in an area that we can download them?

Those two firmware files are not enough; however, you can get them with the
following commands:


sudo zypper install git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git

Sorry that you are frustrated at new hardware not being supported, but I do the
best I can. In fact, I prepared that driver for the Linux kernel as soon as
Realtek sent me the sample cards and the vendor driver, which is not suitable
for direct incorporation. They were a little late in getting the driver to a
state that they would release.

If you use the S.A.K.C. method to build kernel 3.8-rc6, then building a new
kernel should not be too adventurous.

Those two firmware files are not enough … building a new kernel should not be too adventurous.

Hi lwfinger, I guess by the above quote you are saying “no other options.” Is there any chance of 3.8 being in one of the next 12.3 candidates? I am weighing up whether to remain tethered to a cable against the pain of a custom kernel, particularly as I need to go near the boot manager, which is a bit of a stress point in the Windows 8 dual boot. The difficulty of your task is understood and your work much appreciated!

Finding all the instructions a bit cryptic. I have used the SAKC scipt in turbo mode to create the new kernel. Then I copied the two files (rtl8723fw.bin and rtl8723fw_b.bin) from the git download (linux-firmware/rtlwifi) to /usr/firmware/rtlwifi. In /usr/src/linux I ran make cloneconfig and then make menuconfig. In “Local Verion” I managed to change the name to “1-desktop 3.8rc6” However after looking around quite a bit I could not find the Realtek driver anywhere so exited. Then I rebooted and the kernel name I saw in the boot menu was the 3.8rc6. I do not know if this is actually the 3.7 kernel or the 3.8 kernel. fter rebooting I ran modprobe rtl1873ae which produced Module not found. Do I need to run make, make modules-install and mke install or is all this already done by SAKC? What am I doing incorrectly? Thanks.

Installed QT4 development so I could execute ‘make xconfig’ (in /usr/src/linux). While ‘make xconfig’ is a very much nicer environment than ‘make menuconfig’ , it incurs another huge download taking my total for this wifi driver to about 1.5Gb, not to mention things like SAKC’s 7Gb build file which is bigger than a 4.7Gb distro. The excellent search tool in ‘make xconfig’ still didn’t find anything to do with the rtl 8723. So I tried ‘make clean’ and make. This ran for about 2 hours. I noticed it scrolled an rtlwifi module for rtl8192se but not 8723. Also, there were a couple of warnings along the way. It finally stopped with an error message ‘/usr/src/linux-3.7.1-1/scripts/Makefile.fwinst:34: *** mixed implicit and normal rules. Stop. make: *** [modules] Error 2’. Firstly, for me this is an error that implies major consequences ahead. Secondly, it refers to kernel 3.7.1 rather than 3.8rc6 so probably in /usr/src/linux I am applying “make xconfig” to the wrong kernel. BTW ‘uname -a’ confirms that my current system is SAKC’s 3.8rc6. I have done another ‘make clean’ to clear the system of this faulty make result. Hopefully someone will have a suggestion of how to proceed now!

in the kernel source for 2.8rc8 should reside in your home directory at Kernel/linux-3.8-rc6 so cd to that
as normal user
cd Kernel/linux-3.8-rc6
make xconfig
make
sudo make modules_install install