add_linuxrc <<-'EOF'
if [ "${ROOT##/dev/}" != "${ROOT}" ]; then
rootnr="$(busybox awk -v rootnode="${ROOT##/dev/}" '$4 == rootnode { print 256 * $1 + $2 }' /proc/partitions)"
- # fallback to ls
- if [ -z "$rootnr" -a -e "$ROOT" ]; then
+ # fallback to ls, try two different formats
+ # http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-May/023915.html
+ if [ "${rootnr:-0}" = 0 -a -e "$ROOT" ]; then
+ # busybox up to 1.22
rootnr="$(busybox ls -lL ${ROOT} | busybox awk '{if (/^b/) { print 256 * $3 + $4; }}')"
fi
- if [ "$rootnr" -gt 0 ]; then
+ if [ "${rootnr:-0}" = 0 -a -e "$ROOT" ]; then
+ # busybox 1.22 and upwards
+ rootnr="$(busybox ls -lL ${ROOT} | busybox awk '{if (/^b/) { print 256 * $5 + $6; }}')"
+ fi
+ if [ "${rootnr:-0}" -gt 0 ]; then
echo "$rootnr" > /proc/sys/kernel/real-root-dev
fi
fi