|  | @@ -366,6 +366,8 @@ EXTERNAL_IP_SERVICES=( \
 | 
	
		
			
			| 366 | 366 |    'http://ipinfo.io/' \
 | 
	
		
			
			| 367 | 367 |    'http://httpbin.org/ip')
 | 
	
		
			
			| 368 | 368 |  
 | 
	
		
			
			|  | 369 | +WIFI_CHANNEL=2
 | 
	
		
			
			|  | 370 | +
 | 
	
		
			
			| 369 | 371 |  # cjdns settings
 | 
	
		
			
			| 370 | 372 |  ENABLE_CJDNS="no"
 | 
	
		
			
			| 371 | 373 |  CJDNS_PRIVATE_KEY=
 | 
	
	
		
			
			|  | @@ -377,6 +379,8 @@ CJDNS_PORT=
 | 
	
		
			
			| 377 | 379 |  # B.A.T.M.A.N settings
 | 
	
		
			
			| 378 | 380 |  ENABLE_BATMAN="no"
 | 
	
		
			
			| 379 | 381 |  BATMAN_IPV6=
 | 
	
		
			
			|  | 382 | +BATMAN_CELLID='02:BA:00:00:03:01'
 | 
	
		
			
			|  | 383 | +ESSID='mesh'
 | 
	
		
			
			| 380 | 384 |  
 | 
	
		
			
			| 381 | 385 |  # Babel mesh
 | 
	
		
			
			| 382 | 386 |  ENABLE_BABEL="no"
 | 
	
	
		
			
			|  | @@ -746,6 +750,15 @@ function read_configuration {
 | 
	
		
			
			| 746 | 750 |    fi
 | 
	
		
			
			| 747 | 751 |  
 | 
	
		
			
			| 748 | 752 |    if [ -f $CONFIGURATION_FILE ]; then
 | 
	
		
			
			|  | 753 | +      if grep -q "WIFI_CHANNEL" $CONFIGURATION_FILE; then
 | 
	
		
			
			|  | 754 | +          WIFI_CHANNEL=$(grep "WIFI_CHANNEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			|  | 755 | +      fi
 | 
	
		
			
			|  | 756 | +      if grep -q "BATMAN_CELLID" $CONFIGURATION_FILE; then
 | 
	
		
			
			|  | 757 | +          BATMAN_CELLID=$(grep "BATMAN_CELLID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			|  | 758 | +      fi
 | 
	
		
			
			|  | 759 | +      if grep -q "ESSID" $CONFIGURATION_FILE; then
 | 
	
		
			
			|  | 760 | +          ESSID=$(grep "ESSID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			|  | 761 | +      fi
 | 
	
		
			
			| 749 | 762 |        if grep -q "TOX_PORT" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 750 | 763 |            TOX_PORT=$(grep "TOX_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 751 | 764 |        fi
 | 
	
	
		
			
			|  | @@ -1726,188 +1739,135 @@ function mesh_batman_bridge {
 | 
	
		
			
			| 1726 | 1739 |        BATMAN_IPV6="$IPV6_NETWORK:$a:$b:$c:$d"
 | 
	
		
			
			| 1727 | 1740 |    fi
 | 
	
		
			
			| 1728 | 1741 |  
 | 
	
		
			
			| 1729 |  | -  echo '#!/bin/sh' > /etc/init.d/batman
 | 
	
		
			
			| 1730 |  | -  echo '### BEGIN INIT INFO' >> /etc/init.d/batman
 | 
	
		
			
			| 1731 |  | -  echo '# Provides:          mesh-node' >> /etc/init.d/batman
 | 
	
		
			
			| 1732 |  | -  echo '# Required-Start:    $local_fs $remote_fs $network' >> /etc/init.d/batman
 | 
	
		
			
			| 1733 |  | -  echo '# Required-Stop:     $local_fs $remote_fs' >> /etc/init.d/batman
 | 
	
		
			
			| 1734 |  | -  echo '# Default-Start:     2 3 4 5' >> /etc/init.d/batman
 | 
	
		
			
			| 1735 |  | -  echo '# Default-Stop:      0 1 6' >> /etc/init.d/batman
 | 
	
		
			
			| 1736 |  | -  echo '# Short-Description: Enable batman-adv based mesh node' >> /etc/init.d/batman
 | 
	
		
			
			| 1737 |  | -  echo '# Description:       Configure the first wifi network card found as a' >> /etc/init.d/batman
 | 
	
		
			
			| 1738 |  | -  echo '#                    batman-adv mesh node.' >> /etc/init.d/batman
 | 
	
		
			
			| 1739 |  | -  echo '### END INIT INFO' >> /etc/init.d/batman
 | 
	
		
			
			| 1740 |  | -  echo '#' >> /etc/init.d/batman
 | 
	
		
			
			| 1741 |  | -  echo '# Based on http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide' >> /etc/init.d/batman
 | 
	
		
			
			| 1742 |  | -  echo '# and http://freifunk.in-kiel.de/wiki/Eigenen_Rechner_in_das_Freifunk-Netz' >> /etc/init.d/batman
 | 
	
		
			
			| 1743 |  | -  echo '#' >> /etc/init.d/batman
 | 
	
		
			
			| 1744 |  | -  echo '# Set up bat0 network interface on Linux to join the mesh network in' >> /etc/init.d/batman
 | 
	
		
			
			| 1745 |  | -  echo '# Oslo, Norway by default.  The mesh setup can be adjusted by creating' >> /etc/init.d/batman
 | 
	
		
			
			| 1746 |  | -  echo '# /etc/default/batctl.' >> /etc/init.d/batman
 | 
	
		
			
			| 1747 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1748 |  | -  echo '# Exit on first error' >> /etc/init.d/batman
 | 
	
		
			
			| 1749 |  | -  echo '#set -e' >> /etc/init.d/batman
 | 
	
		
			
			| 1750 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1751 |  | -  echo '# Mesh definition' >> /etc/init.d/batman
 | 
	
		
			
			| 1752 |  | -  echo "ESSID=mesh" >> /etc/init.d/batman
 | 
	
		
			
			| 1753 |  | -  echo "CELLID=02:BA:00:00:03:01" >> /etc/init.d/batman
 | 
	
		
			
			| 1754 |  | -  echo 'CHANNEL=2' >> /etc/init.d/batman
 | 
	
		
			
			| 1755 |  | -  echo 'FREQUENCY=2437' >> /etc/init.d/batman
 | 
	
		
			
			| 1756 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1757 |  | -  echo '# Ethernet bridge definition (bridged do bat0)' >> /etc/init.d/batman
 | 
	
		
			
			| 1758 |  | -  echo 'BRIDGE=br-mesh' >> /etc/init.d/batman
 | 
	
		
			
			| 1759 |  | -  echo 'EIFACE=eth0' >> /etc/init.d/batman
 | 
	
		
			
			| 1760 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1761 |  | -  echo 'if [ -e /etc/default/batctl ] ; then' >> /etc/init.d/batman
 | 
	
		
			
			| 1762 |  | -  echo '    . /etc/default/batctl' >> /etc/init.d/batman
 | 
	
		
			
			| 1763 |  | -  echo 'fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1764 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1765 |  | -  echo 'install_dependencies() {' >> /etc/init.d/batman
 | 
	
		
			
			| 1766 |  | -  echo '    echo "info: installing dependencies"' >> /etc/init.d/batman
 | 
	
		
			
			| 1767 |  | -  echo '    apt-get update -qq' >> /etc/init.d/batman
 | 
	
		
			
			| 1768 |  | -  echo '    DEBIAN_FRONTEND=noninteractive \' >> /etc/init.d/batman
 | 
	
		
			
			| 1769 |  | -  echo '        apt-get install -qqy \' >> /etc/init.d/batman
 | 
	
		
			
			| 1770 |  | -  echo '        rfkill \' >> /etc/init.d/batman
 | 
	
		
			
			| 1771 |  | -  echo '        batctl \' >> /etc/init.d/batman
 | 
	
		
			
			| 1772 |  | -  echo '        wireless-tools \' >> /etc/init.d/batman
 | 
	
		
			
			| 1773 |  | -  echo '        bridge-utils ' >> /etc/init.d/batman
 | 
	
		
			
			| 1774 |  | -  echo '}' >> /etc/init.d/batman
 | 
	
		
			
			| 1775 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1776 |  | -  echo 'first_wifi_interface() {' >> /etc/init.d/batman
 | 
	
		
			
			| 1777 |  | -  echo '    IFACE=$(ls -d /sys/class/net/*/wireless 2>/dev/null | sort | head -1|cut -d/ -f5)' >> /etc/init.d/batman
 | 
	
		
			
			| 1778 |  | -  echo '    if [ -z "$IFACE" ] ;then' >> /etc/init.d/batman
 | 
	
		
			
			| 1779 |  | -  echo '        IFACE=$(iwconfig 2>/dev/null | sort | awk "/IEEE 802/ {print $1; exit}")' >> /etc/init.d/batman
 | 
	
		
			
			| 1780 |  | -  echo '    fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1781 |  | -  echo '    echo $IFACE' >> /etc/init.d/batman
 | 
	
		
			
			| 1782 |  | -  echo '}' >> /etc/init.d/batman
 | 
	
		
			
			| 1783 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1784 |  | -  echo 'start() {' >> /etc/init.d/batman
 | 
	
		
			
			| 1785 |  | -  echo '    if [ -z "$IFACE" ] ; then' >> /etc/init.d/batman
 | 
	
		
			
			| 1786 |  | -  echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> /etc/init.d/batman
 | 
	
		
			
			| 1787 |  | -  echo '        return' >> /etc/init.d/batman
 | 
	
		
			
			| 1788 |  | -  echo '    fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1789 |  | -  echo '    echo "info: enabling batman-adv mesh network $ESSID on $IFACE"' >> /etc/init.d/batman
 | 
	
		
			
			| 1790 |  | -  echo '    $NETWORKMANAGER stop' >> /etc/init.d/batman
 | 
	
		
			
			| 1791 |  | -  echo '    sleep 5' >> /etc/init.d/batman
 | 
	
		
			
			| 1792 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1793 |  | -  echo '    # Might have to re-enable wifi' >> /etc/init.d/batman
 | 
	
		
			
			| 1794 |  | -  echo '    rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> /etc/init.d/batman
 | 
	
		
			
			| 1795 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1796 |  | -  echo '    ifconfig $IFACE down' >> /etc/init.d/batman
 | 
	
		
			
			| 1797 |  | -  echo '    ifconfig $IFACE mtu 1528' >> /etc/init.d/batman
 | 
	
		
			
			| 1798 |  | -  echo '    iwconfig $IFACE enc off' >> /etc/init.d/batman
 | 
	
		
			
			| 1799 |  | -  echo '    iwconfig $IFACE mode ad-hoc essid $ESSID channel $CHANNEL' >> /etc/init.d/batman
 | 
	
		
			
			| 1800 |  | -  echo '    sleep 1' >> /etc/init.d/batman
 | 
	
		
			
			| 1801 |  | -  echo '    iwconfig $IFACE ap $CELLID' >> /etc/init.d/batman
 | 
	
		
			
			| 1802 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1803 |  | -  echo '    modprobe batman-adv' >> /etc/init.d/batman
 | 
	
		
			
			| 1804 |  | -  echo '    batctl if add $IFACE' >> /etc/init.d/batman
 | 
	
		
			
			| 1805 |  | -  echo '    ifconfig $IFACE up' >> /etc/init.d/batman
 | 
	
		
			
			| 1806 |  | -  echo '    ifconfig bat0 up promisc' >> /etc/init.d/batman
 | 
	
		
			
			| 1807 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1808 |  | -  echo '    #Use persistent HWAddr' >> /etc/init.d/batman
 | 
	
		
			
			| 1809 |  | -  echo '    ether_new=$(ifconfig eth0 | grep HWaddr | sed -e "s/.*HWaddr //")' >> /etc/init.d/batman
 | 
	
		
			
			| 1810 |  | -  echo '    if [ ! -f /var/lib/mesh-node/bat0 ]' >> /etc/init.d/batman
 | 
	
		
			
			| 1811 |  | -  echo '    then' >> /etc/init.d/batman
 | 
	
		
			
			| 1812 |  | -  echo '        mkdir /var/lib/mesh-node' >> /etc/init.d/batman
 | 
	
		
			
			| 1813 |  | -  echo '        echo "${ether_new}" > /var/lib/mesh-node/bat0' >> /etc/init.d/batman
 | 
	
		
			
			| 1814 |  | -  echo '    else' >> /etc/init.d/batman
 | 
	
		
			
			| 1815 |  | -  echo '        ether=$(cat /var/lib/mesh-node/bat0)' >> /etc/init.d/batman
 | 
	
		
			
			| 1816 |  | -  echo '        ifconfig bat0 hw ether ${ether}' >> /etc/init.d/batman
 | 
	
		
			
			| 1817 |  | -  echo '    fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1818 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1819 |  | -  echo '    if [ "$EIFACE" ] ; then' >> /etc/init.d/batman
 | 
	
		
			
			| 1820 |  | -  echo '        ifconfig $EIFACE up promisc' >> /etc/init.d/batman
 | 
	
		
			
			| 1821 |  | -  echo '        brctl addbr $BRIDGE' >> /etc/init.d/batman
 | 
	
		
			
			| 1822 |  | -  echo '        brctl addif $BRIDGE bat0' >> /etc/init.d/batman
 | 
	
		
			
			| 1823 |  | -  echo '        brctl addif $BRIDGE $EIFACE' >> /etc/init.d/batman
 | 
	
		
			
			| 1824 |  | -  echo '        ifconfig $BRIDGE up' >> /etc/init.d/batman
 | 
	
		
			
			| 1825 |  | -  echo '    fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1826 |  | -  echo '}' >> /etc/init.d/batman
 | 
	
		
			
			| 1827 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1828 |  | -  echo 'stop() {' >> /etc/init.d/batman
 | 
	
		
			
			| 1829 |  | -  echo '    if [ -z "$IFACE" ] ; then' >> /etc/init.d/batman
 | 
	
		
			
			| 1830 |  | -  echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> /etc/init.d/batman
 | 
	
		
			
			| 1831 |  | -  echo '        return' >> /etc/init.d/batman
 | 
	
		
			
			| 1832 |  | -  echo '    fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1833 |  | -  echo '    if [ "$EIFACE" ] ; then' >> /etc/init.d/batman
 | 
	
		
			
			| 1834 |  | -  echo '        brctl delif $BRIDGE bat0' >> /etc/init.d/batman
 | 
	
		
			
			| 1835 |  | -  echo '        brctl delif $BRIDGE $EIFACE' >> /etc/init.d/batman
 | 
	
		
			
			| 1836 |  | -  echo '        ifconfig $BRIDGE down || true' >> /etc/init.d/batman
 | 
	
		
			
			| 1837 |  | -  echo '        brctl delbr $BRIDGE' >> /etc/init.d/batman
 | 
	
		
			
			| 1838 |  | -  echo '        ifconfig $EIFACE down -promisc' >> /etc/init.d/batman
 | 
	
		
			
			| 1839 |  | -  echo '    fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1840 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1841 |  | -  echo '    ifconfig bat0 down -promisc' >> /etc/init.d/batman
 | 
	
		
			
			| 1842 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1843 |  | -  echo '    batctl if del $IFACE' >> /etc/init.d/batman
 | 
	
		
			
			| 1844 |  | -  echo '    rmmod batman-adv' >> /etc/init.d/batman
 | 
	
		
			
			| 1845 |  | -  echo '    ifconfig $IFACE mtu 1500' >> /etc/init.d/batman
 | 
	
		
			
			| 1846 |  | -  echo '    ifconfig $IFACE down' >> /etc/init.d/batman
 | 
	
		
			
			| 1847 |  | -  echo '    iwconfig $IFACE mode managed' >> /etc/init.d/batman
 | 
	
		
			
			| 1848 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1849 |  | -  echo '    $NETWORKMANAGER restart' >> /etc/init.d/batman
 | 
	
		
			
			| 1850 |  | -  echo '}' >> /etc/init.d/batman
 | 
	
		
			
			| 1851 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1852 |  | -  echo 'status() {' >> /etc/init.d/batman
 | 
	
		
			
			| 1853 |  | -  echo '    batctl o' >> /etc/init.d/batman
 | 
	
		
			
			| 1854 |  | -  echo '}' >> /etc/init.d/batman
 | 
	
		
			
			| 1855 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1856 |  | -  echo 'IFACE=$(first_wifi_interface)' >> /etc/init.d/batman
 | 
	
		
			
			| 1857 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1858 |  | -  echo '# Work even if network-manager isnt installed' >> /etc/init.d/batman
 | 
	
		
			
			| 1859 |  | -  echo 'if [ -e /etc/init.d/network-manager ] || [ -e /etc/init/network-manager ] ; then' >> /etc/init.d/batman
 | 
	
		
			
			| 1860 |  | -  echo '    NETWORKMANAGER="service network-manager"' >> /etc/init.d/batman
 | 
	
		
			
			| 1861 |  | -  echo 'else' >> /etc/init.d/batman
 | 
	
		
			
			| 1862 |  | -  echo '    NETWORKMANAGER=true' >> /etc/init.d/batman
 | 
	
		
			
			| 1863 |  | -  echo 'fi' >> /etc/init.d/batman
 | 
	
		
			
			| 1864 |  | -  echo '' >> /etc/init.d/batman
 | 
	
		
			
			| 1865 |  | -  echo 'case "$1" in' >> /etc/init.d/batman
 | 
	
		
			
			| 1866 |  | -  echo '    setup)' >> /etc/init.d/batman
 | 
	
		
			
			| 1867 |  | -  echo '        install_dependencies' >> /etc/init.d/batman
 | 
	
		
			
			| 1868 |  | -  echo '        ;;' >> /etc/init.d/batman
 | 
	
		
			
			| 1869 |  | -  echo '    start|stop|status)' >> /etc/init.d/batman
 | 
	
		
			
			| 1870 |  | -  echo '        $1' >> /etc/init.d/batman
 | 
	
		
			
			| 1871 |  | -  echo '        ;;' >> /etc/init.d/batman
 | 
	
		
			
			| 1872 |  | -  echo '    force-reload)' >> /etc/init.d/batman
 | 
	
		
			
			| 1873 |  | -  echo '        ;;' >> /etc/init.d/batman
 | 
	
		
			
			| 1874 |  | -  echo '    *)' >> /etc/init.d/batman
 | 
	
		
			
			| 1875 |  | -  echo '    echo "error: invalid parameter $1"' >> /etc/init.d/batman
 | 
	
		
			
			| 1876 |  | -  echo '    echo "usage: $0 {start|stop|status}"' >> /etc/init.d/batman
 | 
	
		
			
			| 1877 |  | -  echo '    exit 1' >> /etc/init.d/batman
 | 
	
		
			
			| 1878 |  | -  echo '    ;;' >> /etc/init.d/batman
 | 
	
		
			
			| 1879 |  | -  echo 'esac' >> /etc/init.d/batman
 | 
	
		
			
			| 1880 |  | -  echo 'exit 0' >> /etc/init.d/batman
 | 
	
		
			
			| 1881 |  | -  chmod +x /etc/init.d/batman
 | 
	
		
			
			| 1882 |  | -  update-rc.d batman defaults
 | 
	
		
			
			| 1883 |  | -
 | 
	
		
			
			| 1884 |  | -  if ! grep -q "# Mesh Networking (B.A.T.M.A.N)" /etc/network/interfaces; then
 | 
	
		
			
			| 1885 |  | -      echo '' >> /etc/network/interfaces
 | 
	
		
			
			| 1886 |  | -      echo '# Mesh Networking (B.A.T.M.A.N)' >> /etc/network/interfaces
 | 
	
		
			
			| 1887 |  | -      echo 'auto wlan0' >> /etc/network/interfaces
 | 
	
		
			
			| 1888 |  | -      echo 'iface wlan0 inet static' >> /etc/network/interfaces
 | 
	
		
			
			| 1889 |  | -      echo '    pre-up modprobe batman_adv' >> /etc/network/interfaces
 | 
	
		
			
			| 1890 |  | -      echo '    post-down modprobe -rf batman_adv' >> /etc/network/interfaces
 | 
	
		
			
			| 1891 |  | -      echo '    address 0.0.0.0' >> /etc/network/interfaces
 | 
	
		
			
			| 1892 |  | -      echo '    mtu 1532' >> /etc/network/interfaces
 | 
	
		
			
			| 1893 |  | -      echo '    wireless-mode ad-hoc' >> /etc/network/interfaces
 | 
	
		
			
			| 1894 |  | -      echo "    wireless-essid mesh" >> /etc/network/interfaces
 | 
	
		
			
			| 1895 |  | -      echo "    wireless-channel 2" >> /etc/network/interfaces
 | 
	
		
			
			| 1896 |  | -      echo "    wireless-ap 02:12:34:56:78:9A" >> /etc/network/interfaces
 | 
	
		
			
			| 1897 |  | -  fi
 | 
	
		
			
			| 1898 |  | -  systemctl restart networking.service
 | 
	
		
			
			| 1899 |  | -  if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 1900 |  | -      systemctl status networking.service
 | 
	
		
			
			| 1901 |  | -      exit 6949
 | 
	
		
			
			| 1902 |  | -  fi
 | 
	
		
			
			|  | 1742 | +  batman_script=/var/lib/batman
 | 
	
		
			
			|  | 1743 | +
 | 
	
		
			
			|  | 1744 | +  echo '#!/bin/sh' > $batman_script
 | 
	
		
			
			|  | 1745 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1746 | +  echo '# Mesh definition' >> $batman_script
 | 
	
		
			
			|  | 1747 | +  echo "ESSID=$ESSID" >> $batman_script
 | 
	
		
			
			|  | 1748 | +  echo "CELLID=$BATMAN_CELLID" >> $batman_script
 | 
	
		
			
			|  | 1749 | +  echo "CHANNEL=$WIFI_CHANNEL" >> $batman_script
 | 
	
		
			
			|  | 1750 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1751 | +  echo '# Ethernet bridge definition (bridged do bat0)' >> $batman_script
 | 
	
		
			
			|  | 1752 | +  echo 'BRIDGE=br-mesh' >> $batman_script
 | 
	
		
			
			|  | 1753 | +  echo 'EIFACE=eth0' >> $batman_script
 | 
	
		
			
			|  | 1754 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1755 | +  echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
 | 
	
		
			
			|  | 1756 | +  echo '    . /etc/default/batctl' >> $batman_script
 | 
	
		
			
			|  | 1757 | +  echo 'fi' >> $batman_script
 | 
	
		
			
			|  | 1758 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1759 | +  echo 'first_wifi_interface() {' >> $batman_script
 | 
	
		
			
			|  | 1760 | +  echo '    IFACE=$(ls -d /sys/class/net/*/wireless 2>/dev/null | sort | head -1|cut -d/ -f5)' >> $batman_script
 | 
	
		
			
			|  | 1761 | +  echo '    if [ -z "$IFACE" ] ;then' >> $batman_script
 | 
	
		
			
			|  | 1762 | +  echo '        IFACE=$(iwconfig 2>/dev/null | sort | awk "/IEEE 802/ {print $1; exit}")' >> $batman_script
 | 
	
		
			
			|  | 1763 | +  echo '    fi' >> $batman_script
 | 
	
		
			
			|  | 1764 | +  echo '    echo $IFACE' >> $batman_script
 | 
	
		
			
			|  | 1765 | +  echo '}' >> $batman_script
 | 
	
		
			
			|  | 1766 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1767 | +  echo 'start() {' >> $batman_script
 | 
	
		
			
			|  | 1768 | +  echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
 | 
	
		
			
			|  | 1769 | +  echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
 | 
	
		
			
			|  | 1770 | +  echo '        return' >> $batman_script
 | 
	
		
			
			|  | 1771 | +  echo '    fi' >> $batman_script
 | 
	
		
			
			|  | 1772 | +  echo '    echo "info: enabling batman-adv mesh network $ESSID on $IFACE"' >> $batman_script
 | 
	
		
			
			|  | 1773 | +  echo '    systemctl stop networking' >> $batman_script
 | 
	
		
			
			|  | 1774 | +  echo '    sleep 5' >> $batman_script
 | 
	
		
			
			|  | 1775 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1776 | +  echo '    # Might have to re-enable wifi' >> $batman_script
 | 
	
		
			
			|  | 1777 | +  echo '    rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> $batman_script
 | 
	
		
			
			|  | 1778 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1779 | +  echo '    ifconfig $IFACE down' >> $batman_script
 | 
	
		
			
			|  | 1780 | +  echo '    ifconfig $IFACE mtu 1528' >> $batman_script
 | 
	
		
			
			|  | 1781 | +  echo '    iwconfig $IFACE enc off' >> $batman_script
 | 
	
		
			
			|  | 1782 | +  echo '    iwconfig $IFACE mode ad-hoc essid $ESSID channel $CHANNEL' >> $batman_script
 | 
	
		
			
			|  | 1783 | +  echo '    sleep 1' >> $batman_script
 | 
	
		
			
			|  | 1784 | +  echo '    iwconfig $IFACE ap $CELLID' >> $batman_script
 | 
	
		
			
			|  | 1785 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1786 | +  echo '    modprobe batman-adv' >> $batman_script
 | 
	
		
			
			|  | 1787 | +  echo '    batctl if add $IFACE' >> $batman_script
 | 
	
		
			
			|  | 1788 | +  echo '    ifconfig $IFACE up' >> $batman_script
 | 
	
		
			
			|  | 1789 | +  echo '    ifconfig bat0 up promisc' >> $batman_script
 | 
	
		
			
			|  | 1790 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1791 | +  echo '    #Use persistent HWAddr' >> $batman_script
 | 
	
		
			
			|  | 1792 | +  echo '    ether_new=$(ifconfig eth0 | grep HWaddr | sed -e "s/.*HWaddr //")' >> $batman_script
 | 
	
		
			
			|  | 1793 | +  echo '    if [ ! -f /var/lib/mesh-node/bat0 ]' >> $batman_script
 | 
	
		
			
			|  | 1794 | +  echo '    then' >> $batman_script
 | 
	
		
			
			|  | 1795 | +  echo '        mkdir /var/lib/mesh-node' >> $batman_script
 | 
	
		
			
			|  | 1796 | +  echo '        echo "${ether_new}" > /var/lib/mesh-node/bat0' >> $batman_script
 | 
	
		
			
			|  | 1797 | +  echo '    else' >> $batman_script
 | 
	
		
			
			|  | 1798 | +  echo '        ether=$(cat /var/lib/mesh-node/bat0)' >> $batman_script
 | 
	
		
			
			|  | 1799 | +  echo '        ifconfig bat0 hw ether ${ether}' >> $batman_script
 | 
	
		
			
			|  | 1800 | +  echo '    fi' >> $batman_script
 | 
	
		
			
			|  | 1801 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1802 | +  echo '    if [ "$EIFACE" ] ; then' >> $batman_script
 | 
	
		
			
			|  | 1803 | +  echo '        ifconfig $EIFACE up promisc' >> $batman_script
 | 
	
		
			
			|  | 1804 | +  echo '        brctl addbr $BRIDGE' >> $batman_script
 | 
	
		
			
			|  | 1805 | +  echo '        brctl addif $BRIDGE bat0' >> $batman_script
 | 
	
		
			
			|  | 1806 | +  echo '        brctl addif $BRIDGE $EIFACE' >> $batman_script
 | 
	
		
			
			|  | 1807 | +  echo '        ifconfig $BRIDGE up' >> $batman_script
 | 
	
		
			
			|  | 1808 | +  echo '    fi' >> $batman_script
 | 
	
		
			
			|  | 1809 | +  echo '}' >> $batman_script
 | 
	
		
			
			|  | 1810 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1811 | +  echo 'stop() {' >> $batman_script
 | 
	
		
			
			|  | 1812 | +  echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
 | 
	
		
			
			|  | 1813 | +  echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
 | 
	
		
			
			|  | 1814 | +  echo '        return' >> $batman_script
 | 
	
		
			
			|  | 1815 | +  echo '    fi' >> $batman_script
 | 
	
		
			
			|  | 1816 | +  echo '    if [ "$EIFACE" ] ; then' >> $batman_script
 | 
	
		
			
			|  | 1817 | +  echo '        brctl delif $BRIDGE bat0' >> $batman_script
 | 
	
		
			
			|  | 1818 | +  echo '        brctl delif $BRIDGE $EIFACE' >> $batman_script
 | 
	
		
			
			|  | 1819 | +  echo '        ifconfig $BRIDGE down || true' >> $batman_script
 | 
	
		
			
			|  | 1820 | +  echo '        brctl delbr $BRIDGE' >> $batman_script
 | 
	
		
			
			|  | 1821 | +  echo '        ifconfig $EIFACE down -promisc' >> $batman_script
 | 
	
		
			
			|  | 1822 | +  echo '    fi' >> $batman_script
 | 
	
		
			
			|  | 1823 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1824 | +  echo '    ifconfig bat0 down -promisc' >> $batman_script
 | 
	
		
			
			|  | 1825 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1826 | +  echo '    batctl if del $IFACE' >> $batman_script
 | 
	
		
			
			|  | 1827 | +  echo '    rmmod batman-adv' >> $batman_script
 | 
	
		
			
			|  | 1828 | +  echo '    ifconfig $IFACE mtu 1500' >> $batman_script
 | 
	
		
			
			|  | 1829 | +  echo '    ifconfig $IFACE down' >> $batman_script
 | 
	
		
			
			|  | 1830 | +  echo '    iwconfig $IFACE mode managed' >> $batman_script
 | 
	
		
			
			|  | 1831 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1832 | +  echo '    systemctl restart networking' >> $batman_script
 | 
	
		
			
			|  | 1833 | +  echo '}' >> $batman_script
 | 
	
		
			
			|  | 1834 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1835 | +  echo 'IFACE=$(first_wifi_interface)' >> $batman_script
 | 
	
		
			
			|  | 1836 | +  echo '' >> $batman_script
 | 
	
		
			
			|  | 1837 | +  echo 'case "$1" in' >> $batman_script
 | 
	
		
			
			|  | 1838 | +  echo '    start|stop)' >> $batman_script
 | 
	
		
			
			|  | 1839 | +  echo '        $1' >> $batman_script
 | 
	
		
			
			|  | 1840 | +  echo '        ;;' >> $batman_script
 | 
	
		
			
			|  | 1841 | +  echo '    *)' >> $batman_script
 | 
	
		
			
			|  | 1842 | +  echo '    echo "error: invalid parameter $1"' >> $batman_script
 | 
	
		
			
			|  | 1843 | +  echo '    echo "usage: $0 {start|stop}"' >> $batman_script
 | 
	
		
			
			|  | 1844 | +  echo '    exit 1' >> $batman_script
 | 
	
		
			
			|  | 1845 | +  echo '    ;;' >> $batman_script
 | 
	
		
			
			|  | 1846 | +  echo 'esac' >> $batman_script
 | 
	
		
			
			|  | 1847 | +  echo 'exit 0' >> $batman_script
 | 
	
		
			
			|  | 1848 | +
 | 
	
		
			
			|  | 1849 | +  echo '[Unit]' > /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1850 | +  echo 'Description=B.A.T.M.A.N. Advanced' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1851 | +  echo '' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1852 | +  echo '[Service]' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1853 | +  echo 'Type=oneshot' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1854 | +  echo "ExecStart=$batman_script start" >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1855 | +  echo "ExecStop=$batman_script stop" >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1856 | +  echo 'RemainAfterExit=yes' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1857 | +  echo '' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1858 | +  echo '[Install]' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1859 | +  echo 'WantedBy=multi-user.target' >> /etc/systemd/system/batman.service
 | 
	
		
			
			|  | 1860 | +  systemctl enable batman
 | 
	
		
			
			|  | 1861 | +  systemctl daemon-reload
 | 
	
		
			
			| 1903 | 1862 |  
 | 
	
		
			
			| 1904 | 1863 |    if ! grep -q "Mesh Networking (B.A.T.M.A.N)" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 1905 | 1864 |        echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 1906 | 1865 |        echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 1907 | 1866 |        echo 'Mesh Networking (B.A.T.M.A.N)' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 1908 | 1867 |        echo '=============================' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 1909 |  | -      echo 'Mesh ESSID: mesh' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 1910 |  | -      echo "Mesh internet bridge IP address: $BATMAN_IPV6" >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 1868 | +      echo "Mesh ESSID: $ESSID" >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 1869 | +      echo "Mesh cell ID: $BATMAN_CELLID" >> /home/$MY_USERNAME/README
 | 
	
		
			
			|  | 1870 | +      echo "Mesh wifi channel: $WIFI_CHANNEL" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 1911 | 1871 |        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
 | 
	
		
			
			| 1912 | 1872 |        chmod 600 /home/$MY_USERNAME/README
 | 
	
		
			
			| 1913 | 1873 |    fi
 |