From: Ben Gras Date: Wed, 15 May 2013 15:45:33 +0000 (+0000) Subject: virtio_blk: always start if found X-Git-Tag: v3.3.0~989 X-Git-Url: http://zhaoyanbai.com/repos/Bv9ARM.ch03.html?a=commitdiff_plain;h=a476662532b3586e3c708f29b5e736b20d898d7e;p=minix.git virtio_blk: always start if found Change-Id: Iec70c67e1b675297b5ffb800a9fb263feffa9271 --- 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/rc b/drivers/ramdisk/rc index b49c1dd8a..cb7545699 100755 --- a/drivers/ramdisk/rc +++ b/drivers/ramdisk/rc @@ -9,23 +9,35 @@ FSCK=/bin/fsck.mfs ACPI=/usr/sbin/acpi if [ X`/bin/sysenv arch` = Xi386 ] -then if [ -e $ACPI -a -n "`sysenv acpi`" ] +then + /bin/service -c up /usr/sbin/pci + /bin/service up /sbin/procfs || echo "WARNING: couldn't start procfs" + /bin/mount -e -n -t procfs none /proc || echo "WARNING: couldn't mount procfs" + + # Do we want to use the virtio block device? + if grep '^[^ ]* [^ ]* 1AF4:1001 ' /proc/pci >/dev/null + then virtio_blk=yes + else virtio_blk="`/bin/sysenv virtio_blk`" + fi + + if [ -e $ACPI -a -n "`sysenv acpi`" ] then /bin/service -c up $ACPI fi - /bin/service -c up /usr/sbin/pci /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 + /bin/service down procfs fi if [ X`/bin/sysenv arch` = Xearm ]