From: Aivils <ai...@un...> - 2004-05-07 06:17:41
|
On Friday 07 May 2004 00:24, Helge Hafting wrote: > On Fri, Feb 27, 2004 at 05:30:36PM +0000, James Simmons wrote: > > > > I just looked at the code. The only way the could happen is if > > info->var.bits_per_pixel equals zero. Need to check the initialization to > > see if it sets this. > > > Did you find anything? I tried ruby-2.6.5, and got almost > exactly the same oops again. I get the penguins and a message > about switchin to framebuffer, then this. Only the first > lines are different from the 2.6.3 case: > > divide error: 9999 [#1] > EIP at cfb_imageblit+0x262/0x5c0 > trace: > buffered_runqueue > fbcon_putc > gotoxay > clear_region > hide_softcursor > update_screen > vt_map_display > fbcon_add > cache_alloc_refill > fbcon_event_notify > notifier_call_chain > register_framebuffer > matroxfb_db_regit > matroxfb_db_register > matroxfb_xrtx2_probe > matroxfb_register_driver > matroxfb_crtc2_init > do_initcalls > init > init > kernel_thread_helper > Kernel panic: attempted to kill init! > > At this stage I only see the first framebuffer. I don't know how far > the second get, because userland has to run "matroxset" before it > gets routed to an actual screen. > > The first framebuffer seems to work, it displays the penguins and > the oops flawlessly. Could it be something wrong in initializing the > second fb? Might a well-placed printk or something help? I can help only with randomly-placed printk :) First try this patch --- ruby-CVS-20040430/drivers/video/console/fbcon.c 2004-04-30 09:45:06.000000000 +0300 +++ ruby-test/drivers/video/console/fbcon.c 2004-05-07 09:41:49.000000000 +0300 @@ -499,7 +499,7 @@ static const char *fbcon_startup(struct vc->vc_can_do_color = info->var.bits_per_pixel != 1; /* We trust the mode the driver supplies. */ - if (!done && info->fbops->fb_set_par) + if (info->fbops->fb_set_par) info->fbops->fb_set_par(info); DPRINTK("mode: %s\n", info->fix.id); I add this !done because my ati-rage3d dies as secondary fb. May be matrox does all vice-versa, because more sane is calling fb_set_par(). fbcon_strartup() already have printk DPRINTK("res: %dx%d-%d\n", info->var.xres, info->var.yres, info->var.bits_per_pixel); Seems You cannot see that on the screen. Oops push out important text. Aivils |