126 lines
3.3 KiB
Plaintext
126 lines
3.3 KiB
Plaintext
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/bash \
|
|
genodelabs/src/ncurses \
|
|
genodelabs/src/coreutils \
|
|
genodelabs/src/ram_fs
|
|
|
|
#
|
|
# Build Noux packages only once
|
|
#
|
|
set noux_pkgs {make}
|
|
set build_components { }
|
|
foreach pkg $noux_pkgs {
|
|
lappend_if [expr ![file exists bin/$pkg]] build_components noux-pkg/$pkg }
|
|
|
|
build $build_components
|
|
|
|
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"/>
|
|
</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="ram_fs">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
|
|
<!-- preload RAM file system with some ROM images -->
|
|
<content>
|
|
<dir name="home">
|
|
<dir name="user">
|
|
<inline name=".bash_profile">
|
|
/home/test_script1 correct
|
|
/home/test_script2 "execution of test_script2 succeeded"
|
|
</inline>
|
|
<inline name="test_script1">#!/bin/make -f
|
|
wrong:
|
|
@echo "execution of test_script1 failed"
|
|
correct:
|
|
@echo "execution of test_script1 succeeded"
|
|
</inline>
|
|
<inline name="test_script2">#!/bin/bash
|
|
echo "$1"
|
|
</inline>
|
|
</dir>
|
|
</dir>
|
|
</content>
|
|
|
|
<!-- constrain sessions according to their labels -->
|
|
<policy label="noux -> root" root="/" />
|
|
<policy label="noux -> home" root="/home/user" writeable="yes" />
|
|
</config>
|
|
</start>
|
|
|
|
<start name="noux" caps="500">
|
|
<resource name="RAM" quantum="1G" />
|
|
<config>
|
|
<fstab>
|
|
<tar name="coreutils.tar" />
|
|
<tar name="bash.tar" />
|
|
<tar name="make.tar" />
|
|
<dir name="bin"> <symlink name="sh" target="bash"/> </dir>
|
|
<dir name="home"> <fs label="home" /> </dir>
|
|
<dir name="ram"> <fs label="root" /> </dir>
|
|
</fstab>
|
|
<start name="/bin/bash">
|
|
<env name="TERM" value="screen" />
|
|
<env name="HOME" value="/home" />
|
|
<arg value="--login" />
|
|
</start>
|
|
</config>
|
|
</start>
|
|
</config> }
|
|
|
|
build_boot_image { make.tar }
|
|
|
|
run_genode_until forever
|