Fiasco-OC.UX, ux_con and the framebuffer examples
Paul Boddie
paul at boddie.org.uk
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
example:
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
'../kernel/fiasco/mybuild:/home/paulb/L4/src/l4/mybuild/bin/x86_prescott:...
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
(20121018/tbxfroot-286)
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,
Paul
P.S. I've also found that various links on l4re.org to things like the
"getting started" details are broken. For example:
http://l4re.org/build.html -> http://l4re.org/doc/l4re_getting_started.html
More information about the l4-hackers
mailing list