mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-08 11:55:24 +00:00
seoul: support headless mode
+ run kernelbuild in headless mode, output dumped via serial output
This commit is contained in:
parent
6d5a66d8e7
commit
6dd6525b48
@ -19,6 +19,7 @@ set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
set use_framebuffer 1
|
||||
set use_fancy_stuff 0
|
||||
|
||||
set memory_vmm_vm "128M"
|
||||
|
@ -17,6 +17,7 @@ set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
set use_framebuffer 1
|
||||
set use_fancy_stuff 0
|
||||
|
||||
set memory_vmm_vm "128M"
|
||||
|
@ -20,6 +20,7 @@ set use_nic_bridge 1
|
||||
|
||||
set use_usb 0
|
||||
|
||||
set use_framebuffer 1
|
||||
set use_fancy_stuff 1
|
||||
|
||||
set memory_init "288M"
|
||||
|
@ -24,6 +24,7 @@ set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
set use_framebuffer 0
|
||||
set use_fancy_stuff 0
|
||||
|
||||
set memory_vmm_vm "950M"
|
||||
|
@ -17,6 +17,7 @@ set use_nic_bridge 0
|
||||
|
||||
set use_usb 0
|
||||
|
||||
set use_framebuffer 1
|
||||
set use_fancy_stuff 0
|
||||
|
||||
set memory_vmm_vm "128M"
|
||||
|
@ -21,9 +21,10 @@ set build_components {
|
||||
vancouver
|
||||
drivers/pci
|
||||
drivers/input
|
||||
drivers/framebuffer
|
||||
}
|
||||
|
||||
if {$use_fancy_stuff} { set use_framebuffer 1 }
|
||||
|
||||
lappend_if [have_spec acpi] build_components drivers/acpi
|
||||
lappend_if [have_spec pci] build_components drivers/pci/device_pd
|
||||
lappend_if $use_usb build_components drivers/usb
|
||||
@ -31,6 +32,7 @@ lappend_if $use_block_ide build_components drivers/atapi
|
||||
lappend_if $use_block_sata build_components drivers/ahci
|
||||
lappend_if $use_nic_session build_components drivers/nic
|
||||
lappend_if $use_nic_bridge build_components server/nic_bridge
|
||||
lappend_if $use_framebuffer build_components drivers/framebuffer
|
||||
lappend_if $use_fancy_stuff build_components server/nitpicker
|
||||
lappend_if $use_fancy_stuff build_components server/liquid_framebuffer
|
||||
lappend_if $use_fancy_stuff build_components app/launchpad
|
||||
@ -207,7 +209,7 @@ append_if [expr $use_nic_session && $use_nic_bridge] config {
|
||||
</start>
|
||||
}
|
||||
|
||||
append config {
|
||||
append_if $use_framebuffer config {
|
||||
<start name="fb_drv">
|
||||
<resource name="RAM" quantum="8M"/>
|
||||
<provides><service name="Framebuffer"/></provides>
|
||||
@ -232,8 +234,9 @@ append_if [expr $use_nic_session && $use_nic_bridge] config {
|
||||
<service name="Nic"> <child name="nic_bridge"/> </service>}
|
||||
append_if [expr $use_nic_session && !$use_nic_bridge] config {
|
||||
<service name="Nic"> <child name="nic_drv"/> </service>}
|
||||
append_if $use_framebuffer config {
|
||||
<service name="Framebuffer"><child name="fb_drv"/></service>}
|
||||
append config {
|
||||
<service name="Framebuffer"><child name="fb_drv"/></service>
|
||||
<service name="Rtc"><child name="rtc_drv"/></service>
|
||||
<any-service><parent/><any-child/></any-service>
|
||||
</route>
|
||||
@ -343,7 +346,6 @@ install_config $config
|
||||
set boot_modules {
|
||||
core init
|
||||
pci_drv
|
||||
fb_drv
|
||||
timer
|
||||
rtc_drv
|
||||
vancouver
|
||||
@ -358,6 +360,7 @@ lappend_if $use_block_ide boot_modules atapi_drv
|
||||
lappend_if $use_block_sata boot_modules ahci
|
||||
lappend_if $use_nic_session boot_modules nic_drv
|
||||
lappend_if $use_nic_bridge boot_modules nic_bridge
|
||||
lappend_if $use_framebuffer boot_modules fb_drv
|
||||
lappend_if $use_fancy_stuff boot_modules nitpicker
|
||||
lappend_if $use_fancy_stuff boot_modules liquid_fb
|
||||
lappend_if $use_fancy_stuff boot_modules launchpad
|
||||
|
@ -187,25 +187,32 @@ bool Vancouver_console::receive(MessageMemRegion &msg)
|
||||
|
||||
void Vancouver_console::entry()
|
||||
{
|
||||
Logging::printf("Hello, this is VancouverConsole.\n");
|
||||
|
||||
/*
|
||||
* Init sessions to the required external services
|
||||
*/
|
||||
enum { CONFIG_ALPHA = false };
|
||||
static Framebuffer::Connection framebuffer;
|
||||
static Input::Connection input;
|
||||
static Timer::Connection timer;
|
||||
|
||||
static Input::Connection input;
|
||||
static Timer::Connection timer;
|
||||
Framebuffer::Connection *framebuffer = 0;
|
||||
|
||||
try {
|
||||
framebuffer = new (env()->heap()) Framebuffer::Connection();
|
||||
} catch (...) {
|
||||
PERR("Headless mode - no framebuffer session available");
|
||||
_startup_lock.unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
Genode::Dataspace_capability ev_ds_cap = input.dataspace();
|
||||
|
||||
Input::Event *ev_buf = static_cast<Input::Event *>
|
||||
(env()->rm_session()->attach(ev_ds_cap));
|
||||
|
||||
_fb_size = Dataspace_client(framebuffer.dataspace()).size();
|
||||
_fb_mode = framebuffer.mode();
|
||||
_fb_size = Dataspace_client(framebuffer->dataspace()).size();
|
||||
_fb_mode = framebuffer->mode();
|
||||
|
||||
_pixels = env()->rm_session()->attach(framebuffer.dataspace());
|
||||
_pixels = env()->rm_session()->attach(framebuffer->dataspace());
|
||||
|
||||
Chunky_canvas<Pixel_rgb565> canvas((Pixel_rgb565 *) _pixels,
|
||||
Area(_fb_mode.width(),
|
||||
@ -273,7 +280,7 @@ void Vancouver_console::entry()
|
||||
}
|
||||
} else {
|
||||
unchanged = 0;
|
||||
framebuffer.refresh(0, 0, _fb_mode.width(), _fb_mode.height());
|
||||
framebuffer->refresh(0, 0, _fb_mode.width(), _fb_mode.height());
|
||||
}
|
||||
|
||||
cmp_even = !cmp_even;
|
||||
@ -284,7 +291,7 @@ void Vancouver_console::entry()
|
||||
Genode::Lock::Guard guard(_console_lock);
|
||||
|
||||
env()->rm_session()->detach((void *)_guest_fb);
|
||||
env()->rm_session()->attach_at(framebuffer.dataspace(),
|
||||
env()->rm_session()->attach_at(framebuffer->dataspace(),
|
||||
(Genode::addr_t)_guest_fb);
|
||||
|
||||
/* if the VGA model expects a larger FB, pad to that size. */
|
||||
@ -298,7 +305,7 @@ void Vancouver_console::entry()
|
||||
|
||||
revoked = true;
|
||||
}
|
||||
framebuffer.refresh(0, 0, _fb_mode.width(), _fb_mode.height());
|
||||
framebuffer->refresh(0, 0, _fb_mode.width(), _fb_mode.height());
|
||||
}
|
||||
|
||||
timer.msleep(10);
|
||||
|
Loading…
x
Reference in New Issue
Block a user