Raspberry PiでIoTなシステム開発:RASPBIAN JESSIEで同じ事をやってみる アクセスポイント化

Posted on Posted in 趣味的なIT・ネットの話題

Raspberry PiでIoTなシステム開発:ワイヤレスアクセスポイントとして動作させるまで(改訂版)RASPBIAN WHEEZY

さあ今度はJESSIE-LITEで挑戦です。基本前のコンテンツをコピーして書いているのですが、余りにそのままだとGoogleからコピーコンテンツを作ったと怒られそうなので、適宜単語を代えています。

imgファイルの取得

Raspbianのダウンロードサイト

スクリーンショット 2016-02-09 9.06.43

一週間前にリリースされたばかりでなんだかbleedingな感じですが、挑戦してみます。

これを使います。ローカルでunzip。場所はちゃんと覚えておく。

これでSDが刺さっているドライブのデバイス名をメモ。

eLinuxは1Mになっているけれどもエラーになる。1mで実行。ifはunzipしたイメージを指定。of以下のrdiskxのxはデバイス名の数字disk3s1の3の方に置き換える。

LITEはサイズが小さいので早いです。

接続

Raspberry PiでIoTなシステム開発:OSXのインターネット共有でIPを割り当ててログイン

Macのインターネット共有を利用してRaspberry PiにIPを振る。ただしアクセスは次項の通りホスト名で。

ログイン

Raspberry PiでIoTなシステム開発:Raspberry Piにホスト名でアクセスする

JESSIEもavahiが最初から導入されていました。bonjour browse等でサービスされている名称が分かります。OSXのターミナルからホスト名でログイン。

(2016/04/14注記追加)

Raspberry PiでIoTなIT:新しく認識されたインターフェースをavahiに自動的に認識させる | 法務ネット:弁護士 川内康雄

起動メッセージの中にカーネルバージョンが含まれなくなったようなのでunameで確認。

アップデートとハード的設定

Raspbianを入れたら最初はアップデート、タイムゾーン設定、電源設定変更。

しばらく時間がかかります。

スクリーンショット 2016-02-08 9.24.59

1 Expand Filesystemと4 Internationalization Optionを実行。4ではタイムゾーンをTokyoに設定。再起動するか聞かれるので再起動してログイン。

USBポートへの電力供給量を増やすため /boot/config.txtを編集。

末尾に追加。

USBドライバ設定の追加

以前は以下のファイルでIDを設定していましたが、今はすぐにWN-G150UMを認識してくれます。

何もしない状態でiwconfigにデバイスが現れます。realtekという文字が。

Wifiルータにつながるかをチェック

普通のルータに普通につながるかをまずは確認。Wheezyでは以下のファイルを編集していましたが、Jessieでは触りません。

wpa_suppulicant.confだけ編集。生パスワードが嫌な人はwpa_passphraseコマンドで作成。

wlan0を起こして見るとなんかエラーが出ますが、これは無視するのが通例のようです。既に起動していたらifdownをしてから。ifconfigでローカルルータのDHCPからIPが取れていれば正解。

pingは-Iを使えば出ていくルートを固定化できます。ルーターや下界と導通しているかチェック。

同じルーターの配下にある別のマシンからも導通していることをチェック。

なんで最初だけ失敗するのか謎ですが、つながったのでよしとします。

hostapdのインストール

本日時点で導入されるのはこちらのバージョン。

JESSIEになっても公式にアップされているバイナリだとrtl871xdrvを使えないようです。僕はWN-G150UMを使用しますので、バイナリを差し替えます。

Realtek

realtekサイトは今日もつながりません。とりあえずhostapdはGPLのようなので、その部分だけGoogle Driveに載せておきます。最初Wordpressのメディアとしてアップロードしていたのですが、これでやるとダウンロード時に壊れるみたいです。何でだろう。

wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz

piからはアドレスが指定しにくいので、母艦のMacでダウンロードしてからSFTPで/home/piにアップロード。FileZillaを使っています。Mac用のFTPクライアントとしては一番使いやすいと思います。なのに何故かマイナー。

コンパイルできました。hostapdとhostapd_cliが目的のファイルです。

これらを/usr/sbinにコピーします。/usr/local/sbinではありません。。localに入れてしまうと置き換えられずに、コマンドラインから起動したら/usr/local/sbinの方が、起動スクリプトからだと/usr/localから起動してしまう。これで大分とハマりました。

hostapdの設定

設定ファイルを編集。このファイルはもともとは無いので新規生成です。tabではファイル名補完できません。

ssidとwpa_passphraseはお好みのものに変更してください。構文が厳格で1字でもダメだとパースエラーになります。エラーになるときにはバイナリエディタとかで1バイト単位で確認してください。改行コードは0aになってますか?

WPASupplicantとの干渉を排除する必要は無かった

最初から入っているWPASupplicantを抜く必要があるという情報が多く下記の設定をしていたが、これを抜いても状況は変わらなかった。後記の通りinterfacesとwpa_supplicant.confの設定を変える方がいい。

この時点で再起動。

wpa_supplicantを動作させない

WPAsupplicantが動作するとそちらが優先してwlan0がWifiルータに接続しにいってしまう。fi.epitest.hostap.WPASupplicant.serviceの削除をしても改善されなかったので(細かい検証はできてません)、interfacesとwpa_supplicant.confの設定を変えて変更。

wpa-confをコメントアウト。

wpa_supplicant.confからは接続設定を外しておく。

ファイルの中身はこれだけ。接続関係の設定をすべて削除。

IPアドレスを固定化

アクセスポイントにするのでダイナミックIPは問題。そこで固定にします。Jessieから固定IP化の標準手順が変わり、/etc/dhcpcd.confに設定を記載するとの事です。

固定できました。dhcpcd.confの末尾に追記した設定内容はこちら。

hostapdで起動

サービスとして起動させる前に手動で実験。どこかの設定で失敗していてwlan0のIPが取れていないと、このメッセージが出てもAP名が配布されない。

こんな感じでwlan0: Setup of interface done.となれば成功。

スクリーンショット 2016-02-10 8.51.57

これはOSXのWifiアイコンのプルダウン。電波3本びんびん立ってますね。

S__6848515

こっちも。

OS起動時にhostapdを起動

自動起動させたいので設定ファイルを編集。起動スクリプトである/etc/init.d/hostapdがこのファイルを参照している。

行頭のコメントアウトを外してファイル名を指定。init.dに起動スクリプトがあるので、この設定をするだけで、OS起動時にhostapdが起動するようになる。

DHCPサーバーのインストール

デフォルトではインストールされていないので、インストールする。

最初は設定ができていないので起動に失敗している。

DHCPサーバーがちゃんと起動できるようにする

まずどのネットワークインターフェースDHCPサーバーを作動させるかを指定する。

末尾部分でINTERFACESの指定が空欄なのでここでwlan0を指定する。

次にどのようなルールでIPを割り当てるかを指定する。

下記の部分はコメントアウト。

ここのコメントは外す。

必要無いはずですが念のため起動を有効化。

ルールを追加。

Raspberry PiでIoTなIT:起動時dhcpcdによる無線LANインターフェースへのIP割り当てが遅くてisc-dhcp-serverが起動に失敗する

ここ書いたようにそのままだとOS起動時にはDHCPサーバーを起動できないので、時間待ちを設定。

start-stop-daemonの前に5秒待ちを挿入しました。

再起動してアクセスしてみる。

S__6856707

終了!

お疲れ様です。やっぱり一筋縄ではいきませんね。はい、疲れました。

 

 

 


Facebooktwittergoogle_pluspinterestlinkedinmail
納得したらすぐにシェア!