저는 Lenovo IdeaPad Yoga 13을 사용하고 있습니다. Fedora 18에서는 WLAN이 기본적으로 작동하지 않습니다. 그래서 구글링을 하다가 다음 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 및 패치를 다운로드했습니다. 나는 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
를 제거하여 컴파일하고 로드할 드라이버(동일한 소스 트리에서)를 얻었습니다 .__devinit
pci.h
pci.c
__devinitdata
sw.c
grep -R __devinit
소스 루트의 A 에는 수정해야 하는 모든 파일이 표시됩니다.
답변3
이거 해봤어?
int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);
답변4
Fedora에는 새로운 커널이 있으며, 종종 떠다니는 드라이버 소스는 이전 커널 버전용입니다. 필요한 커널 버전을 확인하고, Fedora 포럼을 뒤지고, 관련 버그 보고서를 확인하고, 커널 해커가 아직 공식화하지 않은 드라이버를 찾습니다(~ 아니다판매자; 벤더들은 종종 하나의 소스가 광범위한 커널 버전에서 작동하도록 하는 것이 가능하다는 착각에 빠져 살고 있으며, 다른 일부는 That Other Unnameable System의 소스 블롭을 기본 Linux 드라이버와 표면적으로 유사한 것으로 만들거나 수정 불가능한 이단자도 있을 수 있다는 착각에 빠져 있습니다. 둘 다 시도해보세요).