|
@@ -58,9 +58,12 @@ DEBIAN_FILE_NAME="bone-debian-8.1-console-armhf-2015-07-12-2gb.img"
|
58
|
58
|
DOWNLOAD_LINK1="https://rcn-ee.com/rootfs/bb.org/testing/2015-07-12/console/$DEBIAN_FILE_NAME.xz"
|
59
|
59
|
|
60
|
60
|
ROOTFS='rootfs'
|
|
61
|
+ROOTFS_SUBDIR=''
|
61
|
62
|
|
62
|
63
|
PARTITION_NUMBER=1
|
63
|
64
|
|
|
65
|
+CURR_DIR=$(pwd)
|
|
66
|
+
|
64
|
67
|
function show_help {
|
65
|
68
|
echo ''
|
66
|
69
|
echo 'freedombone-prep -d [microSD device] --ip [BBB LAN IP address] --iprouter [Router LAN IP address] --mount [mount directory]'
|
|
@@ -83,7 +86,8 @@ if [ -d /media ]; then
|
83
|
86
|
fi
|
84
|
87
|
if [ -d /media/usb1/@ ]; then
|
85
|
88
|
MICROSD_MOUNT_POINT=/media
|
86
|
|
- ROOTFS='usb1/@'
|
|
89
|
+ ROOTFS=usb1
|
|
90
|
+ ROOTFS_SUBDIR='/@'
|
87
|
91
|
fi
|
88
|
92
|
if [ -d /media/usb0 ]; then
|
89
|
93
|
MICROSD_MOUNT_POINT=/media
|
|
@@ -114,7 +118,7 @@ case $key in
|
114
|
118
|
-i|--image)
|
115
|
119
|
shift
|
116
|
120
|
DEBIAN_IMAGE_FILENAME="$1"
|
117
|
|
- ROOTFS='usb1/@'
|
|
121
|
+ ROOTFS_SUBDIR='/@'
|
118
|
122
|
;;
|
119
|
123
|
# BBB static IP address on the LAN
|
120
|
124
|
--ip)
|
|
@@ -177,7 +181,7 @@ SUDO=
|
177
|
181
|
if [ -f /usr/bin/sudo ]; then
|
178
|
182
|
SUDO='sudo'
|
179
|
183
|
fi
|
180
|
|
-$SUDO apt-get install p7zip dd wget
|
|
184
|
+$SUDO apt-get install p7zip wget
|
181
|
185
|
|
182
|
186
|
if [ ! -d ~/freedombone ]; then
|
183
|
187
|
mkdir ~/freedombone
|
|
@@ -198,6 +202,11 @@ if [ $DEBIAN_IMAGE_FILENAME ]; then
|
198
|
202
|
exit 62394
|
199
|
203
|
fi
|
200
|
204
|
DEBIAN_FILE_NAME=$DEBIAN_IMAGE_FILENAME
|
|
205
|
+ if [ ! -f ~/freedombone/$DEBIAN_FILE_NAME ]; then
|
|
206
|
+ cd $CURR_DIR
|
|
207
|
+ cp $DEBIAN_FILE_NAME ~/freedombone/$DEBIAN_FILE_NAME
|
|
208
|
+ cd ~/freedombone
|
|
209
|
+ fi
|
201
|
210
|
else
|
202
|
211
|
# default debian image downloaded from elsewhere
|
203
|
212
|
if [ ! -f ~/freedombone/$DEBIAN_FILE_NAME.xz ]; then
|
|
@@ -215,7 +224,7 @@ fi
|
215
|
224
|
|
216
|
225
|
cd ~/freedombone
|
217
|
226
|
echo 'Flashing image. This may take a while.'
|
218
|
|
-$SUDO dd if=$DEBIAN_FILE_NAME of=$MICROSD_DRIVE
|
|
227
|
+#$SUDO dd if=$DEBIAN_FILE_NAME of=$MICROSD_DRIVE
|
219
|
228
|
sync
|
220
|
229
|
|
221
|
230
|
sleep 5
|
|
@@ -244,19 +253,19 @@ if [ ! -d $MICROSD_MOUNT_POINT/$ROOTFS ]; then
|
244
|
253
|
exit 65688
|
245
|
254
|
fi
|
246
|
255
|
|
247
|
|
-if [ ! -d $MICROSD_MOUNT_POINT/$ROOTFS/home ]; then
|
|
256
|
+if [ ! -d $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/home ]; then
|
248
|
257
|
echo ''
|
249
|
258
|
echo "The rootfs partition was not written correctly."
|
250
|
|
- ls $MICROSD_MOUNT_POINT/$ROOTFS
|
|
259
|
+ ls $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR
|
251
|
260
|
exit 65688
|
252
|
261
|
fi
|
253
|
262
|
|
254
|
|
-$SUDO sed -i 's/iface eth0 inet dhcp/iface eth0 inet static/g' $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
255
|
|
-$SUDO sed -i "/iface eth0 inet static/a\ dns-nameservers $NAMESERVER1 $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
256
|
|
-$SUDO sed -i "/iface eth0 inet static/a\ gateway $ROUTER_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
257
|
|
-$SUDO sed -i '/iface eth0 inet static/a\ netmask 255.255.255.0' $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
258
|
|
-$SUDO sed -i "/iface eth0 inet static/a\ address $BBB_FIXED_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
259
|
|
-$SUDO sed -i '/iface usb0 inet static/,/ gateway 192.168.7.1/ s/^/#/' $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
|
263
|
+$SUDO sed -i 's/iface eth0 inet dhcp/iface eth0 inet static/g' $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
|
264
|
+$SUDO sed -i "/iface eth0 inet static/a\ dns-nameservers $NAMESERVER1 $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
|
265
|
+$SUDO sed -i "/iface eth0 inet static/a\ gateway $ROUTER_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
|
266
|
+$SUDO sed -i '/iface eth0 inet static/a\ netmask 255.255.255.0' $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
|
267
|
+$SUDO sed -i "/iface eth0 inet static/a\ address $BBB_FIXED_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
|
268
|
+$SUDO sed -i '/iface usb0 inet static/,/ gateway 192.168.7.1/ s/^/#/' $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
260
|
269
|
|
261
|
270
|
hexarray=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )
|
262
|
271
|
a=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
|
|
@@ -264,24 +273,24 @@ b=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
|
264
|
273
|
c=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
|
265
|
274
|
d=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
|
266
|
275
|
e=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
|
267
|
|
-$SUDO sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
|
|
276
|
+$SUDO sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
|
268
|
277
|
|
269
|
|
-$SUDO sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $MICROSD_MOUNT_POINT/$ROOTFS/etc/resolv.conf
|
270
|
|
-$SUDO sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS/etc/resolv.conf
|
|
278
|
+$SUDO sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/resolv.conf
|
|
279
|
+$SUDO sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/resolv.conf
|
271
|
280
|
|
272
|
281
|
# copy the commands to the card
|
273
|
|
-$SUDO cp -f $(which freedombone)* $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/
|
274
|
|
-$SUDO cp -f $(which zeronetavahi)* $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/
|
275
|
|
-$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/freedombone-mesh $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/mesh
|
276
|
|
-$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/freedombone-meshweb $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/meshweb
|
277
|
|
-if [ ! -f $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/freedombone ]; then
|
|
282
|
+$SUDO cp -f $(which freedombone)* $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/
|
|
283
|
+$SUDO cp -f $(which zeronetavahi)* $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/
|
|
284
|
+$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/freedombone-mesh $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/mesh
|
|
285
|
+$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/freedombone-meshweb $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/meshweb
|
|
286
|
+if [ ! -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/freedombone ]; then
|
278
|
287
|
echo 'There was a problem with writing freedombone commands to the SD card'
|
279
|
288
|
exit 8736
|
280
|
289
|
fi
|
281
|
290
|
|
282
|
291
|
# remove automatic motd creator if it exists
|
283
|
|
-if [ -f $MICROSD_MOUNT_POINT/$ROOTFS/etc/init.d/motd ]; then
|
284
|
|
- $SUDO rm -f $MICROSD_MOUNT_POINT/$ROOTFS/etc/init.d/motd
|
|
292
|
+if [ -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/init.d/motd ]; then
|
|
293
|
+ $SUDO rm -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/init.d/motd
|
285
|
294
|
fi
|
286
|
295
|
|
287
|
296
|
# change the motd to show further install instructions
|
|
@@ -303,7 +312,7 @@ echo ' apt-get update' >> /tmp/freedombone_motd
|
303
|
312
|
echo ' apt-get -y install git dialog build-essential' >> /tmp/freedombone_motd
|
304
|
313
|
echo ' freedombone menuconfig' >> /tmp/freedombone_motd
|
305
|
314
|
|
306
|
|
-$SUDO cp -f /tmp/freedombone_motd $MICROSD_MOUNT_POINT/$ROOTFS/etc/motd
|
|
315
|
+$SUDO cp -f /tmp/freedombone_motd $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/motd
|
307
|
316
|
|
308
|
317
|
clear
|
309
|
318
|
echo '*** Initial microSD card setup is complete ***'
|