Comment faire fonctionner hostapd au démarrage?


8

J'utilise Raspbian Wheezy, sur une carte SD fraîchement installée:

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

Je voulais faire de mon Raspberry Pi un point d'accès Wifi, j'ai donc suivi les instructions de ce tutoriel .

Tout s'est bien passé jusqu'à ce que j'arrive à la section "Finition ...". Il dit que pour éviter d'avoir à démarrer hostapd et dhcp chaque fois que je démarre le pi, je dois exécuter ces commandes:

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

Quand je les lance, j'obtiens ceci:

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 ~ $

Ainsi, la deuxième commande (pour isc-dhcp-server) a réussi, mais la première commande (pour hostapd) ne l'a pas été. Je ne sais pas de quoi il parle et je ne sais pas quoi faire ensuite.

J'avais suivi exactement les instructions sur le site susmentionné, y compris ses instructions pour créer hostapd à partir de la source:

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

(Donc, je me demande si c'est pourquoi isc-dhcp-server a réussi et hostapd a échoué; parce que j'ai installé isc-dhcp-server depuis apt et hostapd depuis source.)

J'ai recherché le message d'erreur no runlevel symlinks to modify, aborting!et trouvé cette page . Cela semblait assez spécifique au bluetooth, et je ne savais pas comment l'appliquer à ma situation avec hostapd. La principale chose que j'ai glanée sur cette page était le ton de "Si vous supprimez les liens symboliques dans rc? .D manuellement, vous devrez les recréer manuellement" et "Ce qui a mal tourné, c'est que vous faisiez des choses là-dedans sans suffisamment compréhension de ce qui doit être fait. "

Eh bien, je n'ai certainement supprimé aucun lien symbolique manuellement. Et bien que les détails ésotériques des niveaux d'exécution soient définitivement au-dessus de ma tête, je n'ai rien gâché, sauf exactement ce que le tutoriel m'a dit de faire.

Avez-vous des idées sur la façon de résoudre ce problème?

Réponses:


12

Veuillez d'abord essayer:

sudo update-rc.d hostapd defaults

Ce n'est vraiment pas différent de ce que vous avez déjà appelé, juste avec un defaultsargument au lieu de enable/ disable. Ensuite, je pense que les commandes enable/ disabledevraient fonctionner comme prévu.

Par man update-rc.d:

Lorsqu'il est exécuté avec l'option par défaut, update-rc.d crée des liens nommés /etc/rcrunlevel.d/[SK en-tête de commentaire LSB du script.

Cela devrait donc créer les liens symboliques manquants dans les différents /etc/rc#.d/répertoires, pour lesquels vous obteniez l' no runlevel symlinks to modifyerreur " ".


Pouvez-vous expliquer à l'OP ce que fait le update-rc.dscript? Beaucoup de gens hésitent un peu à essayer de nouvelles commandes qu'ils ne connaissent pas, surtout lorsqu'elles sont appelées en tant qu'utilisateur root sudo.
Phil B.

Merci d'avoir mentionné enable, j'avais besoin de faire ça en plus defaults.
sebastian

0

Tout d'abord, écrivez un script init pour hostapd. Par exemple, vous pouvez créer un fichier /etc/init.d/hostapdet y mettre le contenu suivant.

#!/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

Maintenant, cours sudo update-rc.d hostapd defaults, alors sudo update-rc.d hostapd enable. Il devrait démarrer hostapdlorsque vous démarrez votre système (pour les niveaux d'exécution 2,3,4 et 5). Vous pouvez également utiliser service hostapd startpour commencer hostapd.


Le fichier créé ne doit pas être appelé /etc/init.d/hostapd.confmais simplement /etc/init.d/hostapdcar ce n'est pas un fichier de configuration.
Christian Beer

@ChristianBeer a accepté! Mis à jour la réponse.
Ashish Bista
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.