Przeglądaj źródła

Optionally install proprietary firmware for wifi on mesh variants

Bob Mottram 8 lat temu
rodzic
commit
48cee051ab

BIN
man/freedombone-image.1.gz Wyświetl plik


+ 9
- 1
src/freedombone-image Wyświetl plik

@@ -118,6 +118,9 @@ WIFI_PASSPHRASE=
118 118
 WIFI_HOTSPOT='no'
119 119
 WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
120 120
 
121
+# Whether to install non-free wifi drivers for the mesh client
122
+INSECURE='no'
123
+
121 124
 mesh_router_setup_script() {
122 125
 	# create a setup script for a mesh router
123 126
 	mesh_script_filename=$1
@@ -265,6 +268,10 @@ do
265 268
 			shift
266 269
 			WIFI_NETWORKS_FILE="$1"
267 270
 			;;
271
+		--insecure)
272
+			shift
273
+			INSECURE="$1"
274
+			;;
268 275
 		*)
269 276
 			# unknown option
270 277
 			;;
@@ -376,7 +383,8 @@ make $IMAGE_TYPE \
376 383
 	 WIFI_HOTSPOT="$WIFI_HOTSPOT" \
377 384
 	 WIFI_NETWORKS_FILE="$WIFI_NETWORKS_FILE" \
378 385
 	 VARIANT="$VARIANT" \
379
-	 MINIMUM_PASSWORD_LENGTH="$MINIMUM_PASSWORD_LENGTH"
386
+	 MINIMUM_PASSWORD_LENGTH="$MINIMUM_PASSWORD_LENGTH" \
387
+	 INSECURE="$INSECURE"
380 388
 
381 389
 if [ ! "$?" = "0" ]; then
382 390
 	echo $'Build failed'

+ 20
- 0
src/freedombone-image-customise Wyświetl plik

@@ -91,6 +91,9 @@ WIFI_PASSPHRASE=
91 91
 WIFI_HOTSPOT='no'
92 92
 WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
93 93
 
94
+# Whether to install non-free wifi drivers for the mesh client
95
+INSECURE='no'
96
+
94 97
 enable_eatmydata_override() {
95 98
 	chroot $rootdir apt-get install --no-install-recommends -y eatmydata
96 99
 	if [ -x $rootdir/usr/bin/eatmydata ] && \
@@ -963,6 +966,23 @@ initialise_mesh() {
963 966
 		return
964 967
 	fi
965 968
 
969
+	if [[ $INSECURE == $'yes' ]]; then
970
+		echo  '*********************************************************'
971
+		echo $'WARNING: non-free wifi drivers are being installed.'
972
+		echo $'         This may compromise the security of your system.'
973
+		echo  '*********************************************************'
974
+
975
+		# enable non-free repo
976
+		if ! grep -q "non-free" $rootdir/etc/apt/sources.list; then
977
+			chroot "$rootdir" sed -i "s| main| main non-free|g" /etc/apt/sources.list
978
+			chroot "$rootdir" apt-get update
979
+		fi
980
+
981
+		# install proprietary wifi drivers
982
+		# see https://wiki.debian.org/iwlwifi
983
+		chroot "$rootdir" apt-get -y install firmware-iwlwifi
984
+	fi
985
+
966 986
 	mesh_firewall
967 987
 	mesh_avahi
968 988
 	mesh_batman

+ 2
- 0
src/freedombone-image-make Wyświetl plik

@@ -64,6 +64,7 @@ export WIFI_HOTSPOT
64 64
 export WIFI_NETWORKS_FILE
65 65
 export VARIANT
66 66
 export MINIMUM_PASSWORD_LENGTH
67
+export INSECURE
67 68
 
68 69
 # Locate vmdebootstrap program fetched in Makefile
69 70
 basedir=`pwd`
@@ -197,6 +198,7 @@ sudo sed -i "s|WIFI_HOTSPOT=.*|WIFI_HOTSPOT=\"${WIFI_HOTSPOT}\"|g" $TEMP_CUSTOMI
197 198
 sudo sed -i "s|WIFI_NETWORKS_FILE=.*|WIFI_NETWORKS_FILE=\"${WIFI_NETWORKS_FILE}\"|g" $TEMP_CUSTOMISE
198 199
 sudo sed -i "s|VARIANT=.*|VARIANT=\"${VARIANT}\"|g" $TEMP_CUSTOMISE
199 200
 sudo sed -i "s|MINIMUM_PASSWORD_LENGTH=.*|MINIMUM_PASSWORD_LENGTH=\"${MINIMUM_PASSWORD_LENGTH}\"|g" $TEMP_CUSTOMISE
201
+sudo sed -i "s|INSECURE=.*|INSECURE=\"${INSECURE}\"|g" $TEMP_CUSTOMISE
200 202
 
201 203
 echo $"starting $VMDEBOOTSTRAP"
202 204
 # Run vmdebootstrap script to create image