ethosでUSB無線LAN子機を使うまでの道のり

ご無沙汰しております。

気がつくともうBitcoinが日本円で約80万円ですね、素敵すぎ。

モナコインの祭りには乗れなかってので、とても悔しい日々を送っておりました。買おう買おうとおもって、30円から50円になり、この10月になんといきなり600円まで爆騰。

嗚呼、30円の時に買っておけば・・・と、コイナ-あるある状態でした。

さて、本日はethosで構築したリグを別部屋に移動させたく、無線LANを通じてネットに繋げようと、ドハマリした過程とその解決方法を記していきたいと思います。

まずはethosとはなんぞや、というお話なのですが、これはまた長くなりますので、今回は、とりあえずethosをUSB無線LAN子機繋げて、無線LANで運用したいという方法のみ記していきます。

(追記:「ethosとはなんぞな」というそのまんまな記事をかきましたので、よろしければ御覧ください。)

ethosの詳しい解説や初期設定などは、他の方々がたくさん記事を書いておられますし、私もまた後の記事にて書いていこうと思いますので、お待ち下さい。
(17/12/05:初期設定記事を追加しました。よろしければご覧ください)

まず、私のネットワーク構成からお知らせいたします。

回線:NTTひかり(ONU:PR-500KI)

無線LANルータ:NETGEAR Nighthawk X4S R7800-100JPS 802.11ac 2600Mbps

無線LANルータ子機:NETGEAR A6210-100JPS 11ac/a/b/g/n 867+300Mbps

以上のように、かなりのハイパフォーマンスネットワークになっております。無線LAN環境なのに鬼のように早いです。

しかし、Windowsでは、NETGEARのサイトからドライバをダウンロードしてインストールすれば一発で使えるようになるUSB子機も、ethosではそうは問屋が卸しませんでした。

まず、前提として、ethosはそのベースOSをLinuxのディストリビューションの1つ、Ubuntuから持ってきております。

そして、現在主流となっている最新のUbuntu16系ではなく、Ubuntu14系であるところもハマるポイントです。

(ちなみに、Ubuntuはその元はDebianから来ており、ネットワーク周りについてはとくにDebianからの流れがそのまま残ってます)

さて、Linux系のOSを触ったことがある方ならわかると思いますが、とにかくあとからくっつけるもの(USBやらPCIやらもろもろ)のドライバが無い! ということがよくあります。頻繁にあります。

私もこのUSB子機をぶっ刺したからといって、即使えるとは全く思っていません。もちろんまずはドライバ探しからはじめました。

NETGEARのサイトに行った所、Linux用のドライバはどこを探しても見つかりません。子機名である「A6210」で検索をかけたところ、英語サイトにて、「NETGEARはLinux用のドライバを出す気はさらさらないようだ」とのコメントをいくつも発見。なるほど、公式のLinuxドライバはないということだなと理解。

そこで「NETGEAR A6210 ubuntu14 driver」で検索、いくつか見つかりましたが、
https://github.com/jurobystricky/Netgear-A6210
こちらが直接ドライバを置いてくれていました。

gitの使い方がわからなくても、以下のgit~から始まるコマンドを叩けば、勝手にそのディレクトリにNetgear-A6210ディレクトリが出来上がります。というか、下記コマンドでとりあえずインストールすればOK。

# git clone https://github.com/jurobystricky/Netgear-A6210
# cd Netgear-A6210
# make
# sudo make install

さて、これを通して、とりあえずドライバはインストールできたことになりましたが、ifconfig打っても、いつものeth0が出るだけ、iwconfig打ってもwlan0は無反応。

困った・・・、ということで、先程のgitのREADMEを片っ端から読んでみると、README_STA_usbなるものを発見。

どうやら、このドライバの元になっているのはRalink TechのRT2870 Wireless Lan Linux Driverだと知る。

これらしいなと当たりをつけて読み進んでいくと、

$/sbin/ifconfig ra0 inet YOUR_IP up

というコマンドが・・・。
ra0ってなんぞ? となりながら、とりあえずどうもこれが立ち上げる方法かと思い、走らせると、「Device not found」との非情なお知らせが・・・。

そんなデバイスねぇよということなのだが、じゃあra0ってなんぞやと調べはじめてまたドハマリ。

ここに記しておきますが、ra0は別に使わなくていいです。別のディストリビューションでra0がドライバとしてaliasを切ったりする記述が多かったので、ずっとra0にこだわっていましたが、少なくともehtosに関しては、wlan0で動きます。ra0ではなくwlan0で行ったほうが無難かと。(あまりra0を分かっていないので勝手なこといって申し訳ない)

ra0の呪いを受けたまま、さて先程の方法では動かないとわかり、「ra0 ubuntu14」などでいろいろ調査した所、どうも、wpa_supplicantというパッケージをインストールする必要があるとようやくたどり着きました。

wpa_supplicantはまぁざっくりいえば、WPA形式で無線LANを使用するためのアプリみたいなもんです。(違ってたらごめんなさい)

では、インストールをば。

# sudo apt-get-ubuntu wpa_supplicant

ここで見慣れぬ「apt-get-ubuntu」なるコマンドが出てきましたが、ethosではapt-getが使えません。かわりにapt-get-ubuntuを使えと怒られますので、素直に従いましょう。

(余談ですが、OSの機能を維持するためにapt-getを禁止しているので、OSの根本を変更するようなものをインストールしたりすると、ethosが立ち上がらなくなります。何度かなりました。)

で、このインストールしたwpa_supplicantの設定ですが、まずSSIDとKEYを登録しなきゃいけません。

# sudo wpa_passphrase [SSID] [KEY]

SSIDとKEYに適宜、ご自分の環境のものを書いてください。
そうすると、私の環境では、/etc/wpa_supplicant/下に勝手にwpa_supplicant.confが出来上がり、中には

network={
        ssid="[SSID]"
        #psk="[SSID]"
        psk=a12b3b310af24363b57e20ef10b27a8da535cd8f5bf01b0ad7b63a352bc345b1
}

てな具合にキーが16進数化されていました。

でもって、これを書き加えて

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
        ssid="[SSID]"
        proto=WPA WPA2
        key_mgmt=WPA-PSK
        pairwise=CCMP TKIP
        group=CCMP TKIP WEP104 WEP40
        #psk="[SSID]"
        psk=a12b3b310af24363b57e20ef10b27a8da535cd8f5bf01b0ad7b63a352bc345b1
}

とします。

上記設定ではWPAでもWPA2でも、WPA-PSKでもTKIPでもなんでもこいです。

これを今度はパーミッション変更します。

# sudo chmod 600 wpa_supplicant.conf

てな具合です。

で、ethosにはNetwork-managerがないので、/etc/network/interfacesを編集します。

# sudo vi /etc/network/interfaces
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address your IP
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

上記の記述をeth0の下に加えてください。
your IPのところにローカルIPを入れてください。192.168系ならgatewayはだいたい1です。第三オクテットはルータによって変わりますが、NETGEARのR7800は1でした。
dns-nameserverもここでデフォルトゲートウェイと同値を指定するだけでOKなようです。

ここで重要な点があります。上記のinterfacesにあるeth0の記述を全部コメントアウトしてください。
具体的には全ての行の始まりに「#」を付けてください。

#iface eth0 inet dhcp
#iface eth0 inet static
#address 192.168.1.28
#netmask 255.255.255.0
#gateway 192.168.1.1
#dns-nameserver 192.168.1.1

こんな感じです。eth0とwlan0の設定を同時に読み込むと、アホになって、ネットに繋がらなくなるようです。

さて、ここまでが前準備。

先程インストールしたドライバである、Netgear-A6210のディレクトリの下os/linuxに入ってください。

# cd /home/ethos/Netgear-A6210/os/linux

config.mkファイルをいじります。

# sudo vi config.mk
# Support Wpa_Supplicant
# i.e. wpa_supplicant -Dralink
HAS_WPA_SUPPLICANT=y

# Support Native WpaSupplicant for Network Maganger
# i.e. wpa_supplicant -Dwext
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

上記の場所のHAS_WPA_SUPPLICANTとHAS_NATIVE_WPA_SUPPLICANT_SUPPORTを=yにしてください。
どうもwpa_supplicantの立ち上げはralinkではなく、wextを使うようです。元のドライバがralinkのものだったので、ここでもドハマリしました・・・。

これが済んだら、またmakeです。

# make
# sudo make install

これですね。

そして「r」で再起動。
私のところでは、再起動したらwlan0が認識されて動き始めましたが、もし動かない時は、wpa_supplicantを起動するコマンドを打って、きちんと立ち上がるか試してみてください。

# sudo wpa_supplicant -iwlan0 -Dwext -c wpa_supplicant.conf

wpa_supplicantの-iや-Dのパラメタは記述ミスではなく、くっつけて書くそうです。なぜか-cのconfig指定は離れています。

この設定で、基本的には動くはずです。
もはや忘備録になってしまいましたが、現に動いているので良しとします。

実は、ここに示している以外にも、かなりいろいろ試しました。lsmodで出てくるr8169問題なんかも気になって、r8168を入れ直したり(その際もダウンロード先がわからなくなったり・・・)、呪いのra0にaliasを切るため、modprob.d下のファイルにいろいろ書いてみたり。

実はLinuxはWeb系の仕事で使っていただけで、ほとんど決まったコマンドしか使ったことがなく、さらにそれも何年も前の話なので、まずは基本的なコマンドから調べなければならず・・・。

足掛け3日間の苦行となってしまったのでした。

ethosの情報はまだ少ないので、これでethos使いのみなさまの一助となれば、さいわいです。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA