web-dev-qa-db-ja.com

Hostapdを接続するには、デバイスを手動で再起動する必要があります

私は現在、WiFiカードでNAS)を使用してパドレス用のWiFiホットスポットを設定しています。

セットアップ:Ubuntu 13.10

Hostapdはeth0(br0)とブリッジされており、手動で再起動するとうまく機能します

Sudoサービスhostapdの再起動
*高度なIEEE802.11管理hostapdを停止しています[OK]
*高度なIEEE802.11管理hostapdを開始しています[OK}

ただし、再起動するとSSIDが表示されますが、接続しようとすると、ワイヤレスデバイスから(認証エラー/不正なパスワード)が表示されます。

上記のコマンドをssh/localターミナルで実行すると、すべてのデバイスが完全に接続されます。

これを回避するために、遅延cronジョブを追加してサービスを再起動してみました。

@reboot sleep 30; /fixscripts/hostapdstart.sh

上記と同様の形式で、サービスを停止して60秒後に開始するスクリプトも作成しました。 (SSIDが消え、60秒後に再び表示されるため、スクリプトは実行されたと思います)。

ただし、元の問題によると、wifiデバイスには引き続き認証エラーが表示され、以前と同様に、ログオンしてサービスを手動で再起動すると機能します。

以下は私のhostapd.confです。

ssid = Caprica
wpa_passphrase = mypassword
interface = wlan0
bridge = br0
auth_algs = 3
channel = 7
driver = nl80211
hw_mode = g
ieee80211n = 1
wmm_enabled = 1
logger_stdout = -1
logger_stdout_level = 2
max_num_sta = 5
rsn_pairwise = CCMP
wpa = 2
wpa_key_mgmt = WPA-PSK
wpa_pairwise = TKIP CCMP

1
Alex

以下の修正は「機能しました」が、デバイスは短時間で切断されました。最終的に、インストールしたUbuntu 12.04をクリーンアップしましたが、すべて正常に動作しているようです。

  1. RcXファイルからhostapdサービスを削除して、サービスが自動的に開始されないようにします。

    Sudo update-rc.d -f hostapd remove

  2. 起動直後にサービスを開始するためのcronジョブを提供します

  3. 次に、開始直後にサービスを再起動するためのCronジョブを提供します

Cronファイルを変更するには;

Sudo crontab -e

これが私が追加したCronJobsです。

@reboot sleep 10; /fixscripts/hostapdstart.sh
@ restart sleep 25; /fixscripts/hostapdrestart.sh

これにより、起動から10秒後にサービスが開始され、15(25-10)秒後にサービスが再開されます。

1
Alex

Hostapdベースのアクセスポイントを再起動した後、クライアント(Androidフォン)が自動的に再接続せず、SSID名の下に「認証の問題」と表示されたため、パスワードを再入力する必要がありました。

/ dev/randomの代わりに/ dev/urandomを使用していることがわかりました(これはブロックされ、認証タイムアウトを引き起こします)

たとえば、/ etc/rc.localでこれを使用します:

 #!/bin/bash
 if [ ! -f /dev/random.orig ] ; then
   mv /dev/random /dev/random.orig
   ln /dev/urandom /dev/random
 fi

または(賢明だと思う場合)代わりにhavegedをインストールします(/ dev/randomをブロックせずにエントロピーをインクリメント(?)する) )問題を解決していました。

例:

 apt-get install haveged
1
luxigo