ramdisk: Add procfs to ramdisk

-Prevents kernel/procfs mismatches
-Also, strip ELF binaries in ramdisk
This commit is contained in:
Arun Thomas 2011-02-23 13:05:28 +00:00
parent 2bc8ac55ce
commit bac0222eec
4 changed files with 49 additions and 24 deletions

View file

@ -1,18 +1,27 @@
# Makefile for ramdisk image
.include <bsd.own.mk>
PROGRAMS=ahci at_wini bios_wini cdprobe dev2name floppy loadramdisk mount \
newroot pci sh service sysenv mfs ext2
pci procfs sh service sysenv mfs ext2
SCRIPTS=newroot
# acpi is not compiled with ack
.if ${COMPILER_TYPE} == "gnu"
PROGRAMS += acpi
.endif
.if ${OBJECT_FMT} == "ELF"
ELFSTRIP=/usr/gnu_cross/bin/i386-pc-minix3-strip
.else
STRIPFLAG+= -s
.endif
EXTRA=system.conf passwd rs.single
CPPFLAGS+= -I${MINIXSRCDIR}/servers -I${MINIXSRCDIR}
MAKEDEV=/usr/bin/MAKEDEV
CLEANFILES += $(PROGRAMS) $(EXTRA) bintoc image image.c t proto.gen
CLEANFILES += $(PROGRAMS) $(SCRIPTS) $(EXTRA) bintoc image image.c t proto.gen
install: all
@ -30,111 +39,126 @@ image: proto.gen mtab rc $(EXTRA)
mkfs.mfs image proto.gen || { rm -f image; false; }
ahci: ../ahci/ahci
install -s ../$@/$@ $@
install ${STRIPFLAG} ../$@/$@ $@
../ahci/ahci:
$(MAKE) -C ../ahci
at_wini: ../at_wini/at_wini
install -s ../$@/$@ $@
install ${STRIPFLAG} ../$@/$@ $@
../at_wini/at_wini:
$(MAKE) -C ../at_wini
bios_wini: ../bios_wini/bios_wini
install -s ../$@/$@ $@
install ${STRIPFLAG} ../$@/$@ $@
../bios_wini/bios_wini:
$(MAKE) -C ../bios_wini
floppy: ../floppy/floppy
install -s ../$@/$@ $@
install ${STRIPFLAG} ../$@/$@ $@
../floppy/floppy:
$(MAKE) -C ../floppy
acpi: ../acpi/acpi
install -s ../$@/$@ $@
install ${STRIPFLAG} ../$@/$@ $@
../acpi/acpi:
$(MAKE) -C ../acpi
pci: ../pci/pci
install -s ../$@/$@ $@
install ${STRIPFLAG} ../$@/$@ $@
../pci/pci:
$(MAKE) -C ../pci
cdprobe: ../../commands/cdprobe/cdprobe
install -s ../../commands/$@/$@ $@
install ${STRIPFLAG} ../../commands/$@/$@ $@
../../commands/cdprobe:
$(MAKE) -C ../../commands/cdprobe
dev2name: ../../commands/dev2name/dev2name
install -s ../../commands/$@/$@ $@
install ${STRIPFLAG} ../../commands/$@/$@ $@
../../commands/dev2name/dev2name:
$(MAKE) -C ../../commands/dev2name
loadramdisk: ../../commands/loadramdisk/loadramdisk
install -s ../../commands/$@/$@ $@
install ${STRIPFLAG} ../../commands/$@/$@ $@
../../commands/loadramdisk/loadramdisk:
$(MAKE) -C ../../commands/loadramdisk
mount: ../../commands/mount/mount
install -s ../../commands/$@/$@ $@
install ${STRIPFLAG} ../../commands/$@/$@ $@
../../commands/mount/mount:
$(MAKE) -C ../../commands/mount
newroot: ../../commands/newroot/newroot.sh
install -s ../../commands/$@/$@.sh $@
install ${STRIPFLAG} ../../commands/$@/$@.sh $@
../../commands/newroot/newroot:
$(MAKE) -C ../../commands/newroot
sysenv: ../../commands/sysenv/sysenv
install -s ../../commands/$@/$@ $@
install ${STRIPFLAG} ../../commands/$@/$@ $@
../../commands/sysenv:
$(MAKE) -C ../../commands/sysenv
sh: ../../commands/ash/sh
install -s ../../commands/ash/$@ $@
install ${STRIPFLAG} ../../commands/ash/$@ $@
../../commands/ash/sh:
$(MAKE) -C ../../commands/ash sh
service: ../../commands/service/service
install -s ../../commands/service/$@ $@
install ${STRIPFLAG} ../../commands/service/$@ $@
../../commands/service:
$(MAKE) -C ../../commands/service
mfs: ../../servers/mfs/mfs
install -s ../../servers/mfs/$@ $@
install ${STRIPFLAG} ../../servers/mfs/$@ $@
../../servers/mfs/mfs:
$(MAKE) -C ../../servers/mfs
procfs: ../../servers/procfs/procfs
install ${STRIPFLAG} ../../servers/procfs/$@ $@
../../servers/procfs/procfs:
$(MAKE) -C ../../servers/procfs
ext2: ../../servers/ext2/ext2
install -s ../../servers/ext2/$@ $@
install ${STRIPFLAG} ../../servers/ext2/$@ $@
../../servers/ext2/ext2:
$(MAKE) -C ../../servers/ext2
system.conf: ../../etc/system.conf
install -s ../../etc/$@ $@
install ${STRIPFLAG} ../../etc/$@ $@
passwd: ../../etc/passwd
install -s ../../etc/$@ $@
install ${STRIPFLAG} ../../etc/$@ $@
rs.single: ../../etc/rs.single
install -s ../../etc/$@ $@
install ${STRIPFLAG} ../../etc/$@ $@
proto.gen: $(PROGRAMS) $(MAKEDEV) proto.sh proto
proto.gen: $(PROGRAMS) $(SCRIPTS) $(MAKEDEV) proto.sh proto
sh -e proto.sh >proto.gen
.if ${OBJECT_FMT} == "ELF"
proto.gen: elfstrip
.PHONY: elfstrip
elfstrip: $(PROGRAMS)
${ELFSTRIP} $(PROGRAMS)
.endif
.include <bsd.prog.mk>

View file

@ -20,6 +20,7 @@ d--755 0 0
floppy ---755 0 0 floppy
pci ---755 0 0 pci
mfs ---755 0 0 mfs
procfs ---755 0 0 procfs
$
dev d--755 0 0
@DEV@

View file

@ -24,6 +24,7 @@ else
/bin/service -cr up /sbin/at_wini -dev /dev/c1d0 -label at_wini_1 -args instance=1
fi
/bin/service -c edit /sbin/mfs -label fs_imgrd
/bin/service up /sbin/procfs || echo "WARNING: couldn't start procfs"
rootdev=`sysenv rootdev` || echo 'No rootdev?'
rootdevname=`/bin/dev2name "$rootdev"` ||
@ -55,4 +56,5 @@ then
fi
echo "Root device name is $rootdevname"
/bin/newroot $bin_img"$rootdevname"
/bin/mount -e -t procfs none /proc || echo "WARNING: couldn't mount procfs"
exec /bin/sh /etc/rc "$@"

2
etc/rc
View file

@ -192,8 +192,6 @@ Mount $usr /usr failed -- Single user."
then mount $bin_img $home /home || echo "WARNING: couldn't mount $home on /home"
fi
mount -t procfs none /proc || echo "WARNING: couldn't mount procfs"
# This file is necessary for above 'shutdown -C' check.
# (Silence stderr in case of running from cd.)
touch /usr/adm/wtmp 2>/dev/null