initrdscripts: handle mmc device as installer medium

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.

(From OE-Core rev: 80ec9f62791575de4948d7635dc6674abfac2193)

Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Awais Belal 2015-07-07 12:43:37 +05:00 committed by Richard Purdie
parent ca869fdb5c
commit 525ba4ce29
2 changed files with 32 additions and 8 deletions

View 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

View 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