Commit Graph

21 Commits

Author SHA1 Message Date
pooka b6c13d8580 * at least try to query size of non-regular size=host files too,
give up if we get 0
* fix a few error messages
2011-02-22 15:51:59 +00:00
pooka 29d11b7713 add command line options for kernel memory allocation limit and bootverbose 2011-02-21 18:50:21 +00:00
pooka 090a5e7d74 Use "host" instead of the slightly more cryptic "e" to indicate
that the size of the mapping should be taken from the host file
size.
2011-02-18 09:54:03 +00:00
pooka f6adb4bdd8 Use "size=e" as a way say "if the underlying file is preexisting
regular file, use whatever size it has".
2011-02-17 16:59:46 +00:00
pooka aaf2cb63d0 Make it possible to specify the type of file (blk/chr/reg) that a
mapped file (-d) is exposed as within the rump kernel.
2011-02-17 16:03:05 +00:00
pooka 74135a6c04 Allow to specify -d hostpath offset,size with disklabel. 2011-02-04 20:06:23 +00:00
pooka a9061c30c5 Create backing image with mode 0644 instead of 0755 & document this. 2011-02-03 11:25:27 +00:00
pooka ed37916e33 * make it possible to specify an offset in -d
* truncate -d hostpath only if it's a regular file and smaller
  than offset+size
2011-02-03 11:21:16 +00:00
wiz 23e235307b Fix usage (8th bit begone!) 2011-01-03 12:18:25 +00:00
pooka 6fd00c3f62 Add -c to control the number of CPUs configured in the kernel. 2011-01-03 10:44:40 +00:00
pooka bd7256bb7c Guard against supplying the same parameter multiple times in one -d argument. 2010-12-15 19:07:43 +00:00
wiz 77b9f93f9e Sort options in usage same as in man page.
While here, replace \xa0 with ' '. Where do you get these from?
2010-12-15 09:40:21 +00:00
pooka dbc10b5a41 Add -d which can be used to register host-backed block devices in
the rump kernel.

It would be cool if this, and the other options, could be specified
in a config file (plist or other).
2010-12-14 16:40:05 +00:00
pooka dde3f793dc Also support ld syntax in -l.
was: -l librumpvfs.so
now: -lrumpvfs
2010-12-13 14:26:22 +00:00
pooka d3ab3ede2e Add -m which can be used to load modules (which is a completely
different code path than using dlopen() before rump_init(), since
the former uses the in-kernel linker and the latter links the object
in rtld).

So:
golem> ./rump_server -l librumpvfs.so -m /sys/modules/tmpfs/tmpfs.kmod unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
suser            secmodel   builtin    0     -        -
tmpfs            vfs        filesys    0     16713    -
wapbl            vfs        builtin    0     -        -

Source is filesys instead of builtin, as expected.

Notably, for -m you *must* use -l librumpvfs.so.  This is because
you need VFS in your kernel to be able to load modules from the
file system.  In a regular kernel "librumpvfs.so" is linked at
kernel build time and loaded by the bootloader.  Here we use dlopen()
for both effects (the other choices would have been to link
rump_server with -lrumpvfs, but that would limit the flexibility,
or link tmpfs.kmod directly into the binary, but that would limit
the flexibility even more).
2010-12-13 14:13:21 +00:00
pooka ac0678fe1e Handle -l which dlopens libs. This is more applicable to rump_server
than rump_allserver.

So if I do:

golem> rump_server unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
suser            secmodel   builtin    0     -        -

and:

golem> rump_server -l librumpvfs.so unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
suser            secmodel   builtin    0     -        -
wapbl            vfs        builtin    0     -        -

golem> rump_server -l librumpvfs.so -l librumpfs_ffs.so unix:///tmp/commsuck
==>
golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
ffs              vfs        builtin    0     -        -
suser            secmodel   builtin    0     -        -
wapbl            vfs        builtin    0     -        -

Well, you get the picture...
2010-12-13 13:32:25 +00:00
pooka 4e63731664 lint hint to previous 2010-12-12 18:33:44 +00:00
pooka ae8a3e28c6 Reboot when killed (does cleanup). 2010-12-12 18:32:47 +00:00
pooka 6b9a77d4e0 use appropriate macro 2010-12-12 12:49:37 +00:00
pooka 126e32a17e Detach by default or -s to stay-on-top. 2010-12-11 10:44:55 +00:00
pooka 6eb225bba1 Add a rump server which comes with all the drivers currently
available.  In terms of modules it maps to:

golem> rump.modstat
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
bpf              driver     builtin    0     -        -
cd9660           vfs        builtin    0     -        -
cgd              driver     builtin    0     -        -
dm               driver     builtin    0     -        -
efs              vfs        builtin    0     -        -
ext2fs           vfs        builtin    0     -        ffs
fdesc            vfs        builtin    0     -        -
ffs              vfs        builtin    3     -        -
fss              driver     builtin    0     -        -
hfs              vfs        builtin    0     -        -
kernfs           vfs        builtin    0     -        -
ksem             misc       builtin    0     -        -
layerfs          misc       builtin    2     -        -
lfs              vfs        builtin    0     -        ffs
mfs              vfs        builtin    0     -        ffs
msdos            vfs        builtin    0     -        -
nfs              vfs        builtin    1     -        -
nfsserver        misc       builtin    0     -        nfs
nilfs            vfs        builtin    0     -        -
ntfs             vfs        builtin    0     -        -
null             vfs        builtin    0     -        layerfs
pad              driver     builtin    0     -        -
ptyfs            vfs        builtin    0     -        -
puffs            vfs        builtin    0     -        putter
putter           driver     builtin    1     -        -
scsiverbose      misc       builtin    0     -        -
smbfs            vfs        builtin    0     -        -
suser            secmodel   builtin    0     -        -
swsensor         driver     builtin    0     -        -
sysvbfs          vfs        builtin    0     -        -
tmpfs            vfs        builtin    0     -        -
udf              vfs        builtin    0     -        -
umap             vfs        builtin    0     -        layerfs
union            vfs        builtin    0     -        -
usbverbose       misc       builtin    0     -        -
wapbl            vfs        builtin    0     -        -


In terms of interfaces:
golem> rump.ifconfig -C
shmif virt lo carp


and dmesg:
NetBSD 5.99.41 (RUMP-ROAST) #0: Tue Nov 30 15:35:05 CET 2010
        pooka@pain-rustique.localhost:/usr/allsrc/src/sys/rump/librump/rumpkern
total memory = unlimited (host limit)
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "rumpclk" frequency 100 Hz quality 0
cpu0 at thinair0: rump virtual cpu
cpu1 at thinair0: rump virtual cpu
root file system type: rumpfs
mainbus0 (root)
ugenhc0 at mainbus0
usb0 at ugenhc0: USB revision 2.0
uhub0 at usb0: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub0: 1 port with 1 removable, self powered
ugenhc1 at mainbus0
usb1 at ugenhc1: USB revision 2.0
uhub1 at usb1: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub1: 1 port with 1 removable, self powered
ugenhc2 at mainbus0
usb2 at ugenhc2: USB revision 2.0
uhub2 at usb2: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub2: 1 port with 1 removable, self powered
ugenhc3 at mainbus0
usb3 at ugenhc3: USB revision 2.0
uhub3 at usb3: vendor 0x7275 product 0x6d70, class 9/0, rev 0.00/0.00, addr 1
uhub3: 1 port with 1 removable, self powered
scsitest0 at mainbus0
scsibus0 at scsitest0: 2 targets, 1 lun per target
cd0 at scsibus0 target 1 lun 0: <RUMPHOBO, It's a LIE, 0.00> cdrom removable
Chicony Electronics Chicony Electronics, class 0/0, rev 2.00/1.00, addr 2, uhub0 port 1 not configured
AuthenTec AuthenTec, class 255/255, rev 1.10/6.21, addr 2, uhub1 port 1 not configured
swwdog0: software watchdog initialized
Kernelized RAIDframe activated
pad0: outputs: 44100Hz, 16-bit, stereo
audio0 at pad0: half duplex, playback, capture


There a bunch of other stuff which doesn't show up as any of the
above, plus of course the usb drivers which are probed only if I
have the appropriate hardware plugged into my workstation.
2010-12-05 17:37:32 +00:00