]> code.ossystems Code Review - openembedded-core.git/commitdiff
initrdscripts: handle mmc device as installer medium
authorAwais Belal <awais_belal@mentor.com>
Tue, 7 Jul 2015 07:43:37 +0000 (12:43 +0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 16 Jul 2015 14:08:42 +0000 (15:08 +0100)
Platforms which have the capability of using the MMC as an
installer medium will present the same MMC device as an
installation candidate. This happens because the MMC
devices appear as mmcblk<X> and the current script strips
up the <X> which is needed to identify an MMC device
uniqely.
This patch now updates the way device identifier stripping
is done and handles the exclusion of installer device from
installation candidates more generically.

Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-core/initrdscripts/files/init-install-efi.sh
meta/recipes-core/initrdscripts/files/init-install.sh

index 14939acd696a86ac8dce6e311a1f2f1a8a0efe69..f339b30ebeaa289e88efe92e056de63b38233fde 100644 (file)
@@ -18,7 +18,14 @@ swap_ratio=5
 hdnamelist=""
 live_dev_name=`cat /proc/mounts | grep ${1%/} | awk '{print $1}'`
 live_dev_name=${live_dev_name#\/dev/}
-live_dev_name=${live_dev_name%%[0-9]*}
+# Only strip the digit identifier if the device is not an mmc
+case $live_dev_name in
+    mmcblk*)
+    ;;
+    *)
+        live_dev_name=${live_dev_name%%[0-9]*}
+    ;;
+esac
 
 echo "Searching for hard drives ..."
 
@@ -36,9 +43,14 @@ for device in `ls /sys/block/`; do
         *)
             # skip the device LiveOS is on
             # Add valid hard drive name to the list
-            if [ $device != $live_dev_name -a -e /dev/$device ]; then
-                hdnamelist="$hdnamelist $device"
-            fi
+            case $device in
+                $live_dev_name*)
+                # skip the device we are running from
+                ;;
+                *)
+                    hdnamelist="$hdnamelist $device"
+                ;;
+            esac
             ;;
     esac
 done
index 7fccddea039f7610be118822d037d482b7945d30..f9e9768e4354599cabbf5dd8cf336e731975e4c1 100644 (file)
@@ -17,7 +17,14 @@ swap_ratio=5
 hdnamelist=""
 live_dev_name=`cat /proc/mounts | grep ${1%/} | awk '{print $1}'`
 live_dev_name=${live_dev_name#\/dev/}
-live_dev_name=${live_dev_name%%[0-9]*}
+# Only strip the digit identifier if the device is not an mmc
+case $live_dev_name in
+    mmcblk*)
+    ;;
+    *)
+        live_dev_name=${live_dev_name%%[0-9]*}
+    ;;
+esac
 
 echo "Searching for hard drives ..."
 
@@ -35,9 +42,14 @@ for device in `ls /sys/block/`; do
         *)
             # skip the device LiveOS is on
             # Add valid hard drive name to the list
-            if [ $device != $live_dev_name -a -e /dev/$device ]; then
-                hdnamelist="$hdnamelist $device"
-            fi
+            case $device in
+                $live_dev_name*)
+                # skip the device we are running from
+                ;;
+                *)
+                    hdnamelist="$hdnamelist $device"
+                ;;
+            esac
             ;;
     esac
 done