hostapd: parametrize hostapd init script per interface
The original init script hardcodes the configuration file to use so it
cannot be re-utilized for concurrent AP/AP mode where two interfaces can
be used as SoftAP.
This commit uses the variable ${IFACE} to:
- select a specific configuration file per interface:
/etc/hostapd_${IFACE}.conf
- create a specific PID file per interface:
/var/run/hostapd.${IFACE}.pid
With this, the /etc/network/interfaces can use the script for using SoftAP
in different wireless interfaces.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
This commit is contained in:
parent
5d2d0011d0
commit
2dcf33b283
|
|
@ -4,7 +4,7 @@ interface=wlan1
|
|||
driver=nl80211
|
||||
|
||||
# WPA2-AES encryption
|
||||
ssid=ap-wpa2aes_a
|
||||
ssid=ap-wlan1-wpa2aes_a
|
||||
auth_algs=1
|
||||
wpa=2
|
||||
wpa_key_mgmt=WPA-PSK
|
||||
|
|
@ -4,7 +4,7 @@ interface=wlan0
|
|||
driver=nl80211
|
||||
|
||||
# WPA2-AES encryption
|
||||
ssid=ap-wpa2aes_a
|
||||
ssid=ap-wlan0-wpa2aes_a
|
||||
auth_algs=1
|
||||
wpa=2
|
||||
wpa_key_mgmt=WPA-PSK
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/sh
|
||||
DAEMON=/usr/sbin/hostapd
|
||||
NAME=hostapd
|
||||
DESC="HOSTAP Daemon"
|
||||
PIDFILE="/var/run/hostapd.${IFACE}.pid"
|
||||
ARGS="/etc/hostapd_${IFACE}.conf -B -P ${PIDFILE}"
|
||||
|
||||
test -f $DAEMON || exit 0
|
||||
|
||||
set -e
|
||||
|
||||
# source function library
|
||||
. /etc/init.d/functions
|
||||
|
||||
delay_stop() {
|
||||
count=0
|
||||
while [ $count -lt 9 ] ; do
|
||||
if pidof $DAEMON >/dev/null; then
|
||||
sleep 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
count=`expr $count + 1`
|
||||
done
|
||||
echo "Failed to stop $DESC."
|
||||
return 1
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting $DESC: "
|
||||
start-stop-daemon -S -x $DAEMON -- $ARGS
|
||||
echo "$NAME."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping $DESC: "
|
||||
start-stop-daemon -K --oknodo -x $DAEMON -p ${PIDFILE}
|
||||
echo "$NAME."
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
delay_stop && $0 start
|
||||
;;
|
||||
reload)
|
||||
echo -n "Reloading $DESC: "
|
||||
killall -HUP $(basename ${DAEMON})
|
||||
echo "$NAME."
|
||||
;;
|
||||
status)
|
||||
status $DAEMON
|
||||
exit $?
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
@ -2,11 +2,19 @@
|
|||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
|
||||
|
||||
SRC_URI += "file://hostapd.conf"
|
||||
SRC_URI_append = " file://hostapd_wlan0.conf"
|
||||
SRC_URI_append_ccimx6ul = " file://hostapd_wlan1.conf"
|
||||
|
||||
do_install_append() {
|
||||
# Overwrite the default hostapd.conf with our custom file
|
||||
install -m 0644 ${WORKDIR}/hostapd.conf ${D}${sysconfdir}
|
||||
# Remove the default hostapd.conf
|
||||
rm -f ${WORKDIR}/hostapd.conf
|
||||
# Install custom hostapd_IFACE.conf file
|
||||
install -m 0644 ${WORKDIR}/hostapd_wlan0.conf ${D}${sysconfdir}
|
||||
}
|
||||
|
||||
do_install_append_ccimx6ul() {
|
||||
# Install custom hostapd_IFACE.conf file
|
||||
install -m 0644 ${WORKDIR}/hostapd_wlan1.conf ${D}${sysconfdir}
|
||||
}
|
||||
|
||||
# Do not autostart hostapd daemon, it will conflict with wpa-supplicant.
|
||||
|
|
|
|||
Loading…
Reference in New Issue