起動時にhostapdを実行するにはどうすればよいですか?


8

新しくインストールしたSDカードでRaspbian Wheezyを実行しています。

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l GNU/Linux

Raspberry PiをWifiアクセスポイントにしたかったので、このチュートリアルの手順に従いました。

「仕上げ...」セクションにたどり着くまで、すべてが良かった。piを起動するたびにhostapdとdhcpを起動する必要がないようにするため、次のコマンドを実行する必要があります。

sudo update-rc.d hostapd enable 
sudo update-rc.d isc-dhcp-server enable

私がそれらを実行すると、私はこれを取得します:

pi@raspberrypi ~ $ sudo update-rc.d hostapd enable
update-rc.d: using dependency based boot sequencing
update-rc.d: error: no runlevel symlinks to modify, aborting!
pi@raspberrypi ~ $ sudo update-rc.d isc-dhcp-server enable
update-rc.d: using dependency based boot sequencing
pi@raspberrypi ~ $

したがって、2番目のコマンド(isc-dhcp-serverの場合)は成功しましたが、最初のコマンド(hostapdの場合)は成功しませんでした。私はそれが何について話しているのか分かりませんし、次に何をすべきか分かりません。

ソースからhostapdをビルドするための彼の指示を含め、私は上記のサイトの指示に正確に従っていました:

wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz
tar -zxvf v1.1.tar.gz
cd RTL8188-hostapd-1.1/hostapd
sudo make
sudo make install

(それで、isc-dhcp-serverが成功し、hostapdが失敗したのはそのためかと思います。aptからisc-dhcp-serverをインストールし、ソースからhostapdをインストールしたためです。)

エラーメッセージを検索したno runlevel symlinks to modify, aborting!ところ、このページが見つかりました。けれどもそれはbluetoothにかなり特有であるように見えました、そして、私はhostapdで私の状況にそれを適用する方法がわかりませんでした。そのページから収集した主なことは、「rc?.dのシンボリックリンクを手動で削除した場合、手動で再作成する必要がある」というトーンと、「十分ではなく、そこで何かを行っていたことが問題でした」何をすべきかについての理解。」

まあ、私は間違いなく手動でシンボリックリンクを削除していません。ランレベルの難解な詳細は間違いなく頭の上のものですが、チュートリアルで指示された内容以外は何もいじりませんでした。

この問題を解決するにはどうすればよいですか?

回答:


12

まずお試しください:

sudo update-rc.d hostapd defaults

これは本当にあなたがすでにだけで、呼ばれてきたものとは何が違うのではないdefaults代わりに、引数enable/ disable。次に、enable/ disableコマンドは期待どおりに機能するはずです。

あたりman update-rc.d

defaultsオプションを指定して実行すると、update-rc.dは、/ etc / rcrunlevel.d / [SK] NNnameという名前のリンクを作成します。このリンクは、init.dからのランレベルと依存関係情報を使用して、スクリプト/etc/init.d/nameを指します。スクリプトLSBコメントヘッダー。

したがって、これにより、さまざまな/etc/rc#.d/ディレクトリに不足しているシンボリックリンクが作成され、「no runlevel symlinks to modify」エラーが発生していました。


OPにupdate-rc.dスクリプトの機能を説明できますか?多くの人は、特にを使用してrootとして呼び出されたときに、知らない新しいコマンドを試すことに少しためらいがありますsudo
Phil B.

言及してくれてありがとうenable、私はそれに加えてそれを実行する必要がありましたdefaults
セバスチャン

0

まず、hostapdのinitスクリプトを記述します。たとえば、ファイル/etc/init.d/hostapdを作成し、そこに次のコンテンツを置くことができます。

#!/bin/sh

### BEGIN INIT INFO
# Provides:          hostapd
# Required-Start:
# Required-Stop:
# Should-Start:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Hostapd Service
# Description:       Intended to start hostapd on system startup.
### END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

case "$1" in
    start)
        /usr/sbin/hostapd -B
        ;;
    *)
        echo "Usage: $NAME {start}" >&2
        exit 3
        ;;
esac

次に、を実行してsudo update-rc.d hostapd defaultsから、を実行しsudo update-rc.d hostapd enableます。それは開始する必要がありhostapdます(実行レベル2,3,4&5のために)お使いのシステムを起動したとき。を使用service hostapd startして起動することもできますhostapd


作成されたファイルを呼び出すことはできません/etc/init.d/hostapd.confが、ただ/etc/init.d/hostapdそれは、configファイルではありませんので、。
クリスチャンビール

@ChristianBeer同意した!回答を更新しました。
Ashish Bista
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.