#!/bin/sh - # Copyright (C) 2018, STMicroelectronics - All Rights Reserved # # For changing the password and SSID, please populate the file /etc/default/hostapd # cat /etc/default/hostapd # HOSTAPD_SSID=STExampleNetwork # HOSTAPD_PASSWD=stm32mp1 if [ -f /etc/default/hostapd ]; then source /etc/default/hostapd else HOSTAPD_SSID=STDemoNetwork HOSTAPD_PASSWD=stm32mp1 fi WLAN_INTERFACE=$(/sbin/ip link show wlan0 | head -n 1 | awk '{print $2}' | tr '\n' ' ' | sed "s/://" | sed "s/ //g") network_hotspot_install() { # systemd netword hotsopt configuration cat > /lib/systemd/network/hostapd.network << EOF [Match] Name=$WLAN_INTERFACE [Network] Address=192.168.72.1/24 DHCPServer=yes IPForward=ipv4 IPMasquerade=yes [DHCP] CriticalConnection=true UseTimezone=false [DHCPServer] EmitTimezone=no EOF # hotapd configuration cat > /etc/hostapd.conf << EOF interface=$WLAN_INTERFACE driver=nl80211 # mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g) hw_mode=g ssid=$HOSTAPD_SSID channel=7 wmm_enabled=0 macaddr_acl=0 # Wi-Fi closed, need an authentication auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=$HOSTAPD_PASSWD wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP EOF } network_hotspot_erase() { rm -f /lib/systemd/network/hostapd.network rm -f /etc/hostapd.conf } # ------------------------------------------- # ------------------------------------------- if test `ifconfig $WLAN_INTERFACE > /dev/null 2>&1` ; then echo "No WLAN0 interface available !!!!" exit 1 fi case $1 in start) #verify if file are present if test ! -f /lib/systemd/network/hostapd.network ; then network_hotspot_install fi # if not install file /sbin/ip link set wlan0 up # start service systemctl daemon-reload systemctl restart systemd-networkd.service systemctl restart hostapd ;; stop) # stop service systemctl stop hostapd /sbin/ip link set wlan0 down # remove file network_hotspot_erase systemctl restart systemd-networkd.service systemctl daemon-reload ;; *) echo "Help: $0 [start|stop]" ;; esac