Problems with l4linux
adam at os.inf.tu-dresden.de
Mon Nov 3 22:44:43 CET 2008
On Mon Nov 03, 2008 at 06:48:45 +1200, valerius wrote:
> > >
> > > bi addr=4054ec
> > > b+ bpn=1
> > > br bpn=1 task=f
> > >
> > > But after I said "g" in the debugger it didn't stopped at the breakpoint,
> > > only broke in TRAP d. What I do incorrectly? Maybe, bi addr=4054ec sets
> > > the breakpoint at phys address, not to linear of task f? How then I can
> > > set to linear (or convert linear to physical?).
> > Breakpoint addresses are virtual.
> > Anyway, I found the reason. L4Linux had so much privileges that it was
> > able able to write MSRs which allowed it to setup the Sysenter-MSRs.
> > Normally this is trapped and handled. The kernel allows writing MSRs for
> > special purpose stuff, this was triggered here. The wrmsr's are in
> > enable_sep_cpu in arch/x86/vdso/vdso32-setup.c, if you comment them out
> > it should work.
> Good. Thank you very much, I am very glad to see it now works ;) I commented
> out that fragment and recompiled. Now Linux starts without problems. But
> another problem appeared: when I start X, the following message appears in
> l4lx | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
> l4lx | Error: L4semaphore: ignored request from other task (1B.00, I'm
> l4lx : )!
> Linux stops with black screen. :( The run program shows that application with
> task Id = 0x1b is Linux application (it says, "owner: f.4"). It seems it is X
> server. I start X server from a drops-fp.rd ramdisk image from TUD site.
> The problem seems to be that X server runs as another task and Linux accepts
> only requests from its threads.
Do you mean drops-rd.rd? There's no X server in there. What did you use?
The above message would mean that the X server is talking to the
L4Linux-server which is a no-go except the special X driver is used.
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers