Problems with l4linux

valerius _valerius at mail.ru
Sun Nov 2 19:48:45 CET 2008


> >
> > 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 
log:

l4lx    | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
l4lx    |  Error: L4semaphore: ignored request from other task (1B.00, I'm 
F.01
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. 

WBR,
valery




More information about the l4-hackers mailing list