Quellcode durchsuchen

Merge branch 'stretch' of https://github.com/bashrc/freedombone

Bob Mottram vor 7 Jahren
Ursprung
Commit
e22ae06746

+ 1
- 1
doc/EN/mesh.org Datei anzeigen

32
 
32
 
33
 Systems only need to be within wifi range of each other for the mesh to be created, so it can be an very convenient way to create a local communications network.
33
 Systems only need to be within wifi range of each other for the mesh to be created, so it can be an very convenient way to create a local communications network.
34
 
34
 
35
-Like [[https://libremesh.org][LibreMesh]], this system uses a combination of [[https://en.wikipedia.org/wiki/B.A.T.M.A.N.][batman-adv]] on network layer 2 and [[http://bmx6.net][BMX]] on layer 3.
35
+Like [[https://libremesh.org][LibreMesh]], this system uses a combination of [[https://en.wikipedia.org/wiki/B.A.T.M.A.N.][batman-adv]] on network layer 2 and [[http://bmx6.net][BMX]] on layer 3. Routing protocols [[http://www.olsr.org][OLSR2]] and [[https://www.irif.fr/~jch/software/babel][Babel]] are also selectable.
36
 
36
 
37
 #+BEGIN_CENTER
37
 #+BEGIN_CENTER
38
 This site can also be accessed via a Tor browser at http://pazyv7nkllp76hqr.onion
38
 This site can also be accessed via a Tor browser at http://pazyv7nkllp76hqr.onion

BIN
img/mesh_desktop1.png Datei anzeigen


BIN
img/mesh_desktop_routing.png Datei anzeigen


+ 1
- 1
src/freedombone-image-mesh Datei anzeigen

835
     echo 'Comment[ru]=Выберите протокол маршрутизации сетки' >> /home/$MY_USERNAME/Desktop/routing.desktop
835
     echo 'Comment[ru]=Выберите протокол маршрутизации сетки' >> /home/$MY_USERNAME/Desktop/routing.desktop
836
     echo 'Comment[zh]=选择网状路由协议' >> /home/$MY_USERNAME/Desktop/routing.desktop
836
     echo 'Comment[zh]=选择网状路由协议' >> /home/$MY_USERNAME/Desktop/routing.desktop
837
     echo "Exec=mate-terminal -e \"/usr/local/bin/${PROJECT_NAME}-mesh-routing\"" >> /home/$MY_USERNAME/Desktop/routing.desktop
837
     echo "Exec=mate-terminal -e \"/usr/local/bin/${PROJECT_NAME}-mesh-routing\"" >> /home/$MY_USERNAME/Desktop/routing.desktop
838
-    echo 'Icon=/usr/share/$PROJECT_NAME/avatars/icon_routing.png' >> /home/$MY_USERNAME/Desktop/routing.desktop
838
+    echo "Icon=/usr/share/${PROJECT_NAME}/avatars/icon_routing.png" >> /home/$MY_USERNAME/Desktop/routing.desktop
839
     echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/routing.desktop
839
     echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/routing.desktop
840
     echo 'Categories=Application' >> /home/$MY_USERNAME/Desktop/routing.desktop
840
     echo 'Categories=Application' >> /home/$MY_USERNAME/Desktop/routing.desktop
841
 
841
 

+ 59
- 32
src/freedombone-mesh-routing Datei anzeigen

34
 source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-wifi
34
 source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-wifi
35
 source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-mesh
35
 source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-mesh
36
 
36
 
37
+function mesh_stop_daemon {
38
+    daemon_name=$1
39
+
40
+    clear
41
+    echo ''
42
+    echo $"Stopping $1..."
43
+    sudo systemctl stop $1
44
+    echo $"Disabling $1..."
45
+    sudo systemctl disable $1
46
+}
47
+
37
 clear
48
 clear
38
 echo ''
49
 echo ''
39
 echo $'Scanning for BMX6 protocol...'
50
 echo $'Scanning for BMX6 protocol...'
59
     255) exit 1;;
70
     255) exit 1;;
60
 esac
71
 esac
61
 
72
 
62
-echo '#!/bin/bash' > /tmp/change_routing
63
-echo "echo '$1' > $MESH_DEFAULT_PROTOCOL" >> /tmp/change_routing
64
-echo "echo '$1' > $MESH_CURRENT_PROTOCOL" >> /tmp/change_routing
65
-echo "sed -i 's|<type>.*|<type>_${1}._tcp</type>|g' /etc/avahi/services/routing.service"  >> /tmp/change_routing
66
-echo 'systemctl restart avahi-daemon'  >> /tmp/change_routing
67
-chmod +x /tmp/change_routing
73
+temp_script=$HOME/.change_routing
74
+echo '#!/bin/bash' > $temp_script
75
+echo "echo \"\$1\" > $MESH_DEFAULT_PROTOCOL" >> $temp_script
76
+echo "echo \"\$1\" > $MESH_CURRENT_PROTOCOL" >> $temp_script
77
+echo "sed -i \"s|<type>.*|<type>_\${1}._tcp</type>|g\" /etc/avahi/services/routing.service" >> $temp_script
78
+echo 'systemctl restart avahi-daemon' >> $temp_script
79
+echo "IFACE=\$(cat /etc/systemd/system/\${1}.service | grep ExecStart | awk -F ' ' '{print \$2}')" >> $temp_script
80
+echo 'network=fd66:66:66' >> $temp_script
81
+echo 'search_ipv6=$(ifconfig $1 | grep $network)' >> $temp_script
82
+echo 'if [ $search_ipv6 ]; then' >> $temp_script
83
+echo "    result=\$(ifconfig \$1 | grep \$network | awk -F ' ' '{print \$2}')" >> $temp_script
84
+echo '    ip -6 addr add ${result}/128 dev $1' >> $temp_script
85
+echo 'else' >> $temp_script
86
+echo '    ipv6_array=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )' >> $temp_script
87
+echo '    a=${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}' >> $temp_script
88
+echo '    b=${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}' >> $temp_script
89
+echo '    c=${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}' >> $temp_script
90
+echo '    d=${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}' >> $temp_script
91
+echo '    e=${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}${ipv6_array[$RANDOM%16]}' >> $temp_script
92
+echo '    result=$network:$a:$b:$c:$d:$e' >> $temp_script
93
+echo '    ip -6 addr add ${result}/128 dev $1' >> $temp_script
94
+echo 'fi' >> $temp_script
95
+chmod +x $temp_script
68
 
96
 
69
 clear
97
 clear
70
 echo ''
98
 echo ''
72
 echo ''
100
 echo ''
73
 
101
 
74
 case $data in
102
 case $data in
75
-    1)  sudo /tmp/change_routing 'bmx6'
76
-        sudo systemctl stop bmx7
77
-        sudo systemctl disable bmx7
78
-        sudo systemctl stop olsr2
79
-        sudo systemctl disable olsr2
80
-        sudo systemctl stop babel
81
-        sudo systemctl disable babel
103
+    1)  sudo $temp_script 'bmx6'
104
+        mesh_stop_daemon 'bmx7'
105
+        mesh_stop_daemon 'olsr2'
106
+        mesh_stop_daemon 'babel'
107
+        clear
108
+        echo ''
109
+        echo $'Enabling BMX6...'
82
         sudo systemctl enable bmx6
110
         sudo systemctl enable bmx6
111
+        echo $'Starting BMX6...'
83
         sudo systemctl start bmx6
112
         sudo systemctl start bmx6
84
         ;;
113
         ;;
85
-    2)  sudo /tmp/change_routing 'olsr2'
86
-        sudo systemctl stop bmx7
87
-        sudo systemctl disable bmx7
88
-        sudo systemctl stop bmx6
89
-        sudo systemctl disable bmx6
90
-        sudo systemctl stop babel
91
-        sudo systemctl disable babel
92
-        IFACE=$(cat /etc/systemd/system/olsr2.service | grep ExecStart | awk -F ' ' '{print $2}')
93
-        mesh_generate_ipv6_address $IFACE
114
+    2)  sudo $temp_script 'olsr2'
115
+        mesh_stop_daemon 'bmx6'
116
+        mesh_stop_daemon 'bmx7'
117
+        mesh_stop_daemon 'babel'
118
+        clear
119
+        echo ''
120
+        echo $'Enabling OLSR2...'
94
         sudo systemctl enable olsr2
121
         sudo systemctl enable olsr2
122
+        echo $'Starting OLSR2...'
95
         sudo systemctl start olsr2
123
         sudo systemctl start olsr2
96
         ;;
124
         ;;
97
-    3)  sudo /tmp/change_routing 'babel'
98
-        sudo systemctl stop bmx7
99
-        sudo systemctl disable bmx7
100
-        sudo systemctl stop bmx6
101
-        sudo systemctl disable bmx6
102
-        sudo systemctl stop olsr2
103
-        sudo systemctl disable olsr2
104
-        IFACE=$(cat /etc/systemd/system/babel.service | grep ExecStart | awk -F ' ' '{print $2}')
105
-        mesh_generate_ipv6_address $IFACE
125
+    3)  sudo $temp_script 'babel'
126
+        mesh_stop_daemon 'bmx6'
127
+        mesh_stop_daemon 'bmx7'
128
+        mesh_stop_daemon 'olsr2'
129
+        clear
130
+        echo ''
131
+        echo $'Enabling Babel...'
106
         sudo systemctl enable babel
132
         sudo systemctl enable babel
133
+        echo $'Starting Babel...'
107
         sudo systemctl start babel
134
         sudo systemctl start babel
108
         ;;
135
         ;;
109
 esac
136
 esac
110
 
137
 
111
-rm /tmp/change_routing
138
+rm $temp_script
112
 
139
 
113
 exit 0
140
 exit 0

+ 2
- 1
src/meshavahi Datei anzeigen

100
 }
100
 }
101
 
101
 
102
 function ipfs_bootstrap {
102
 function ipfs_bootstrap {
103
+    # TODO switch to ipv6
103
     cat $TEMPFILE_BASE | grep "ipfs_id\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
104
     cat $TEMPFILE_BASE | grep "ipfs_id\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
104
 
105
 
105
     state=0
106
     state=0
114
                 ipfs_txt=$(echo "$line" | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
115
                 ipfs_txt=$(echo "$line" | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
115
                 ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}')
116
                 ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}')
116
                 ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}')
117
                 ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}')
117
-                su -c "$IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}" - $MY_USERNAME
118
+                su -c "$IPFS_COMMAND bootstrap add /ip6/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}" - $MY_USERNAME
118
                 if [ -d /home/$MY_USERNAME/Desktop ]; then
119
                 if [ -d /home/$MY_USERNAME/Desktop ]; then
119
                     if [[ $ipfs_tox_id != 'none' ]]; then
120
                     if [[ $ipfs_tox_id != 'none' ]]; then
120
                         echo "$ipfs_tox_id:$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new
121
                         echo "$ipfs_tox_id:$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new

+ 2
- 2
website/EN/mesh.html Datei anzeigen

3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
 <head>
5
 <head>
6
-<!-- 2018-01-15 Mon 20:17 -->
6
+<!-- 2018-01-17 Wed 23:49 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title>&lrm;</title>
9
 <title>&lrm;</title>
279
 </p>
279
 </p>
280
 
280
 
281
 <p>
281
 <p>
282
-Like <a href="https://libremesh.org">LibreMesh</a>, this system uses a combination of <a href="https://en.wikipedia.org/wiki/B.A.T.M.A.N.">batman-adv</a> on network layer 2 and <a href="http://bmx6.net">BMX</a> on layer 3.
282
+Like <a href="https://libremesh.org">LibreMesh</a>, this system uses a combination of <a href="https://en.wikipedia.org/wiki/B.A.T.M.A.N.">batman-adv</a> on network layer 2 and <a href="http://bmx6.net">BMX</a> on layer 3. Routing protocols <a href="http://www.olsr.org">OLSR2</a> and <a href="https://www.irif.fr/~jch/software/babel">Babel</a> are also selectable.
283
 </p>
283
 </p>
284
 
284
 
285
 <div class="org-center">
285
 <div class="org-center">