web-dev-qa-db-ja.com

Linux、usbwifiドライバーを動作またはコンパイルすることができません

一般的なRalinkワイヤレスUSBドングルと、Linux Mint 17(シナモン)の新規インストールがあります。ドングルを使用してWi-Fiに接続できるようにしたいので、散らかったcat5ケーブルをいくつか解放できます。

残念ながら、デフォルトでは機能せず、ソースからコンパイルできません(エラーがあります)。長い投稿をお詫びしますが、これは私が過去数週間に試したものの要約版です。

時間を節約するために、関連するシステム情報を以下に貼り付けます。まず、uname -a

Linux stutter 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

これがlsusbからの出力です。デバイスが認識されていることを示します。デバイス5。

Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 413c:2005 Dell Computer Corp. RT7D50 Keyboard
Bus 002 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Iwconfigからの出力。 Wi-Fiデバイスとして使用されていないことを示します。このリストには「ra0」が含まれているはずです。 eth0とeth1は両方とも私のマザーボードの有線ポートです-2つあります。

eth0      no wireless extensions.
eth1      no wireless extensions.
lo        no wireless extensions.

次に、lsmodは、正しいカーネルモジュールがロードされていることを示します。簡潔にするためにトリミングされています。

rt2800usb              27034  0 
rt2x00usb              20742  1 rt2800usb
rt2800lib              89076  1 rt2800usb
rt2x00lib              55307  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              626489  3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211              484040  2 mac80211,rt2x00lib
crc_ccitt              12707  1 rt2800lib
bnep                   19624  2 
rfcomm                 69160  0 
bluetooth             395423  10 bnep,rfcomm
....

したがって、箱から出してすぐに機能するはずですが、そうではありません。私の次の考えは、ソースからコンパイルすることでした。 2870ダウンロードページ( http://www.mediatek.com/en/downloads/rt2870usbrt2870rt2770/ )にアクセスします。これは、このチップセットが構築された正確なバージョンであると信じていますが、このデバイスのマニュアルを持っているので、よくわかりません。とにかく、私はパッケージをダウンロードして膨らませ、os/linux /config.mkの次の行を変更します。

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

次に、適切なパッケージがすべて揃っていることを確認します

Sudo apt-get install build-essential linux-headers-$(uname -r) linux-firmware

そして、「メイク」を試して、トップレベルに戻ります。最初のエラーが発生するまで、それほど時間はかかりません。

/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1141:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
   pOSFSInfo->fsuid = current_fsuid();
                    ^
/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1142:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
   pOSFSInfo->fsgid = current_fsgid();
                    ^
make[2]: *** [/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.o] Error 1
make[1]: *** [_module_/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'
make: *** [LINUX] Error 2

これらのエラーは、サイト上のソースのすべてのバージョンに存在し、私のためにビルドされたものは1つもありません。私はおそらく自分でパッチを当てることができることを認めますが、これを一緒にダクトテープで留めようとするのではなく、実際に機能するドライバーを備えた新しいデバイスを購入したいと思います。

だから今私は立ち往生しています-私のストックドライバーは私のデバイスが彼らのためのものであると信じていないようです、ソースからコンパイルするには大量のパッチが必要なようです、そして他の誰もこれらの問題に遭遇していないようです(すべての検索はソースからコンパイルできた人々の海)。

助けていただければ幸いです。これは、多くの情報が含まれているニッチな質問です。

2
Knetic

Lsusbによって表示されるベンダー+製品コード148f:7601は十分な情報です。 WikiDevi を検索すると、ドングルがTP-Link TL-WN727N v4、または深センOgemrayテクノロジーGWF-7A05であることがわかります。いずれにせよ、rt2800usbは適切なドライバーではありません:コマンド

 # modinfo rt2800usb | grep 148F | grep 7601

rt2800usbがロードされているドングルの中から、ドングルのベンダーコードと製品コードを検索しても、出力は生成されません。したがって、別のドライバーが必要です。これは、rt2800usbのコンパイルとインストールが成功した後でも、インターフェイスがまだ起動していない理由を説明しています。

同じWikideviページは、最も可能性の高いLinuxモジュールとしてmt7601u_staを提案しています。 ここ から入手できます。これは確かにあなたが探しているドライバーです:ファイルDPO_MT7601U_LinuxSTA_3.0.0.4_20130913/common/rtusb_dev_id.cで、あなたは行を見つけることができます

          {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */

これは、modinfo mt7601u_staの出力に表示されるものです。

ただし、これで朗報は終わりです。ArchシステムでもDebianJessieシステムでもコンパイルされません。また、それをグーグルで回ると、最近のカーネルで正常にコンパイルできる人は誰もいないようです。 3.12から3.15のレポートを見てきました。

念のため、最新のバックポート ここ がこのカードをサポートしているかどうかも確認しました。それらはそうではなく、wifi defconfigをコンパイルしてインストールし、新しく作成されたrt2800usbでmodinfoを試すことで、自分で確認できます。運がない。

2
MariusMatutiae

この質問 から " タイプ 'kgid_t'からタイプ 'int'に割り当てるときに互換性のないタイプ "、インストールしてみてくださいfirmware-ralinkビルドする前に(疑わしい場合は、常にコンパイラエラーメッセージを検索してください):

Sudo apt-get install firmware-ralink

それができない場合は、デフォルトでMintで動作することがわかっているデバイスを購入するという最後のアイデアを採用してください(とにかくやりたいと思うかもしれないので、カーネルの更新を取得するたびにこれを実行する必要はありません。新しいシステムをセットアップします)。

1
Jason C