Realtek 8723 드라이버 소스를 컴파일할 수 없습니다.

Realtek 8723 드라이버 소스를 컴파일할 수 없습니다.

저는 레노버 아이디어패드 요가 13을 사용하고 있습니다. WLAN은 Fedora 18에서 기본적으로 작동하지 않습니다. 그래서 구글에서 검색한 결과 다음 2개의 링크를 찾았습니다.

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/

그래서 소스코드를 다운로드하고 gcc, kernel-header, kernel-devel, patch를 설치했습니다. base.c에서 320행을 주석 처리했습니다. 하지만 여전히 오류가 발생합니다.

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

pci.h의 라인 245는 다음과 같습니다:

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

예, 일반 사용자와 루트로 시도해 보았습니다.

내 질문은 이것을 컴파일하는 방법이나 수정해야 할 사항입니다.

답변1

따라서 해결책은 매우 간단합니다. 최신 소스를 얻으세요. https://github.com/lwfinger

제작 및 설치

따라서 이것은 realtek-8723에 적합합니다.

나는 그것에 대해 작은 블로그 게시물을 썼습니다 ->http://l33tsource.com/blog/2013/05/08/Yoga-with-WLAN.html

답변2

__devinit매크로인거 같은데3.8의 커널에서 제거됨. rtl8192ce각 인스턴스(드라이버 디렉터리당 하나씩)에서 모든 인스턴스를 제거하고 제거하여 동일한 소스 트리에서 드라이버를 컴파일하고 로드했습니다 .__devinitpci.hpci.c__devinitdatasw.c

소스 루트 디렉터리의 A에는 grep -R __devinit수정해야 하는 모든 파일이 표시되어야 합니다.

답변3

이것을 시도해 보셨나요?

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

답변4

Fedora에는 상당히 새로운 커널이 있으며 일반적으로 플로팅 드라이버 소스는 이전 커널 버전용입니다. 필요한 커널 버전을 확인하고, Fedora 포럼을 읽고, 관련 버그 보고서를 확인하고, 커널 해커가 제공하는 비공식 드라이버를 찾으십시오(아니요공급업체는 하나의 소스 코드가 다양한 커널 버전에서 작동할 수 있다는 착각에 빠지는 경우가 많으며, 다른 공급업체는 이름 없는 다른 시스템의 소스 코드 덩어리를 기본 Linux 드라이버와 함께 표면에 뿌릴 뿐입니다. 비슷한 것, 둘 다 시도하는 것은 절망적인 이단입니다. .

관련 정보