ソースを参照

Mesh router setup

Bob Mottram 9 年 前
コミット
29bb1348f5
共有2 個のファイルを変更した46 個の追加10 個の削除を含む
  1. 30
    1
      src/freedombone-image-customise
  2. 16
    9
      src/freedombone-image-mesh

+ 30
- 1
src/freedombone-image-customise ファイルの表示

@@ -215,6 +215,8 @@ create_generic_image() {
215 215
     # Don't install any configuration. This will be a base system
216 216
     if [[ $VARIANT != "mesh" ]]; then
217 217
         CONFIG_FILENAME=
218
+    else
219
+        touch $rootdir/root/.initial_mesh_setup
218 220
     fi
219 221
 
220 222
     # The presence of this file indicates that the initial
@@ -292,7 +294,7 @@ EOF
292 294
             echo "    ${PROJECT_NAME} menuconfig-onion" >> $rootdir/root/.bashrc
293 295
         fi
294 296
     else
295
-        echo "    ${PROJECT_NAME}-image-mesh" >> $rootdir/root/.bashrc
297
+        echo 'echo ""'
296 298
     fi
297 299
     echo '    if [ "$?" = "0" ]; then' >> $rootdir/root/.bashrc
298 300
     echo "        if [ -f ~/${PROJECT_NAME}-completed.txt ]; then" >> $rootdir/root/.bashrc
@@ -359,6 +361,32 @@ atheros_wifi() {
359 361
     fi
360 362
 }
361 363
 
364
+initialise_mesh() {
365
+    if [[ $VARIANT != "mesh" ]]; then
366
+        return
367
+    fi
368
+    MESH_SERVICE='mesh-setup.service'
369
+    MESH_SETUP_DAEMON=$rootdir/etc/systemd/system/$MESH_SERVICE
370
+
371
+    echo '[Unit]' > $MESH_SETUP_DAEMON
372
+    echo 'Description=Initial mesh router configuration' >> $MESH_SETUP_DAEMON
373
+    echo 'After=syslog.target' >> $MESH_SETUP_DAEMON
374
+    echo 'After=network.target' >> $MESH_SETUP_DAEMON
375
+    echo '[Service]' >> $MESH_SETUP_DAEMON
376
+    echo 'Type=simple' >> $MESH_SETUP_DAEMON
377
+    echo 'User=root' >> $MESH_SETUP_DAEMON
378
+    echo 'Group=root' >> $MESH_SETUP_DAEMON
379
+    echo 'WorkingDirectory=/root' >> $MESH_SETUP_DAEMON
380
+    echo "ExecStart=/usr/local/bin/${PROJECT_NAME}-image-mesh > /var/log/mesh-setup.log" >> $MESH_SETUP_DAEMON
381
+    echo '' >> $MESH_SETUP_DAEMON
382
+    echo 'TimeoutSec=99999' >> $MESH_SETUP_DAEMON
383
+    echo '' >> $MESH_SETUP_DAEMON
384
+    echo '[Install]' >> $MESH_SETUP_DAEMON
385
+    echo 'WantedBy=multi-user.target' >> $MESH_SETUP_DAEMON
386
+
387
+    chroot $rootdir systemctl enable $MESH_SERVICE
388
+}
389
+
362 390
 # Set to true/false to control if eatmydata is used during build
363 391
 use_eatmydata=true
364 392
 
@@ -470,6 +498,7 @@ admin_user_sudo
470 498
 create_generic_image
471 499
 atheros_wifi
472 500
 continue_installation
501
+initialise_mesh
473 502
 
474 503
 cd /
475 504
 echo $"info: killing leftover processes in chroot"

+ 16
- 9
src/freedombone-image-mesh ファイルの表示

@@ -290,15 +290,22 @@ function configure_tox {
290 290
     fi
291 291
 }
292 292
 
293
-if [ $1 ]; then
294
-    MY_USERNAME=$1
295
-fi
293
+if [ -f /root/.initial_mesh_setup ]; then
294
+    if [ $1 ]; then
295
+        MY_USERNAME=$1
296
+    fi
296 297
 
297
-regenerate_ssh_host_keys
298
-configure_zeronet_blog
299
-configure_zeronet_mail
300
-configure_zeronet_forum
301
-configure_tox
302
-change_avahi_name
298
+    regenerate_ssh_host_keys
299
+    configure_zeronet_blog
300
+    configure_zeronet_mail
301
+    configure_zeronet_forum
302
+    configure_tox
303
+    change_avahi_name
304
+
305
+    rm /root/.initial_mesh_setup
306
+    systemctl disable mesh-setup.service
307
+    touch /root/.mesh_setup_completed
308
+    reboot
309
+fi
303 310
 
304 311
 exit 0