I have a Lenovo IdeaPad Yoga 13. WLAN won't work out of box with fedora 18. So I googled around and found this 2 links:

https://askubuntu.com/questions/139632/wireless-card-realtek-rtl8723ae-bt-is-not-recognized https://ask.fedoraproject.org/question/9633/i-can-not-get-my-realtek-8723-chip-to-work/

So I downloaded the source install gcc, kernel-header, kernel-devel and patch. I comment the line 320 in base.c out. But I get still an error.

make -C /lib/modules/3.8.9-200.fc18.x86_64/build M=/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 modules
make[1]: Entering directory `/usr/src/kernels/3.8.9-200.fc18.x86_64'
  CC [M]  /home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o
In file included from /home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:39:0:
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/pci.h:245:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl_pci_probe’
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_action_proc’:
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:870:25: error: ‘RX_FLAG_MACTIME_MPDU’ undeclared (first use in this function)
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:870:25: note: each undeclared identifier is reported only once for each function it appears in
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_send_smps_action’:
/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1432:16: error: ‘struct <anonymous>’ has no member named ‘sta’
make[2]: *** [/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o] Error 1
make[1]: *** [_module_/home/l33tname/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.8.9-200.fc18.x86_64'
make: *** [all] Error 2

The line 245 on pci.h is this:

int __devinit rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);

And yeah I try it as normal user and as root.

My question is how can I compile this or what must be fixed.


So the solutions is really simple take the latest source from: https://github.com/lwfinger

make & make install

So this works well for realtek-8723.

And there is a small blog post I wrote about it -> http://l33tsource.com/blog/2013/05/08/Yoga-with-WLAN.html


It seems the __devinit macros were removed from the kernel in 3.8. I got the rtl8192ce driver (from the same source tree) to compile and load by removing__devinit from pci.h and pci.c) and also removing all instances of __devinitdata from each sw.c (one per driver directory).

A grep -R __devinit in the source root should show you all the files you have to modify.


You tried this?

int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);

Fedora has rather new kernels, often the driver sources floating around are for older kernel versions. Check the requisite kernel version, rummage through the Fedora fora, check for possibly relevant bug reports, look for not-yet-official drivers by the kernel hackers (not the vendor; vendors often live under the illusion that it is possible to have one source working for a wide range of kernel versions, others just shoehorn a source blob for That Other Unnameable System into something that has a superficial resemblance to a native Linux driver, some uncorrigible heretics try both).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.