From e8681e9929048cf87c6235daf5b15e218136b7b2 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Wed, 15 May 2013 15:45:33 +0000 Subject: [PATCH] virtio_blk: always start if found Change-Id: Iec70c67e1b675297b5ffb800a9fb263feffa9271 --- drivers/ramdisk/Makefile | 2 +- drivers/ramdisk/proto | 4 ++++ drivers/ramdisk/proto.common.etc | 1 + drivers/ramdisk/rc | 16 +++++++++++++++- 4 files changed, 21 insertions(+), 2 deletions(-) mode change 100755 => 100644 drivers/ramdisk/rc diff --git a/drivers/ramdisk/Makefile b/drivers/ramdisk/Makefile index d34b27eb3..280c77043 100644 --- a/drivers/ramdisk/Makefile +++ b/drivers/ramdisk/Makefile @@ -29,7 +29,7 @@ ETC= system.conf master.passwd EXTRA= rc PROTO_FILES= proto.common.etc proto.common.dynamic proto.dev PROG_DRIVERS= -PROG_COMMANDS= mount fsck.mfs sh service loadramdisk sysenv +PROG_COMMANDS= mount umount grep fsck.mfs sh service loadramdisk sysenv PROG_SERVERS= mfs procfs PROG_BIN= PROG_SBIN= diff --git a/drivers/ramdisk/proto b/drivers/ramdisk/proto index 99659d46f..f8f650452 100644 --- a/drivers/ramdisk/proto +++ b/drivers/ramdisk/proto @@ -10,6 +10,8 @@ d--755 0 0 fsck.mfs ---755 0 0 fsck.mfs #endif mount ---755 0 0 mount + umount ---755 0 0 umount + grep ---755 0 0 grep sh ---755 0 0 sh service ---755 0 0 service $ @@ -42,6 +44,8 @@ d--755 0 0 #endif $ $ + proc d--755 0 0 + $ dev d--755 0 0 #include "proto.dev" $ diff --git a/drivers/ramdisk/proto.common.etc b/drivers/ramdisk/proto.common.etc index 03b287005..bd6de5250 100644 --- a/drivers/ramdisk/proto.common.etc +++ b/drivers/ramdisk/proto.common.etc @@ -1,4 +1,5 @@ etc d--755 0 0 + mtab s--555 2 1 /proc/mounts system.conf ---644 0 0 system.conf passwd ---644 0 0 passwd pwd.db ---644 0 0 pwd.db diff --git a/drivers/ramdisk/rc b/drivers/ramdisk/rc old mode 100755 new mode 100644 index b49c1dd8a..cf20b9929 --- a/drivers/ramdisk/rc +++ b/drivers/ramdisk/rc @@ -14,18 +14,32 @@ then if [ -e $ACPI -a -n "`sysenv acpi`" ] /bin/service -c up $ACPI fi /bin/service -c up /usr/sbin/pci + + # Start procfs so we can access /proc/pci + mount -t procfs none /proc >/dev/null + + # Do we want to use the virtio block device? + # If not specified, default to yes if the device is found. + if /bin/sysenv virtio_blk >/dev/null + then virtio_blk="`/bin/sysenv virtio_blk`" + elif grep '^[^ ]* [^ ]* 1AF4:1001 ' /proc/pci >/dev/null + then echo "virtio_blk not set, defaulting to using found virtio device." + virtio_blk=yes + fi + /bin/service -cn up /sbin/floppy -dev /dev/fd0 if [ X`/bin/sysenv ahci` = Xyes ] then # this is here temporarily, for testing purposes /bin/service -c up /sbin/ahci -dev /dev/c0d0 -label ahci_0 -args instance=0 - elif [ X`/bin/sysenv virtio_blk` = Xyes ] + elif [ X"$virtio_blk" = Xyes ] then /bin/service -c up /sbin/virtio_blk -dev /dev/c0d0 -label virtio_blk_0 -args instance=0 else /bin/service -c up /sbin/at_wini -dev /dev/c0d0 -label at_wini_0 /bin/service -cr up /sbin/at_wini -dev /dev/c1d0 -label at_wini_1 -args instance=1 fi + /bin/umount /proc >/dev/null fi if [ X`/bin/sysenv arch` = Xearm ]