From 4fccf12c69c0500559ac22e07688247b8f578870 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Fri, 20 Nov 2015 21:43:03 +0000
Subject: [PATCH] Improve the image command

---
 man/freedombone-image.1.gz      | Bin 692 -> 945 bytes
 src/freedombone-image           |  92 +++++++++++++++++++++++++++---
 src/freedombone-image-customise |  96 ++++++++++++++++++++++++++++----
 src/freedombone-image-make      |  21 ++++++-
 src/freedombone-image-makefile  |  21 ++++++-
 src/freedombone-prep            |  55 ++++++++++--------
 6 files changed, 240 insertions(+), 45 deletions(-)

diff --git a/man/freedombone-image.1.gz b/man/freedombone-image.1.gz
index 254f3bfbb08261b86c9e23f1d7a0e1a2bdca5701..c679442a2ed636f75d03ceb20b06d8c90ec2fcfa 100644
GIT binary patch
literal 945
zcmV;i15W%OiwFScf=^Ze1C3NsZ`(Eyex82C!7purNUq%`NR45bow$jy#4#eL#pdmS
zl+G4mk<`dz694<1Bs+0t7ieGv;@$D?yYD_;GQWnUL(Hv~)?lo(SRwSF)Bgxl`w0Dy
zz0(eK`1kcS3LZSVcOGtq38L&oQIcLmXF9wcccQ~&f5&j)P!M_$kfT(>K<n{Ak&q?A
z(mGJalPF7NR$vWT@EcF4{Wf{}=k#utPSRrqVuA$;w?g^{;sA@l=#0?FrwSI8@czlV
zoKLahv$W5^l}KeUnSsc2hu*hNX9J;w#j73cl7X?&AVKS{Lyhmj;;V9=;BuM**L&o9
zlUeKQ!y?7Zn*4vxZ7Y}K^x}Rpn@{ehooHSt57|%9^W+rO+%Pi&w91@KFCh~yPqt|%
z({w((xf!;3FR?<CqsbKK%{ZmR9mANzlcHh}MZkYP<eaghnCXLfvkL+lRGG(20UA=G
zgq0$wHdI&>=QazZN)LKX);SJ<N6pBsB~MONkXyg>WG#nCa!Vh#-}p>C-thdAM{&4~
zm04QQ(!sx|LtGCp-p)s|OH=GaRar+6;<`keEQ%&e*x10W_@XAI<q#f~Bi3X+<c35K
zRG?u+!DUM=-+9OF85U7}4Nb!^2Sv#UcxdF5j2u?BAxW9q+(pW|%u(0d;4<_{$;czY
z18$P<DC5I^{YqqOMzEXDLpr?T_wmb7{Yn(85}UWh3f7yQglh%s%}&Ctf_q>3N$>1D
z=_RM9`?7tt_fJ1FKg1o>sKlD3WH}e9`rivxHQWZk3Dm9BWctE}GUxfRlXc0g2`IU7
zTLDWjN58H=waAzlg!d}J1dOF7)m{sVJeJE3-1*FUuNs1z_sJ4>IM@q4fh<VHpDg75
z38+u!XN*SYXP-~@sEk|to}mfZ5<7ah;<a#(jYecxaS^JgRuENw(CxBviy)KC>aG;N
za9MY61YPBQz?UsE9>ee^y?e7|-uFJ7yxEbw8!~isV9!d$Z{etmub>vHJm#pybj<#&
ztLg_e4$Nw0tUE-?dS0s4f!U$9bQsMq8K2^#_?<ou-|3_1ojwZQV|HK*<_Fm83~{ae
z15d@zla1S%4Ik#$clVuWWF_2M;svDPS83(%&PvN$#3x~$ko_%6q>E-(v+mXGY5?Qm
zm-GJk(|KbZDbl>@_$drvbQ|}x@1fA6$8Y)4T^Bd@uX*mPi}fF<=GHx+Pj8xA-%$=4
Tk+H_!){6cEn0&k3RtEq8vf%BL

literal 692
zcmV;l0!#fLiwFQXA5T^Q1C3MLZqq;zea2rg$_pUX4lP202qBU-q!DQv)d>~1hh2LT
zuj1V?yR*IgJ(Ei*m4k$3S=P+#nKN_FX7h7cdc=~fCWoo9YK3qNos(BEr5iYTb^N9S
z9eF=JR>2~me;(jMxv1(+l4SWgbf*1_VJB&W{Yc@|qhbu8phRtygIy*>!%Ei(OY&e`
zU{%+~t$-X8g!{l~!yY{UI=!6b<NQ#A@2va^`RBg$Y?z;3jc4=m<+PK`D-)pjkM_6T
z@TRwPR$xuxDL;ck`7+zXj;Hy&KbiD*xM$d)E7283a0`Ld_%H#MaBH~gB?-tAVkw9X
zr@|1@`-dXX(bQ#%A)sTUYFHVD=AJ8ZX-P$7QwOkXChw&HZmcjT;=o=tP*PY1CXy1(
zei_o;Ki;vdFW&vZF;Y&caZ3WLJ^Vr&(<suVLV-;IT2hwN5SxZPLrga<c3}IV7kPgq
zqCRUcU87pnxCtc5m}O#_iPc)RN*005=0p3<16R1)`4K2r!aYR@6~(%gQ6wo6k(0I8
zvL|Xl)F?5mH@{XDl@Y_eFd1gxh__IWy}@w6dinA}q`_h&7P-RhJUXsKb561WRLo82
zb-S|VD(b8t+tn&mzUclnS=WRR@sHz%L+DTP%O{R|as2Y=$$e2}S)k`uyr_-nb}%JJ
z&?-|OO4K6Rq4=F`nt$|Yh0V&5Z!;~(EzPPG_GpRQ)#5t5O%L+-_Aq^K53=|6Ao+kr
zD;C{9xNi{BMupJIG#)qDd(HZb`T6BlCmE223u3t}7T#;pA3bRj$A>JgGo}worhPIS
z&AOx6s0YLTySFF9*KfDcfnh7RQoP!O!9{vfT*t}|ZoZUDe_l=K+q?|T>H0I8Ir#;K
ae6l@tjk>ornRx7JujDsbuj@5p1pojTE?PGL

diff --git a/src/freedombone-image b/src/freedombone-image
index 739f2fb90..de9624653 100755
--- a/src/freedombone-image
+++ b/src/freedombone-image
@@ -28,20 +28,87 @@
 # You should have received a copy of the GNU General Public License
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 
-IMAGE_TYPE=$1
+IMAGE_TYPE='beaglebone'
 CURR_DIR=$(pwd)
 BUILD_DIR=~/.tmp_freedombone_build
+VMDEBOOTSTRAP_REPO=git://git.liw.fi/vmdebootstrap
+VMDEBOOTSTRAP_VERSION=0.8
+MAKEFILE=freedombone-image-makefile
 
+USERNAME=$(echo $USER)
+PASSWORD='freedombone'
+
+# IP address of the router (gateway)
+ROUTER_IP_ADDRESS="192.168.1.254"
+
+# The fixed IP address of the Beaglebone Black (or other SBC) on your local network
+BOX_IP_ADDRESS="192.168.1.55"
+
+# DNS
+NAMESERVER1='213.73.91.35'
+NAMESERVER2='85.214.20.141'
+
+while [[ $# > 1 ]]
+do
+key="$1"
+
+case $key in
+    -h|--help)
+    show_help
+    ;;
+    -t|--target|--board)
+    shift
+    IMAGE_TYPE="$1"
+    ;;
+    -u|--user|--username)
+    shift
+    USERNAME="$1"
+    ;;
+    -p|--password)
+    shift
+    PASSWORD="$1"
+    ;;
+    # Box static IP address on the LAN
+    --ip)
+    shift
+    BOX_IP_ADDRESS="$1"
+    ;;
+    # Router IP address on the LAN
+    --iprouter)
+    shift
+    ROUTER_IP_ADDRESS="$1"
+    ;;
+    # nameserver 1
+    --ns1|--nameserver1)
+    shift
+    NAMESERVER1="$1"
+    ;;
+    # nameserver 2
+    --ns2|--nameserver2)
+    shift
+    NAMESERVER2="$1"
+    ;;
+    *)
+    # unknown option
+    ;;
+esac
+shift
+done
+
+
+
+rm $CURR_DIR/*.img.bz2
 rm $CURR_DIR/*.img
+rm $CURR_DIR/*.sig
 
 if [ -d $BUILD_DIR ]; then
-	rm -rf $BUILD_DIR
+    rm -rf $BUILD_DIR
 fi
 mkdir -p $BUILD_DIR
-if [ -f /usr/local/bin/freedombone-image-makefile ]; then
-	cp /usr/local/bin/freedombone-image-makefile $BUILD_DIR/Makefile
+if [ -f /usr/local/bin/$MAKEFILE ]; then
+    cp /usr/local/bin/$MAKEFILE $BUILD_DIR/Makefile
 else
-	cp /usr/bin/freedombone-image-makefile $BUILD_DIR/Makefile
+    cp /usr/bin/$MAKEFILE $BUILD_DIR/Makefile
 fi
 
 cp -r /etc/freedombone/* $BUILD_DIR
@@ -52,18 +119,25 @@ mkdir vendor
 if [ -d vendor/vmdebootstrap ] ; then
     (cd vendor/vmdebootstrap; git checkout .; git pull)
 else
-    git clone git://git.liw.fi/vmdebootstrap vendor/vmdebootstrap
+    git clone $VMDEBOOTSTRAP_REPO vendor/vmdebootstrap
 fi
 cd vendor/vmdebootstrap
-git checkout tags/vmdebootstrap-0.8
-git checkout -b tags/vmdebootstrap-0.8
+git checkout tags/vmdebootstrap-${VMDEBOOTSTRAP_VERSION}
+git checkout -b tags/vmdebootstrap-${VMDEBOOTSTRAP_VERSION}
 for f in ../../vendor-patches/vmdebootstrap/* ; do
     echo applying $(basename $f)
     patch -p1 < $f
 done
 
 cd $BUILD_DIR
-make $IMAGE_TYPE
+make $IMAGE_TYPE \
+    USERNAME="$USERNAME" \
+    PASSWORD="$PASSWORD" \
+    ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
+    BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
+    NAMESERVER1="$NAMESERVER1" \
+    NAMESERVER2="$NAMESERVER2"
+
 mv build/*.bz2 $CURR_DIR
 mv build/*.img $CURR_DIR
 mv build/*.sig $CURR_DIR
diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise
index 9b369ea24..ae000ae78 100755
--- a/src/freedombone-image-customise
+++ b/src/freedombone-image-customise
@@ -18,6 +18,22 @@
 set -e
 set -x
 
+# The number of arguments
+NO_OF_ARGS=$#
+
+MY_USERNAME=$USER
+MY_PASSWORD='freedombone'
+
+# IP address of the router (gateway)
+ROUTER_IP_ADDRESS="192.168.1.254"
+
+# The fixed IP address of the Beaglebone Black on your local network
+BOX_IP_ADDRESS="192.168.1.55"
+
+# DNS
+NAMESERVER1='213.73.91.35'
+NAMESERVER2='85.214.20.141'
+
 enable_eatmydata_override() {
     chroot $rootdir apt-get install --no-install-recommends -y eatmydata
     if [ -x $rootdir/usr/bin/eatmydata ] && \
@@ -78,9 +94,9 @@ export LC_ALL=C LANGUAGE=C LANG=C
 # are not created yet.
 export TMP=/tmp/ TMPDIR=/tmp/
 
-username=freedom
+username=$MY_USERNAME
 echo "warning: creating initial user $username with well known password!"
-password=bone
+password=$MY_PASSWORD
 chroot $rootdir adduser --gecos $username --disabled-password $username
 echo $username:$password | chroot $rootdir /usr/sbin/chpasswd
 chroot $rootdir adduser $username sudo
@@ -112,7 +128,7 @@ if [ -n "$CUSTOM_SETUP" ]; then
     chroot "$rootdir" gdebi -n /tmp/"$(basename $CUSTOM_SETUP)"
 fi
 
-chroot "$rootdir" apt-get install -y git dialog
+chroot "$rootdir" apt-get install -y git dialog build-essential
 chroot "$rootdir" git clone https://github.com/bashrc/freedombone /root/freedombone
 chroot "$rootdir" cd /root/freedombone && make install
 
@@ -127,18 +143,76 @@ chroot $rootdir /usr/lib/freedombone/setup 2>&1 | \
 # Remove SSH keys from the image
 rm $rootdir/etc/ssh/ssh_host_* || true
 
+echo "# This file describes the network interfaces available on your system
+# and how to activate them. For more information, see interfaces(5).
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# The primary network interface
+auto eth0
+iface eth0 inet static
+    address $BOX_IP_ADDRESS
+    netmask 255.255.255.0
+    gateway $ROUTER_IP_ADDRESS
+    dns-nameservers $NAMESERVER1 $NAMESERVER2
+# Example to keep MAC address between reboots
+#hwaddress ether B5:A2:BE:3F:1A:FE
+
+# The secondary network interface
+#auto eth1
+#iface eth1 inet dhcp
+
+# WiFi Example
+#auto wlan0
+#iface wlan0 inet dhcp
+#    wpa-ssid \"essid\"
+#    wpa-psk  \"password\"
+
+# Ethernet/RNDIS gadget (g_ether)
+# ... or on host side, usbnet and random hwaddr
+# Note on some boards, usb0 is automaticly setup with an init script
+#iface usb0 inet static
+#    address 192.168.7.2
+#    netmask 255.255.255.0
+#    network 192.168.7.0
+#    gateway 192.168.7.1" > $rootdir/etc/network/interfaces
+
+hexarray=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )
+a=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+b=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+c=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+d=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+e=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" $rootdir/etc/network/interfaces
+
+sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $rootdir/etc/resolv.conf
+sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $rootdir/etc/resolv.conf
+
+# change the motd to show further install instructions
+echo "
+To complete the installation run the following:
+
+    su
+    freedombone menuconfig
+
+" > $rootdir/etc/init.d/motd
+
+
 # copy u-boot to beginning of image
 case "$MACHINE" in
     beaglebone)
-    chroot $rootdir apt-get -y install rng-tools
-    sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' $rootdir/etc/default/rng-tools
-
-	dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/MLO of="$image" \
-	   count=1 seek=1 conv=notrunc bs=128k
-	dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/u-boot.img of="$image" \
-	   count=2 seek=1 conv=notrunc bs=384k
-	;;
+        chroot $rootdir apt-get -y install rng-tools
+        sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' $rootdir/etc/default/rng-tools
+
+        dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/MLO of="$image" \
+           count=1 seek=1 conv=notrunc bs=128k
+        dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/u-boot.img of="$image" \
+           count=2 seek=1 conv=notrunc bs=384k
+        ;;
     cubieboard2)
+        chroot $rootdir apt-get -y install haveged
         dd if=$rootdir/usr/lib/u-boot/Cubieboard2/u-boot-sunxi-with-spl.bin of="$image" \
            seek=8 conv=notrunc bs=1k
         ;;
diff --git a/src/freedombone-image-make b/src/freedombone-image-make
index 907cc1b50..c7ddca69d 100755
--- a/src/freedombone-image-make
+++ b/src/freedombone-image-make
@@ -25,6 +25,12 @@ export ARCHITECTURE
 export MACHINE
 export SOURCE
 export SUITE
+export MY_USERNAME
+export MY_PASSWORD
+export ROUTER_IP_ADDRESS
+export BOX_IP_ADDRESS
+export NAMESERVER1
+export NAMESERVER2
 
 # Locate vmdebootstrap program fetched in Makefile
 basedir=`pwd`
@@ -103,6 +109,16 @@ else
     VMDEBOOTSTRAP=vmdebootstrap
 fi
 
+echo 'Making customised customisation script'
+TEMP_CUSTOMISE=/etc/freedombone/image-customise
+sudo cp /usr/local/bin/freedombone-image-customise $TEMP_CUSTOMISE
+sudo sed -i "s|MY_USERNAME=.*|MY_USERNAME=${MY_USERNAME}|g" $TEMP_CUSTOMISE
+sudo sed -i "s|MY_PASSWORD=.*|MY_PASSWORD=${MY_PASSWORD}|g" $TEMP_CUSTOMISE
+sudo sed -i "s|ROUTER_IP_ADDRESS=.*|ROUTER_IP_ADDRESS=${ROUTER_IP_ADDRESS}|g" $TEMP_CUSTOMISE
+sudo sed -i "s|BOX_IP_ADDRESS=.*|BOX_IP_ADDRESS=${BOX_IP_ADDRESS}|g" $TEMP_CUSTOMISE
+sudo sed -i "s|NAMESERVER1=.*|NAMESERVER1=${NAMESERVER1}|g" $TEMP_CUSTOMISE
+sudo sed -i "s|NAMESERVER2=.*|NAMESERVER2=${NAMESERVER1}|g" $TEMP_CUSTOMISE
+
 echo "starting $VMDEBOOTSTRAP"
 # Run vmdebootstrap script to create image
 sudo -H \
@@ -121,9 +137,12 @@ sudo -H \
     --hostname freedombone \
     --verbose \
     --mirror $BUILD_MIRROR \
-    --customize "freedombone-image-customise" \
+    --customize "$TEMP_CUSTOMISE" \
     --lock-root-password \
     --arch $ARCHITECTURE \
     --distribution $SUITE \
     $extra_opts \
     $pkgopts
+
+echo 'Removing customised customisation script'
+sudo shred -zu $TEMP_CUSTOMISE
diff --git a/src/freedombone-image-makefile b/src/freedombone-image-makefile
index 323fa185b..372d6c9ee 100755
--- a/src/freedombone-image-makefile
+++ b/src/freedombone-image-makefile
@@ -38,13 +38,32 @@ SIGN = -gpg --output $(SIGNATURE) --detach-sig $(ARCHIVE)
 TEST_SSH_PORT = 2222
 TEST_FIRSTRUN_WAIT_TIME = 120 # seconds
 
+USERNAME ?= $(echo $USER)
+PASSWORD ?= 'freedombone'
+
+# IP address of the router (gateway)
+ROUTER_IP_ADDRESS ?= "192.168.1.254"
+
+# The fixed IP address of the Beaglebone Black (or other SBC) on your local network
+BOX_IP_ADDRESS ?= "192.168.1.55"
+
+# DNS
+NAMESERVER1 ?= '213.73.91.35'
+NAMESERVER2 ?= '85.214.20.141'
+
 # Using taskset to pin build process to single core. This is a
 # workaround for a qemu-user-static issue that causes builds to
 # hang. (See Debian bug #769983 for details.)
 MAKE_IMAGE = ARCHITECTURE=$(ARCHITECTURE) MACHINE=$(MACHINE) SOURCE=$(SOURCE) \
     MIRROR=$(MIRROR) SUITE=$(SUITE) OWNER=$(OWNER) \
     BUILD_MIRROR=$(BUILD_MIRROR) \
-    CUSTOM_PLINTH=$(CUSTOM_PLINTH) CUSTOM_SETUP=$(CUSTOM_SETUP) \
+    MY_USERNAME=$(USERNAME) \
+    MY_PASSWORD=$(PASSWORD) \
+    ROUTER_IP_ADDRESS=$(ROUTER_IP_ADDRESS) \
+    BOX_IP_ADDRESS=$(BOX_IP_ADDRESS) \
+    NAMESERVER1=$(NAMESERVER1) \
+    NAMESERVER2=$(NAMESERVER2) \
+    CUSTOM_SETUP=$(CUSTOM_SETUP) \
     IMAGE_SIZE=$(IMAGE_SIZE) taskset 0x01 freedombone-image-make $(NAME)
 
 # build Beaglebone SD card image
diff --git a/src/freedombone-prep b/src/freedombone-prep
index 2d5f36f3c..efd25d756 100755
--- a/src/freedombone-prep
+++ b/src/freedombone-prep
@@ -58,9 +58,12 @@ DEBIAN_FILE_NAME="bone-debian-8.1-console-armhf-2015-07-12-2gb.img"
 DOWNLOAD_LINK1="https://rcn-ee.com/rootfs/bb.org/testing/2015-07-12/console/$DEBIAN_FILE_NAME.xz"
 
 ROOTFS='rootfs'
+ROOTFS_SUBDIR=''
 
 PARTITION_NUMBER=1
 
+CURR_DIR=$(pwd)
+
 function show_help {
     echo ''
     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
     fi
     if [ -d /media/usb1/@ ]; then
         MICROSD_MOUNT_POINT=/media
-        ROOTFS='usb1/@'
+        ROOTFS=usb1
+		ROOTFS_SUBDIR='/@'
     fi
     if [ -d /media/usb0 ]; then
         MICROSD_MOUNT_POINT=/media
@@ -114,7 +118,7 @@ case $key in
     -i|--image)
     shift
     DEBIAN_IMAGE_FILENAME="$1"
-    ROOTFS='usb1/@'
+    ROOTFS_SUBDIR='/@'
     ;;
     # BBB static IP address on the LAN
     --ip)
@@ -177,7 +181,7 @@ SUDO=
 if [ -f /usr/bin/sudo ]; then
     SUDO='sudo'
 fi
-$SUDO apt-get install p7zip dd wget
+$SUDO apt-get install p7zip wget
 
 if [ ! -d ~/freedombone ]; then
     mkdir ~/freedombone
@@ -198,6 +202,11 @@ if [ $DEBIAN_IMAGE_FILENAME ]; then
         exit 62394
     fi
     DEBIAN_FILE_NAME=$DEBIAN_IMAGE_FILENAME
+    if [ ! -f ~/freedombone/$DEBIAN_FILE_NAME ]; then
+		cd $CURR_DIR
+        cp $DEBIAN_FILE_NAME ~/freedombone/$DEBIAN_FILE_NAME
+		cd ~/freedombone
+    fi
 else
     # default debian image downloaded from elsewhere
     if [ ! -f ~/freedombone/$DEBIAN_FILE_NAME.xz ]; then
@@ -215,7 +224,7 @@ fi
 
 cd ~/freedombone
 echo 'Flashing image. This may take a while.'
-$SUDO dd if=$DEBIAN_FILE_NAME of=$MICROSD_DRIVE
+#$SUDO dd if=$DEBIAN_FILE_NAME of=$MICROSD_DRIVE
 sync
 
 sleep 5
@@ -244,19 +253,19 @@ if [ ! -d $MICROSD_MOUNT_POINT/$ROOTFS ]; then
     exit 65688
 fi
 
-if [ ! -d $MICROSD_MOUNT_POINT/$ROOTFS/home ]; then
+if [ ! -d $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/home ]; then
     echo ''
     echo "The rootfs partition was not written correctly."
-    ls $MICROSD_MOUNT_POINT/$ROOTFS
+    ls $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR
     exit 65688
 fi
 
-$SUDO sed -i 's/iface eth0 inet dhcp/iface eth0 inet static/g' $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
-$SUDO sed -i "/iface eth0 inet static/a\    dns-nameservers $NAMESERVER1 $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
-$SUDO sed -i "/iface eth0 inet static/a\    gateway $ROUTER_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
-$SUDO sed -i '/iface eth0 inet static/a\    netmask 255.255.255.0' $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
-$SUDO sed -i "/iface eth0 inet static/a\    address $BBB_FIXED_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
-$SUDO sed -i '/iface usb0 inet static/,/    gateway 192.168.7.1/ s/^/#/' $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
+$SUDO sed -i 's/iface eth0 inet dhcp/iface eth0 inet static/g' $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
+$SUDO sed -i "/iface eth0 inet static/a\    dns-nameservers $NAMESERVER1 $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
+$SUDO sed -i "/iface eth0 inet static/a\    gateway $ROUTER_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
+$SUDO sed -i '/iface eth0 inet static/a\    netmask 255.255.255.0' $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
+$SUDO sed -i "/iface eth0 inet static/a\    address $BBB_FIXED_IP_ADDRESS" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
+$SUDO sed -i '/iface usb0 inet static/,/    gateway 192.168.7.1/ s/^/#/' $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
 
 hexarray=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )
 a=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
@@ -264,24 +273,24 @@ b=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
 c=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
 d=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
 e=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
-$SUDO sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" $MICROSD_MOUNT_POINT/$ROOTFS/etc/network/interfaces
+$SUDO sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/network/interfaces
 
-$SUDO sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $MICROSD_MOUNT_POINT/$ROOTFS/etc/resolv.conf
-$SUDO sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS/etc/resolv.conf
+$SUDO sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/resolv.conf
+$SUDO sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/resolv.conf
 
 # copy the commands to the card
-$SUDO cp -f $(which freedombone)* $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/
-$SUDO cp -f $(which zeronetavahi)* $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/
-$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/freedombone-mesh $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/mesh
-$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/freedombone-meshweb $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/meshweb
-if [ ! -f $MICROSD_MOUNT_POINT/$ROOTFS/usr/local/bin/freedombone ]; then
+$SUDO cp -f $(which freedombone)* $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/
+$SUDO cp -f $(which zeronetavahi)* $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/
+$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/freedombone-mesh $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/mesh
+$SUDO cp -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/freedombone-meshweb $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/meshweb
+if [ ! -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/usr/local/bin/freedombone ]; then
     echo 'There was a problem with writing freedombone commands to the SD card'
     exit 8736
 fi
 
 # remove automatic motd creator if it exists
-if [ -f $MICROSD_MOUNT_POINT/$ROOTFS/etc/init.d/motd ]; then
-    $SUDO rm -f $MICROSD_MOUNT_POINT/$ROOTFS/etc/init.d/motd
+if [ -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/init.d/motd ]; then
+    $SUDO rm -f $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/init.d/motd
 fi
 
 # change the motd to show further install instructions
@@ -303,7 +312,7 @@ echo '    apt-get update' >> /tmp/freedombone_motd
 echo '    apt-get -y install git dialog build-essential' >> /tmp/freedombone_motd
 echo '    freedombone menuconfig' >> /tmp/freedombone_motd
 
-$SUDO cp -f /tmp/freedombone_motd $MICROSD_MOUNT_POINT/$ROOTFS/etc/motd
+$SUDO cp -f /tmp/freedombone_motd $MICROSD_MOUNT_POINT/$ROOTFS$ROOTFS_SUBDIR/etc/motd
 
 clear
 echo '*** Initial microSD card setup is complete ***'
-- 
GitLab