Hi,
I was trying to run xserver on l4linux using vesa frame buffer (l4 is running on kvm) and virtual machine hangs and it seems that a infinite loop is started which is continuously try to do something but doesn't succeed.
When I tried to debug it using gdb, it displays 0xb6ee9b28 in SetResetBIOSVars (pInt=0x820f5a0, set=<value optimized out>) at ../../../../hw/xfree86/int10/helper_exec.c:686
this code is from the xserver 1.7.7
static void SetResetBIOSVars(xf86Int10InfoPtr pInt, Bool set) { int pagesize = getpagesize(); unsigned char* base = xf86MapVidMem(pInt->scrnIndex, VIDMEM_MMIO, 0, pagesize); int i;
if (set) { for (i = BIOS_SCRATCH_OFF; i < BIOS_SCRATCH_END; i++) MEM_WW(pInt, i, *(base + i)); } else { for (i = BIOS_SCRATCH_OFF; i < BIOS_SCRATCH_END; i++) /*line 685*/ *(base + i) = MEM_RW(pInt, i); /*line 686*/ //This line of code is not working }
xf86UnMapVidMem(pInt->scrnIndex,base,pagesize); }
The value of base becomes 0 after xf86MapVidMem func is called. So my Guess is that this func is failing and returning NULL but I am not able to figure out why
Also I read in previous years mailing list that Linux tries to execute int10 to set the VESA mode but L4 applications are not allowed to execute real-mode code. Does this have anything to do with my problem?? How can I fix this problem? Also, Is there a way to allow L4 applications to execute code in real mode and then switch back? May be add some code to L4 to allow applications to execute code in real mode and then switch back.
Abhishek Gupta Indian School of Mines
Hi,
On Wed Jun 06, 2012 at 15:28:53 +0200, Abhishek Gupta wrote:
I was trying to run xserver on l4linux using vesa frame buffer (l4 is running on kvm) and virtual machine hangs and it seems that a infinite loop is started which is continuously try to do something but doesn't succeed.
Also I read in previous years mailing list that Linux tries to execute int10 to set the VESA mode but L4 applications are not allowed to execute real-mode code. Does this have anything to do with my problem?? How can I fix this problem?
A setup for this can be done by using Grub to enable a VESA mode or fb-drv, which does the same at runtime. Then give fb-drv's fb cap to L4Linux and use the fbdev X driver.
Adam
l4-hackers@os.inf.tu-dresden.de