Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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:

http://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.

share|improve this question

4 Answers 4

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.

share|improve this answer
    
If CONFIG_HOTPLUG is not defined in the source, this would be a suitable fix, see this thread for the defintion of __devinit http://www.spinics.net/lists/newbies/msg29197.html –  Drav Sloan Aug 28 '13 at 16:16
    
__devinit has been completely removed "reflecting the fact that we all live in a hotplug world now". –  Henry Gomersall Aug 28 '13 at 16:46
    
It's great to know where the change was made and the thought behind it. Thanks for the link :) I was just wanting to clarify that in the case of the OP editing his driver code, to be aware of the possible ramifications of the change. –  Drav Sloan Aug 28 '13 at 16:51
    
Indeed :) Here's a patch along similar lines –  Henry Gomersall Aug 28 '13 at 16:55

You tried this?

int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);
share|improve this answer
    
I have try this and it doesn't work pastebin.com/Pv5fQKDX –  Sir l33tname Apr 30 '13 at 16:27

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).

share|improve this answer
up vote 0 down vote accepted

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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