Hi,
On Friday 12 May 2006 12:36, Wei Shen wrote:
On Friday 12 May 2006 10:48, Wei Shen wrote:
I run con-ux with: ./fiasco -G 800x600@16 -m 128 -l names -l dm_phys -l con-ux
You might add ``-l log'' here.
I think it is not the cause :-)
Of course not, that was only a hint.
Please disassemble your con-ux binary, the instruction at the EIP is important:
objdump -ld 0x00b0dc7f
00b0dc74 <trampoline>: trampoline(): b0dc74: e8 37 00 00 00 call b0dcb0 <int80_warning> b0dc79: 8d 64 24 04 lea 0x4(%esp),%esp b0dc7d: cf iret b0dc7e: 90 nop b0dc7f: 90 nop
That does not make much sense. Are you sure that you disassembled the same binary which caused the general protection? I assume not. But as I see something about int80 in your listing, I see the reason: Please add
-n7
to the command line options of Fiasco. The con-ux binary is trying to execute a Linux system call (int80) because it ``knows'' that it is running on Linux. The Fiasco kernel wouldn't allow this until you force him by adding this command line option.
But as I have noted, I think the original position of the error is in function sw_fill in pslim.c: ... if (vc->do_drty) vc->do_drty(x, y, w, h); ...
"vc->do_drty" equals 0x00b0d73c here which seems to be invalid. And I guess "new->do_drty" should be initialized to "fg_do_drty" (NULL) in function do_switch in main.c.
Again: Are you sure that you binary matches the binary you bootet? I don't think so. In fact, vc->do_drty is initialized at every time. It is set once in vc_open_out() and then never changed. You are right that we should switch it to fg_do_drty or bg_do_drty if we switch the vc into foreground/background. But this has nothing to do with your issue, it just forces the console to send update events more than necessary.
Kind regards,
Frank