Fiasco-OC.UX, ux_con and the framebuffer examples
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Mon Jan 18 00:33:57 CET 2016
Hi,
On Thu Jan 14, 2016 at 23:07:43 +0100, Paul Boddie wrote:
> 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?
That's ok this way. And yes, when doing all step by step you'll also
need to specify all search paths.
> 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.
As of now there's no such tool that downloads components as required by
other components. However, there are subset definitions defined in
repomgr but they're coarse.
> 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?
The x86-fb.cfg file is missing some bit for ux here. Please change
local fbdrv_fb = l:new_channel();
to
local fbdrv_fb = L4.Env.vesa;
I'll fix that accordingly.
> (As mentioned last year on this list, I'm running everything under Debian on
> x86, and UX does work with the "hello" example.)
More generally, there's also some automatism. Add a
l4/conf/Makeconf.boot file (from l4/conf/Makeconf.boot.example) and add
a UX_GFX=800x600 at 24 statement, plus add the path to your kernel build to
MODULE_SEARCH_PATH.
Then a "make ux E=.." should suffice.
> P.S. I've also found that various links on l4re.org to things like the
> "getting started" details are broken. For example:
Thanks! I've fixed the 2 locations I've found to be wrong.
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list