Fiasco-OC.UX, ux_con and the framebuffer examples

Paul Boddie paul at
Thu Jan 14 23:07:43 CET 2016

Another year, another look at Fiasco-OC! ;-)

I've been looking again at Fiasco-OC.UX and trying to make sense of the 
documentation. In particular, I'd like to be able to get the framebuffer 
examples working with the UX graphical console, but it isn't clear to me what 
I need to do.

One thing I discovered straight away was that I needed to provide the -F 
option as part of the UX_OPTIONS variable when running UX via make. For 

cd src/l4
make O=mybuild ux E=hello MODULE_SEARCH_PATH=../kernel/fiasco/mybuild \
     UX_OPTIONS='-G 800x600 at 24 -F ../kernel/fiasco/mybuild/ux_con'

I suspect that to run a framebuffer example, such as the one in 
src/l4/conf/examples/x86-fb.list, I need to specify E=x86-fb-example and 
specify the list file using MODULES_LIST:

make O=mybuild ux E=x86-fb-example \
     MODULES_LIST=conf/examples/x86-fb.list \
     MODULE_SEARCH_PATH=../kernel/fiasco/mybuild \
     UX_OPTIONS='-G 800x600 at 24 -F ../kernel/fiasco/mybuild/ux_con'

But this naive attempt gives me the following:

Could not find 'x86-fb.cfg' with path 

I imagine that I need to more effectively specify paths to various things and 
to check that they even make sense in the context of the UX environment. 
Should I even be using this x86-related stuff?

Copying the different x86-fb files into one of my existing MODULE_SEARCH_PATH 
directories did seem to resolve the above immediate error, however, but I then 
appear to need to build various drivers. This seems to require chasing 
dependencies as they are reported as missing by the build system, and that 
makes me wonder whether I've overlooked a command that recursively checks out 
all dependencies for a given component.

Anyway, running the above command with all dependencies compiled and with x86-
fb (and x86-legacy.devs) files in the path gives an error like this...

Ned: loading file: 'rom/x86-fb.cfg'
IO      | Io service
IO      | Find root Pointer
IO      | ACPI Error: Could not map memory at 0x000E0000 for length 131072 
IO      | Find root Pointer: 0
IO      | Ready. Waiting for request.
mag     | Hello from MAG
fbdrv   | Trying execution of ``set VBE mode'' using x86emu
fbdrv   | L4Re[rm]: unhandled read page fault at 0xfd0 pc=0x1007d49
fbdrv   | L4Re: unhandled exception: pc=0x1007d49 (pfa=fd4)
fbdrv   | L4Re: Global::l4re_aux->ldr_flags=0

...which probably suggests that I really should be using something other than 
this x86-related stuff. Does anyone have any suggestions, or am I doing 
something that no-one thought sensible?

(As mentioned last year on this list, I'm running everything under Debian on 
x86, and UX does work with the "hello" example.)

Thanks in advance,


P.S. I've also found that various links on to things like the 
"getting started" details are broken. For example: ->

More information about the l4-hackers mailing list