mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-25 00:11:07 +00:00
1d6d6966a1
By now, rump would query its available RAM quota to determine the memory limit minus some RAM reserved for Genode meta-data. This does not work when the VFS rump plugin is used as the available quota belongs to the VFS server. In this case the memlimit should be set by specifing the RAM in the plugin's config, e.g.: ! <vfs> ! <rump fs="ext2fs" ram="64M" writeabl="yes"/> ! </vfs> Fixes #2783.
97 lines
1.9 KiB
Plaintext
97 lines
1.9 KiB
Plaintext
if {[have_spec arm]} {
|
|
assert_spec arm_v7
|
|
}
|
|
|
|
#
|
|
# Check used commands
|
|
#
|
|
set mke2fs [check_installed mke2fs]
|
|
set dd [check_installed dd]
|
|
|
|
#
|
|
# Build
|
|
#
|
|
set build_components {
|
|
core init
|
|
drivers/timer
|
|
server/ram_blk
|
|
server/rump_fs
|
|
test/libc_vfs
|
|
}
|
|
|
|
build $build_components
|
|
|
|
#
|
|
# Build EXT2-file-system image
|
|
#
|
|
catch { exec $dd if=/dev/zero of=bin/ext2.raw bs=1M count=16 }
|
|
catch { exec $mke2fs -F bin/ext2.raw }
|
|
|
|
create_boot_directory
|
|
|
|
#
|
|
# Generate config
|
|
#
|
|
append config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<default caps="100"/>
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>
|
|
<start name="ram_blk">
|
|
<resource name="RAM" quantum="20M"/>
|
|
<provides><service name="Block"/></provides>
|
|
<config file="ext2.raw" block_size="512"/>
|
|
</start>
|
|
<start name="rump_fs" caps="200">
|
|
<resource name="RAM" quantum="16M" />
|
|
<provides><service name="File_system"/></provides>
|
|
<config fs="ext2fs"><policy label_prefix="test-libc_vfs" root="/" writeable="yes"/></config>
|
|
</start>
|
|
<start name="test-libc_vfs">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<config>
|
|
<vfs>
|
|
<dir name="dev"> <log/> </dir>
|
|
<fs/>
|
|
</vfs>
|
|
<libc stdout="/dev/log"/>
|
|
</config>
|
|
</start>
|
|
</config>}
|
|
|
|
install_config $config
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
|
|
# generic modules
|
|
set boot_modules {
|
|
core ld.lib.so init timer test-libc_vfs ram_blk
|
|
rump.lib.so rump_fs.lib.so rump_fs
|
|
ext2.raw libc.lib.so
|
|
}
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -nographic"
|
|
|
|
run_genode_until {.*child "test-libc_vfs" exited with exit value 0.*} 60
|
|
|
|
exec rm -f bin/ext2.raw
|