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 =
問題は解決されます(しかしそれはできません)。この時点で、関係のない他のエラーが原因でコンパイルが失敗したことを保証します。
最善の方法は、コードの元の作成者に連絡して、最新のカーネルのソースコードの更新版を入手することです。
答え2
このサイトの他のドライバでコンパイルエラーの修正が見つかりました。 http://www.arnelborja.com/compiling-rt2870-wifi-driver-in-fedora/
パッチの内容は次のとおりです。
--- include/os/rt_linux.h 2013-09-12 13:27:14.000000000 +0800
+++ include/os/rt_linux.h.patched 2014-03-23 11:45:03.907628847 +0800
@@ -279,8 +279,8 @@ typedef struct file* RTMP_OS_FD;
typedef struct _OS_FS_INFO_
{
- int fsuid;
- int fsgid;
+ kuid_t fsuid;
+ kgid_t fsgid;
mm_segment_t fs;
} OS_FS_INFO;
答え3
make
エラーのみが報告されますが、実際にはコンパイラ(おそらくgcc)のエラーです。
error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
デフォルトでは、コードはバグがあるか、プラットフォームには適していませんが、make
正常に動作します。
答え4
このソリューションは私にとって効果的です。私が従う手順は次のとおりです。
私のディストリビューション(Debian Jessie)の手順に従いました。ここ。
製造元のLinuxドライバ(CDにデバイスに含まれています)を保存し、フォルダに解凍しました。
make
そのフォルダに(as)を入力しましたが、root
エラーが発生しました。それで上記のように修正したところ効果がありました。make install
(例:)と入力してroot
コンピュータを再起動しましたが、ワイヤレスインターフェイスが認識されました。私はそれを整理し、働いた。 ;)
私のシステムはDebian Jessie、カーネル3.16.0-4-amd64、gnomeを使用しています。