パスワードを忘れた? アカウント作成
13411104 journal
日記

mishimaの日記: Linuxの無線LAN設定について 4

日記 by mishima

自宅の部屋の一部はAPからの無線LANの電波が届かない。
仕方がないのでアンテナのでかいUSBの無線LANデバイスを買ってきてみた(それまではAPとして使っているPC内蔵の無線LANを使用)。
あとで忘れそうなので備忘録として設定方法をメモっておく。

1. 買ってきたのは WI-U2-433DHP。ひとまずLinux PCに差し込んでみたけど認識されない。ぐぐると RTL8821 というチップを使っているらしく、Github にドライバが有るらしいことがわかる。RTL8812 という紛らわしいチップがあって、これと同じドライバで動くらしい。

2. この手のドライバをぶっこむときは、最近のお作法としては DKMS を使うのがいいらしい。まず /usr/src 以下に、「ドライバ名-バージョン番号」のフォーマットでソースを置く。
こんな感じ:
# git clone https://github.com/diederikdehaas/rtl8812AU.git /usr/src/diederikdehaas_rtl8812AU-4.3.22
(rtl8812auのドライバは色んな人が保守してるみたい。diederikdehaas という人のが一番良く保守されているようだ。あとでどのメンテナのソースを入れたのかわかりやすいようにドライバの名前にメンテナの名前を入れておく。)

3. dkms に組み込む。とりあえず次のコマンド一発でよい:
# dkms install diederikdehaas_8812au/4.3.22
うまくいかない場合は削除すればよい:
# dkms remove diederikdehaas_8812au/4.3.22 --all
現在の dkms の状態は次のようにすればわかる:
# dkms status

4. ビルド中にエラーが発生。ログが出てるようなので調べたら、なんか未定義の関数 allow_signal を呼んでいるような。インクルード漏れだろうと高をくくって osdep_service.h に追記:
#include <linux/signal.h>
#include <linux/sched/signal.h>

5. ビルドはうまくいってカーネルに組み込めるようになったが、やっぱりデバイスを認識しない。lsusb で ID を調べて、該当する ID がソース中にあるかどうか調べると、やっぱりない。usb_intf.c に列挙すればいいみたいなので追加してみる:
{USB_DEVICE(0x0411, 0x029b),.driver_info = RTL8821}, /* Buffalo - WI-U2-433DHP */

6. iwconfig で認識するようになったので hostapd の設定をしてみるが、"Could not select hw_mode and channel" などというエラーが出る。これもぐぐってみると hostapd.conf の hw_mode=a という部分がダメっぽい。hw_mode=g に変更する。

7. APとして無事構築完了。電波もかなり強くなって、自宅のどこでも利用できるようになった。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2017年09月18日 1時20分 (#3281506)

    規格無視した高出力で有名ですからねぇ

    届くには届くけどその分長時間利用では
    熱ダレでエラー落ちしまくるし
    よそ様からすると
    外まで電波ゆんゆんの困ったちゃんだったり

    ちなみにRTLnnnnはRealtekで
    標準でも熱ダレの代名詞
    ロゴからの通称は蟹さんチップ

    それを規定外出力でぶん回すのが
    牛さんクオリティなので
    コアタイムや長期時間でのご利用はほどほどに

    • by mishima (737) on 2017年09月19日 15時45分 (#3281958) ホームページ 日記

      なるほど、Realtek(とBUFFALO)はそんな感じのモノ作りなんですねー気をつけます。

      Realtekは本職的に多少関わりがあるのですが、わたくしはソフトとかWindows向けドライバの仕様の話しかしてないのでチップの品質とか全然気にしてなかったですね。

      --
      # mishimaは本田透先生を熱烈に応援しています
      親コメント
  • by Anonymous Coward on 2017年09月18日 2時20分 (#3281514)

    使ってるAPIの仕様がころころ変わってるようで、カーネルのバージョンがちょっと上がっただけでコンパイルが通らなくなることがよくあるので注意してくださいな。

typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...