|  | @@ -1608,7 +1608,7 @@ function install_atheros_wifi {
 | 
	
		
			
			| 1608 | 1608 |    fi
 | 
	
		
			
			| 1609 | 1609 |    # have drivers already been installed ?
 | 
	
		
			
			| 1610 | 1610 |    if [ -f /lib/firmware/htc_9271.fw ]; then
 | 
	
		
			
			| 1611 |  | -	  return
 | 
	
		
			
			|  | 1611 | +      return
 | 
	
		
			
			| 1612 | 1612 |    fi
 | 
	
		
			
			| 1613 | 1613 |    apt-get -y install build-essential cmake git m4 texinfo
 | 
	
		
			
			| 1614 | 1614 |    if [ ! -d $INSTALL_DIR ]; then
 | 
	
	
		
			
			|  | @@ -1703,7 +1703,7 @@ function mesh_batman_bridge {
 | 
	
		
			
			| 1703 | 1703 |  
 | 
	
		
			
			| 1704 | 1704 |    apt-get -y install iproute bridge-utils libnetfilter-conntrack3 batctl
 | 
	
		
			
			| 1705 | 1705 |    apt-get -y install python-dev libevent-dev ebtables python-pip git
 | 
	
		
			
			| 1706 |  | -  apt-get -y install wireless-tools
 | 
	
		
			
			|  | 1706 | +  apt-get -y install wireless-tools rfkill
 | 
	
		
			
			| 1707 | 1707 |  
 | 
	
		
			
			| 1708 | 1708 |    #install_vpn_tunnel
 | 
	
		
			
			| 1709 | 1709 |  
 | 
	
	
		
			
			|  | @@ -1726,6 +1726,161 @@ function mesh_batman_bridge {
 | 
	
		
			
			| 1726 | 1726 |        BATMAN_IPV6="$IPV6_NETWORK:$a:$b:$c:$d"
 | 
	
		
			
			| 1727 | 1727 |    fi
 | 
	
		
			
			| 1728 | 1728 |  
 | 
	
		
			
			|  | 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=wlan0' >> /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 | +
 | 
	
		
			
			| 1729 | 1884 |    if ! grep -q "# Mesh Networking (B.A.T.M.A.N)" /etc/network/interfaces; then
 | 
	
		
			
			| 1730 | 1885 |        echo '' >> /etc/network/interfaces
 | 
	
		
			
			| 1731 | 1886 |        echo '# Mesh Networking (B.A.T.M.A.N)' >> /etc/network/interfaces
 |