私は Lenovo IdeaPad Yoga 13 を使用しています。WLAN は fedora 18 ではそのままでは動作しません。そこで Google で検索して、次の 2 つのリンクを見つけました:
https://askubuntu.com/questions/139632/wireless-card-realtek-rtl8723ae-bt-が認識されない 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(構造体 pci_dev *pdev、const 構造体 pci_device_id *id);
はい、通常のユーザーとして、また root として試してみます。
私の質問は、これをどうやってコンパイルするか、何を修正する必要があるかということです。
答え1
したがって、解決策は非常に簡単です。次の最新のソースを取得します。 https://github.com/lwfinger
作成とインストール
したがって、これは realtek-8723 ではうまく機能します。
それについて私が書いた小さなブログ記事があります ->http://l33tsource.com/blog/2013/05/08/Yoga-with-WLAN.html
答え2
マクロ__devinit
は3.8でカーネルから削除されましたとを削除し、それぞれからのすべてのインスタンス(ドライバー ディレクトリごとに 1 つ)rtl8192ce
を削除することで、ドライバー (同じソース ツリーから) をコンパイルしてロードできるようになりました。__devinit
pci.h
pci.c
__devinitdata
sw.c
ソース ルートのAgrep -R __devinit
には、変更する必要があるすべてのファイルが表示されます。
答え3
これ試してみましたか?
int __devinit = rtl_pci_probe(struct pci_dev *pdev,const struct pci_device_id *id);
答え4
Fedora のカーネルは比較的新しいため、出回っているドライバソースは古いカーネルバージョン用であることが多いです。必要なカーネルバージョンを確認し、Fedora フォーラムを調べ、関連するバグレポートを確認し、カーネルハッカーによるまだ公式ではないドライバを探してください (ないベンダー: ベンダーは多くの場合、1 つのソースを幅広いカーネル バージョンで動作させることができるという幻想を抱いていますが、他のベンダーは、ネイティブ Linux ドライバーに表面的に似ているものに、その他の名前のつかないシステム用のソース ブロブを無理やり押し込むだけです。また、矯正不可能な異端者の中には、両方を試みる人もいます。