diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans new file mode 100644 index 000000000..c508c50c8 --- /dev/null +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Copyright (c) 2017-2019, Digi International Inc. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, you can obtain one at http://mozilla.org/MPL/2.0/. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +[ "$IFACE" = "wlan1" ] || exit 0 + +if [ "$MODE" = "start" ]; then + # Check for default MAC addresses + if [ -s "/proc/device-tree/wireless/mac-address1" ] && + [ -s "/proc/device-tree/wireless/mac-address2" ] && + [ -s "/proc/device-tree/wireless/mac-address3" ]; then + : + else + echo "[WARN] Using default MAC addresses for virtual interfaces, please program them referring to the Digi U-Boot Documentation" + fi + + if [ ! -d "/sys/class/net/wlan1" ]; then + # This will create a second wireless network device + iw dev wlan0 interface add wlan1 type __ap + fi +elif [ "$MODE" = "stop" ]; then + if [ -d "/sys/class/net/wlan1" ]; then + # Delete the wlan1 interface once it's down + iw dev wlan1 del + fi +fi diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans.sh b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans.sh deleted file mode 100644 index a3eb3dc7b..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2017, Digi International Inc. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, you can obtain one at http://mozilla.org/MPL/2.0/. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# - -# This will create a second wireless network device -if [ -s "/proc/device-tree/wireless/mac-address1" ] && - [ -s "/proc/device-tree/wireless/mac-address2" ] && - [ -s "/proc/device-tree/wireless/mac-address3" ]; then - : -else - echo "[WARN] Using default MAC addresses for virtual interfaces, please program them referring to the Digi U-Boot Documentation" -fi - -if [ ! -d "/sys/class/net/wlan1" ]; then - # This will create a second wireless network device - iw dev wlan0 interface add wlan1 type __ap -fi diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend index 3fb7e09aa..7fc60a0b3 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend @@ -17,19 +17,19 @@ SRC_URI_append = " \ SRC_URI_append_ccimx6qpsbc = "\ file://interfaces.wlan1.static \ file://interfaces.wlan1.dhcp \ - file://virtwlans.sh \ + file://virtwlans \ " SRC_URI_append_ccimx6ul = "\ file://interfaces.wlan1.static \ file://interfaces.wlan1.dhcp \ - file://virtwlans.sh \ + file://virtwlans \ " SRC_URI_append_ccimx8x = "\ file://interfaces.wlan1.static \ file://interfaces.wlan1.dhcp \ - file://virtwlans.sh \ + file://virtwlans \ " SYSTEMD_SERVICE_${PN} = "ifupdown.service" @@ -69,8 +69,9 @@ do_install_append() { } install_virtwlans() { - install -d ${D}${base_bindir} - install -m 0755 ${WORKDIR}/virtwlans.sh ${D}${base_bindir} + install -d ${D}${sysconfdir}/network/if-pre-up.d + install -m 0755 ${WORKDIR}/virtwlans ${D}${sysconfdir}/network/if-pre-up.d/ + ln -s ../if-pre-up.d/virtwlans ${D}${sysconfdir}/network/if-post-down.d/virtwlans } WLAN1_POST_UP_ACTION = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemctl start hostapd@wlan1.service', '/etc/init.d/hostapd start', d)}"