浏览代码

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

Bob Mottram 7 年前
父节点
当前提交
e22ae06746
共有 7 个文件被更改,包括 65 次插入37 次删除
  1. 1
    1
      doc/EN/mesh.org
  2. 二进制
      img/mesh_desktop1.png
  3. 二进制
      img/mesh_desktop_routing.png
  4. 1
    1
      src/freedombone-image-mesh
  5. 59
    32
      src/freedombone-mesh-routing
  6. 2
    1
      src/meshavahi
  7. 2
    2
      website/EN/mesh.html

+ 1
- 1
doc/EN/mesh.org 查看文件

@@ -32,7 +32,7 @@ If an internet connection is available then it can make use of that, but otherwi
32 32
 
33 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 37
 #+BEGIN_CENTER
38 38
 This site can also be accessed via a Tor browser at http://pazyv7nkllp76hqr.onion

二进制
img/mesh_desktop1.png 查看文件


二进制
img/mesh_desktop_routing.png 查看文件


+ 1
- 1
src/freedombone-image-mesh 查看文件

@@ -835,7 +835,7 @@ function show_desktop_icons {
835 835
     echo 'Comment[ru]=Выберите протокол маршрутизации сетки' >> /home/$MY_USERNAME/Desktop/routing.desktop
836 836
     echo 'Comment[zh]=选择网状路由协议' >> /home/$MY_USERNAME/Desktop/routing.desktop
837 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 839
     echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/routing.desktop
840 840
     echo 'Categories=Application' >> /home/$MY_USERNAME/Desktop/routing.desktop
841 841
 

+ 59
- 32
src/freedombone-mesh-routing 查看文件

@@ -34,6 +34,17 @@ export TEXTDOMAINDIR="/usr/share/locale"
34 34
 source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-wifi
35 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 48
 clear
38 49
 echo ''
39 50
 echo $'Scanning for BMX6 protocol...'
@@ -59,12 +70,29 @@ case $sel in
59 70
     255) exit 1;;
60 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 97
 clear
70 98
 echo ''
@@ -72,42 +100,41 @@ echo $'Authentication to change mesh protocol'
72 100
 echo ''
73 101
 
74 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 110
         sudo systemctl enable bmx6
111
+        echo $'Starting BMX6...'
83 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 121
         sudo systemctl enable olsr2
122
+        echo $'Starting OLSR2...'
95 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 132
         sudo systemctl enable babel
133
+        echo $'Starting Babel...'
107 134
         sudo systemctl start babel
108 135
         ;;
109 136
 esac
110 137
 
111
-rm /tmp/change_routing
138
+rm $temp_script
112 139
 
113 140
 exit 0

+ 2
- 1
src/meshavahi 查看文件

@@ -100,6 +100,7 @@ function ipfs_publish {
100 100
 }
101 101
 
102 102
 function ipfs_bootstrap {
103
+    # TODO switch to ipv6
103 104
     cat $TEMPFILE_BASE | grep "ipfs_id\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
104 105
 
105 106
     state=0
@@ -114,7 +115,7 @@ function ipfs_bootstrap {
114 115
                 ipfs_txt=$(echo "$line" | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
115 116
                 ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}')
116 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 119
                 if [ -d /home/$MY_USERNAME/Desktop ]; then
119 120
                     if [[ $ipfs_tox_id != 'none' ]]; then
120 121
                         echo "$ipfs_tox_id:$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new

+ 2
- 2
website/EN/mesh.html 查看文件

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2018-01-15 Mon 20:17 -->
6
+<!-- 2018-01-17 Wed 23:49 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -279,7 +279,7 @@ Systems only need to be within wifi range of each other for the mesh to be creat
279 279
 </p>
280 280
 
281 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 283
 </p>
284 284
 
285 285
 <div class="org-center">