Ralink RT2870用のドライバのコンパイル中にエラーが発生しました。

Ralink RT2870用のドライバのコンパイル中にエラーが発生しました。

Kali LinuxにRosewill RNX-N600UBEワイヤレスカード(Ralink RT2870チップセット)用のドライバをインストールしようとしています。そのウェブサイトからドライバをダウンロードして解凍しましたが、「make」コマンドを実行しようとするとこのエラーが発生します。

/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.c:1156:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.c:1157:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
make[4]: *** [/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.o] Error 1
make[3]: *** [_module_/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2

ベストアンサー1

問題は、最近の3.xカーネルでカーネルヘッダ/インタフェースの1つが変更されたことです。 UID/GID の値はもともと正規整数と呼ばれていましたが、今は単一要素を持つ構造です。以前の定義に依存するすべてのコードは、新しいカーネルヘッダーと一致するように更新されるまでコンパイルされません。

現在、Ubuntuのインストールのためにvirtualbox-guest-utilsで同様のバグをパッチしようとしています。理論的には、エラーに報告された行番号で->i_uid =with->i_uid.val =またはwith->i_gid =のインスタンスを見つけて置き換えることで->i_gid.val =問題は解決されます(しかしそれはできません)。この時点で、関係のない他のエラーが原因でコンパイルが失敗したことを保証します。

最善の方法は、コードの元の作成者に連絡して、最新のカーネルのソースコードの更新版を入手することです。

おすすめ記事