mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	flying edit only when different
This commit is contained in:
		
							parent
							
								
									1bdd038b41
								
							
						
					
					
						commit
						7ca4664473
					
				
					 1 changed files with 33 additions and 8 deletions
				
			
		|  | @ -1,7 +1,12 @@ | |||
| #!/bin/bash | ||||
| IFACE={{ discovered_wireless_iface }} | ||||
| RASPBIAN=0 | ||||
| NETPLAN=0 | ||||
| SSID="" | ||||
| # when we get here br0 should be available and dbus wpa_supplicant was started if enabled. None | ||||
| # of the backends that use wpa_supplicant should be active yet based on the Before= After= lines | ||||
| # in the wifi-test.service unit file. | ||||
| 
 | ||||
| # covers systemd-networkd | ||||
| if [ -f /etc/wpa_supplicant/wpa_supplicant-$IFACE.conf ]; then | ||||
|     SSID=`grep ssid /etc/wpa_supplicant/wpa_supplicant-$IFACE.conf | awk -F = '{print $2}' | sed -r s/\"// | sed -r s/\"//` | ||||
|  | @ -9,6 +14,7 @@ fi | |||
| 
 | ||||
| # covers raspbian | ||||
| if [ -f /etc/wpa_supplicant/wpa_supplicant.conf ]; then | ||||
|     RASPBIAN=1 | ||||
|     SSID=`grep ssid /etc/wpa_supplicant/wpa_supplicant.conf | awk -F = '{print $2}' | sed -r s/\"// | sed -r s/\"//` | ||||
| fi | ||||
| 
 | ||||
|  | @ -19,12 +25,17 @@ if [ -f /run/netplan/wpa-$IFACE.conf ]; then | |||
|     sed 's|ctrl_interface=/run/wpa_supplicant|&\ncountry={{ host_country_code }}|' /run/netplan/wpa-$IFACE.conf | ||||
| fi | ||||
| # IIAB hint for NetworkManager | ||||
| # could scrape /etc/NetworkManager/system-connections/ looking for ssid | ||||
| if [ -f /etc/iiab/iiab.env ]; then | ||||
|     source /etc/iiab/iiab.env | ||||
|     if [ ! -z $CLIENT_SSID ]; then | ||||
|        SSID=$CLIENT_SSID | ||||
|     fi | ||||
| fi | ||||
| # might need to start the dbus wpa_supplicant | ||||
| #if [ $RASPBIAN -eq 1 ]; then | ||||
| #    systemctl start wpa_supplicant | ||||
| #fi | ||||
| sleep 2 | ||||
| wpa_cli -i $IFACE scan > /dev/null | ||||
| sleep 1 | ||||
|  | @ -40,14 +51,28 @@ echo "Using $FREQ2 for $SSID" | |||
| CHAN=$(($FREQ2 - 2407 )) | ||||
| CHAN=$(($CHAN / 5 )) | ||||
| echo "channel is $CHAN for $SSID" | ||||
| cp /etc/hostapd/hostapd.conf.iiab /etc/hostapd/hostapd.conf | ||||
| sed -i -e "s/^channel.*/channel=$CHAN/" /etc/hostapd/hostapd.conf | ||||
| systemctl stop wpa_supplicant | ||||
| systemctl start hostapd | ||||
| systemctl start wpa_supplicant | ||||
| if [ $NETPLAN -eq 1 ]; then | ||||
|     systemctl restart netplan-wpa-wlan0.service | ||||
| HOSTAPD=`grep channel /etc/hostapd/hostapd.conf | awk -F = '{print $2}'` | ||||
| echo "Hostapd set for $HOSTAPD" | ||||
| if [ $CHAN -ne $HOSTAPD ]; then | ||||
|     echo "Editing Hostapd for channel $CHAN" | ||||
|     cp /etc/hostapd/hostapd.conf.iiab /etc/hostapd/hostapd.conf | ||||
|     sed -i -e "s/^channel.*/channel=$CHAN/" /etc/hostapd/hostapd.conf | ||||
|     systemctl stop wpa_supplicant | ||||
|     systemctl start hostapd | ||||
|     systemctl start wpa_supplicant | ||||
|     # This is more of a netplan workaround should go away. | ||||
|     if [ $NETPLAN -eq 1 ]; then | ||||
|         systemctl restart netplan-wpa-$IFACE.service | ||||
|     fi | ||||
| else | ||||
|     #we started it stop it now, dhcpcd should launch it's version anyway | ||||
| #    if [ $RASPBIAN -eq 1 ]; then | ||||
| #        systemctl stop wpa_supplicant | ||||
| #    fi | ||||
|     # firmware might force the need to restart anyway | ||||
| #    systemctl stop wpa_supplicant | ||||
|     systemctl start hostapd | ||||
| #    systemctl start wpa_supplicant | ||||
| fi | ||||
| systemctl stop dnsmasq.service | ||||
| systemctl start dnsmasq.service | ||||
| exit 0 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue