When using systemd, putting the wlan1 interface up wasn't working because it
was relying on initscripts that are no longer in the filesystem.
Add a parametrized version of the upstream hostapd service to be able to use a
configuration that's different from the default one. Also, modify the
generation of the wlan1 entry in /etc/network/interfaces to be able to use
different post-up/pre-down hooks depending on the init manager that's being
used.
https://jira.digi.com/browse/DEL-6504
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The postinst script tries parsing the wireless MAC address from the sysfs, and
in case of failure, obtains a random string from /dev/urandom. This caused two
problems when booting with systemd:
* The wifi interface's sysfs entry is not available because the interface
hasn't had time to start up yet, forcing the script to always resort to the
/dev/urandom fallback.
* Even though the postinst scripts are run after populating the volatile
filesystems (as can be seen in run-postinsts.service's dependencies), trying
to read either /dev/random or /dev/urandom at this point in the system's
initialization causes it to lock up indefinitely.
To avoid either situation, add the following changes:
* Immediately exit when running on a non-wireless target, as the script isn't
necessary in this use case.
* Parse the wireless mac address from /proc/device-tree/wireless, which is
guaranteed to always be available when the script runs. By doing this, we can
remove the /dev/urandom fallback entirely.
https://jira.digi.com/browse/DEL-6415
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
If two or more targets are in the same environment, all of them will
broadcast the same SSID, which may be a problem when a client wants
to connect to a specific device.
Use the last bytes of the non-virtual wireless MAC for the name of the
SSID, a random value with no hexadecimal characters is used if the MAC
is not available.
Also drop 'wpa2aes' from the SSID.
https://jira.digi.com/browse/DEL-4129
Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
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>