# # The Linux version of Noux lacks the support for the fork system call. Hence, # the run script is expected to fail. # if {[have_spec linux]} { puts "Linux is unsupported." exit 0 } create_boot_directory import_from_depot genodelabs/src/[base_src] \ genodelabs/pkg/[drivers_interactive_pkg] \ genodelabs/pkg/terminal \ genodelabs/src/init \ genodelabs/src/libc \ genodelabs/src/noux \ genodelabs/src/posix \ genodelabs/src/ncurses \ genodelabs/src/vim \ genodelabs/src/bash \ genodelabs/src/grep \ genodelabs/src/coreutils \ genodelabs/src/ram_fs # write default vimrc file set vimrc_fd [open "bin/vimrc" w] puts $vimrc_fd { set noloadplugins set hls set nocompatible set laststatus=2 set noswapfile set viminfo=} close $vimrc_fd install_config { <config verbose="yes"> <parent-provides> <service name="ROM"/> <service name="LOG"/> <service name="RM"/> <service name="CPU"/> <service name="PD"/> <service name="IRQ"/> <service name="IO_PORT"/> <service name="IO_MEM"/> <service name="TRACE"/> </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="drivers" caps="1000"> <resource name="RAM" quantum="32M" constrain_phys="yes"/> <binary name="init"/> <route> <service name="ROM" label="config"> <parent label="drivers.config"/> </service> <service name="Timer"> <child name="timer"/> </service> <any-service> <parent/> </any-service> </route> <provides> <service name="Input"/> <service name="Framebuffer"/> </provides> </start> <start name="terminal"> <resource name="RAM" quantum="2M"/> <provides><service name="Terminal"/></provides> <route> <service name="ROM" label="config"> <parent label="terminal.config"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start> <start name="trace_fs" caps="200"> <resource name="RAM" quantum="128M"/> <provides><service name="File_system"/></provides> <config> <policy label="noux -> trace" root="/" interval="1000" subject_limit="512" trace_quota="64M" parent_levels="0" /> </config> </start> <start name="ram_fs"> <resource name="RAM" quantum="32M"/> <provides><service name="File_system"/></provides> <config> <content> <dir name="home"> <inline name=".bash_profile"> </inline> </dir> <dir name="tmp"> <dir name="policies"> <rom name="rpc_name" /> </dir> </dir> </content> <!-- constrain sessions according to their labels --> <policy label="noux -> root" root="/" /> <policy label="noux -> home" root="/home" writeable="yes" /> <policy label="noux -> tmp" root="/tmp" writeable="yes" /> </config> </start> <start name="noux" caps="2000"> <resource name="RAM" quantum="256M" /> <config> <fstab> <tar name="coreutils.tar" /> <tar name="vim.tar" /> <tar name="bash.tar" /> <tar name="grep.tar" /> <dir name="home"> <fs label="home" /> </dir> <dir name="ram"> <fs label="root" /> </dir> <dir name="tmp"> <fs label="tmp" /> </dir> <dir name="trace"> <fs label="trace" /> </dir> <dir name="dev"> <null /> <zero /> </dir> <dir name="share"> <dir name="vim"> <rom name="vimrc"/> </dir> </dir> </fstab> <start name="/bin/bash"> <env name="TERM" value="screen" /> <env name="HOME" value="/home" /> <!-- <arg value="-login" /> --> </start> </config> <route> <service name="File_system" label="home"> <child name="ram_fs" /> </service> <service name="File_system" label="root"> <child name="ram_fs" /> </service> <service name="File_system" label="tmp"> <child name="ram_fs" /> </service> <service name="File_system" label="trace"> <child name="trace_fs"/> </service> <any-service> <parent /> <any-child /> </any-service> </route> </start> </config>} build { server/trace_fs lib/trace/policy/rpc_name } build_boot_image { vimrc trace_fs rpc_name } run_genode_until forever # vi: set ft=tcl :