浏览代码

Select HRNG type, rather than just yes or no

Bob Mottram 10 年前
父节点
当前提交
0b36287289
共有 2 个文件被更改,包括 43 次插入5 次删除
  1. 21
    5
      src/freedombone
  2. 22
    0
      src/freedombone-config

+ 21
- 5
src/freedombone 查看文件

106
 # See http://rcn-ee.net/deb/jessie-armhf/
106
 # See http://rcn-ee.net/deb/jessie-armhf/
107
 KERNEL_VERSION="v3.15.10-bone8"
107
 KERNEL_VERSION="v3.15.10-bone8"
108
 
108
 
109
-# Whether or not to use the beaglebone's hardware random number generator
110
-USE_HWRNG="yes"
109
+# The type of hardware random number generator being used
110
+# This can be empty, "beaglebone" or "onerng"
111
+HWRNG_TYPE=
111
 
112
 
112
 # Whether this system is being installed within a docker container
113
 # Whether this system is being installed within a docker container
113
 INSTALLED_WITHIN_DOCKER="no"
114
 INSTALLED_WITHIN_DOCKER="no"
694
   fi
695
   fi
695
 
696
 
696
   if [ -f $CONFIGURATION_FILE ]; then
697
   if [ -f $CONFIGURATION_FILE ]; then
698
+      if grep -q "HWRNG_TYPE" $CONFIGURATION_FILE; then
699
+          HWRNG_TYPE=$(grep "HWRNG_TYPE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
700
+      fi
697
       if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
701
       if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
698
           MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
702
           MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
699
       fi
703
       fi
4726
   echo 'enable_zram' >> $COMPLETION_FILE
4730
   echo 'enable_zram' >> $COMPLETION_FILE
4727
 }
4731
 }
4728
 
4732
 
4733
+function install_onerng {
4734
+  # TODO
4735
+}
4736
+
4729
 function random_number_generator {
4737
 function random_number_generator {
4730
   if grep -Fxq "random_number_generator" $COMPLETION_FILE; then
4738
   if grep -Fxq "random_number_generator" $COMPLETION_FILE; then
4731
       return
4739
       return
4742
       # generator of the host system
4750
       # generator of the host system
4743
       return
4751
       return
4744
   fi
4752
   fi
4745
-  if [[ $USE_HWRNG == "yes" ]]; then
4753
+
4754
+  case $HWRNG_TYPE in
4755
+    beaglebone)
4746
     apt-get -y install rng-tools
4756
     apt-get -y install rng-tools
4747
     sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' /etc/default/rng-tools
4757
     sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' /etc/default/rng-tools
4748
-  else
4758
+    ;;
4759
+    onerng)
4760
+    install_onerng
4761
+    ;;
4762
+    *)
4749
     apt-get -y install haveged
4763
     apt-get -y install haveged
4750
-  fi
4764
+    ;;
4765
+  esac
4766
+
4751
   echo 'random_number_generator' >> $COMPLETION_FILE
4767
   echo 'random_number_generator' >> $COMPLETION_FILE
4752
 }
4768
 }
4753
 
4769
 

+ 22
- 0
src/freedombone-config 查看文件

85
 MEDIAGOBLIN_DOMAIN_NAME=
85
 MEDIAGOBLIN_DOMAIN_NAME=
86
 MEDIAGOBLIN_CODE=
86
 MEDIAGOBLIN_CODE=
87
 USB_DRIVE=/dev/sdb1
87
 USB_DRIVE=/dev/sdb1
88
+HWRNG_TYPE=
88
 
89
 
89
 CONFIGURATION_FILE=
90
 CONFIGURATION_FILE=
90
 
91
 
214
   if [ $MEDIAGOBLIN_CODE ]; then
215
   if [ $MEDIAGOBLIN_CODE ]; then
215
       echo "MEDIAGOBLIN_CODE=$MEDIAGOBLIN_CODE" >> $CONFIGURATION_FILE
216
       echo "MEDIAGOBLIN_CODE=$MEDIAGOBLIN_CODE" >> $CONFIGURATION_FILE
216
   fi
217
   fi
218
+  if [ $HWRNG_TYPE ]; then
219
+      echo "HWRNG=$HWRNG" >> $CONFIGURATION_FILE
220
+  fi
217
 }
221
 }
218
 
222
 
219
 # test a domain name to see if it's valid
223
 # test a domain name to see if it's valid
323
 
327
 
324
   data=$(tempfile 2>/dev/null)
328
   data=$(tempfile 2>/dev/null)
325
   trap "rm -f $data" 0 1 2 5 15
329
   trap "rm -f $data" 0 1 2 5 15
330
+  dialog --backtitle "Random Number Generation" \
331
+      --radiolist "Type of RNG:" 17 40 3 \
332
+      1 Haveged on \
333
+      2 Beaglebone built-in HRNG off \
334
+      3 OneRNG off 2> $data
335
+  sel=$?
336
+  case $sel in
337
+      1) exit 0;;
338
+      255) exit 0;;
339
+  esac
340
+  case $(cat $data) in
341
+      2) HWRNG_TYPE="beaglebone";;
342
+      3) HWRNG_TYPE="onerng";;
343
+  esac
344
+  save_configuration_file
345
+
346
+  data=$(tempfile 2>/dev/null)
347
+  trap "rm -f $data" 0 1 2 5 15
326
   dialog --backtitle "Freedombone Configuration" \
348
   dialog --backtitle "Freedombone Configuration" \
327
       --radiolist "Where to download Debian packages from:" 25 45 49 \
349
       --radiolist "Where to download Debian packages from:" 25 45 49 \
328
       1 "Australia" off \
350
       1 "Australia" off \