On Mon, 07 Mar 2011 14:48:13 +0100, Norman Feske wrote:
Hello Valery,
Yes, it even worked. I copied the os\config\demo file to build\bin\config, beside the other executables symlinks. I loaded matrox framebuffer driver, and then /dev/fb0 appeared. So, I started core and Genode started with a Launchpad!
Please use 'os/config/linux_demo' instead of 'os/config/demo'. You want to use the SDL-based framebuffer driver, don't you? ;-)
Oh, sorry, I messed a bit -- I used linux_demo the previous time, then I forgot about it and took 'demo' next time :(
BTW, you may also try doing a 'make run/demo' in your Genode build directory. The build system should compile and configure everything to run the default demo (you'll need to install 'expect' though, see: 'http://genode.org/documentation/release-notes/11.02#section-30').
But strange. I managed to hurt my Debian Lenny by OS/2 chkdsk (Linux is installed on JFS filesystem, and I forgot to say OS/2 to not touch the Linux partition. So, today after some crash, JFS chkdsk is started, and it moved /dev, /bin, /sbin and /usr/bin dirs to lost+found.). Then I reinstalled Linux, and after that Genode won't start anymore. Strange, When I start Core, it spawns Init, then I see two lines in the screen log:
[init -> launchpad] Could not open file "config" [init -> launchpad] Could not obtain config file
-- so, it starts init, and init knows that it must start launchpad (from 'config' file, I think), but nevertheless, it says that 'config' could not be found! Strange, it did found 'config' before I reinstalled Linux, but now won't. I thought that maybe, it is something wrong with permissions, but I made
The message is actually fine. It shows that init has started 'launchpad' as instructed by init's config. So the config file is there. Now launchpad simply complains that there is no sub config for launchpad (indeed, there isn't). So it will fall back to a builtin default configuration. That is the normal behaviour. If you want to configure launchpad, you'll need to add a '<config>' subnode in launchpad's '<start>' node. You may have a look at 'os/config/nested_config' to see how to pass configurations to subsystems, and the 'demo/src/app/launchpad/README' for the configuration options for launchpad.
So, it is a normal behaviour, well. Then I mentioned wrong log lines -- there were some other errors. The full log looked like this:
[===================cut here========================] dtp:/media/os2l/var/src/genode/genode-11.02/bulid/bin# ./core int main(): --- create local services --- int main(): --- start init --- int main(): transferred 79 MB to init int main(): --- init created, waiting for exit condition --- [init] unsupported program segment type 0x4 No protocol specified No protocol specified [init -> launchpad] Could not open file "config" [init -> launchpad] Could not obtain config file [init -> fb_sdl] creating virtual framebuffer for mode 1024x768@16 [init -> fb_sdl] int main(int, char**): fb_ds_cap has port 34566 [init -> nitpicker] framebuffer is 1024x768@1 [init -> nitpicker] create session with args: fb_mode=1, label="launchpad", ram_quota=1646592 [init -> nitpicker] Could not open file "config" [init -> nitpicker] Could not obtain config file [init -> nitpicker] create session with args: fb_width=1024, fb_height=1504, fb_mode=1, label="launchpad", ram_quota=3088384 [init -> launchpad] Could not open file "config" [init -> launchpad] --- entering main loop --- ^Cint main(): --- destroying init --- virtual void Genode::Core_parent::close(Genode::Session_capability): implement me, please virtual void Genode::Core_parent::close(Genode::Session_capability): implement me, please context area detach from 0x2fe000 - not implemented int main(): --- core main says good bye --- dtp:/media/os2l/var/src/genode/genode-11.02/bulid/bin# ===================cut here========================]
Namely, something about incorrect program segment type 0x4. -- This log I have got when tried to specify a video mode with
vga=0x314 (1024x768x16bit)
in Linux kernel command line. So, that was probably, the compiled-in into the kernel vesa fb driver. With it I got that log, and no subsequent switch to the graphics video mode -- libSDL remained in text mode!
Yesterday I tried to remove the vga= line from Linux kernel command line, and launch Matrox fb driver again manually. libSDL then started the graphics mode successfully, like it was in the first time! So, maybe, it is some bug in Linux vesafb driver -- I thought that I broke something when I reinstalled Linux, but now appears that the cause was the use of another fb driver, which doesn't work.
PS: I also tried to start the Linux Genode version from within X11. -- There was still vesafb driver active in the console, but when I started it in xterm, libSDL again tried to use a framebuffer backend, not the X11 one. Maybe, I must edit some config files to switch backends or this is a bug too?
WBR, valery