Skip to contentSkip to conversation

2.5.26 broken on headless boxes

DISCUSSION Petr Vandrovec 2 participants 2 messages Jul 18, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 32 lines · Matthew Wilcox
Quoted 17 lines · William Lee Irwin III
Quoted 4 lines · Matthew Wilcox
Quoted 4 lines
Quoted 4 lines

EIP; c01b7695 <visual_init+85/e0> <=====
edx; f7906600 <END_OF_CODE+37502e5c/????>
edi; c03dcc00 <vc_cons+0/fc>
esp; c3d45e7c <END_OF_CODE+39426d8/????>

Quoted 11 lines

Trace; c01b7773 <vc_allocate+83/140>
Trace; c01baa25 <con_open+19/88>
Trace; c01ac08c <tty_open+20c/394>
Trace; c0145a83 <link_path_walk+683/874>
Trace; c0144ed7 <permission+27/2c>
Trace; c0146373 <may_open+5f/2ac>
Trace; c013c33a <chrdev_open+66/98>
Trace; c013b001 <dentry_open+e1/1b0>
Trace; c013af16 <filp_open+52/5c>
Trace; c013b307 <sys_open+37/74>
Trace; c0108893 <syscall_call+7/b>

Quoted 3 lines

This is the 4th one of these I've seen in the last two days. Any chance of being able to compile with -g and get an addr2line on the EIP? I've tried to reproduce it myself, but haven't gotten it to happen yet.

seems fairly obvious what's happening with a couple of printks...

printk("visual_init: sw = %p, conswitchp = %p, currcons = %d, init = %d\n",
sw, conswitchp, currcons, init);

gets me the interesting fact that sw & conswitchp are both NULL. later on, we call:

    sw->con_init(vc_cons[currcons].d, init);

which seems like it would be the exact cause, no?

Quoted 8 lines

now whether putting a:

    if (!sw)
        return;

call into visual_init or whether we should determine earlier never to call visual_init, I don't know. The people who know about the console have been conspicuously silent so far...

You have enabled CONFIG_VT without CONFIG_VGA_CONSOLE and CONFIG_DUMMY_CONSOLE. It is illegal configuration.

To fix oopses, either enable 'Framebuffer devices' under 'Console drivers' section (you do not have to enable any fbdev driver, just check this option...), or disable CONFIG_VT. See arch/*/kernel/setup.c for explanation, no code in VT subsystem kernel expects conswitchp == NULL, but couple of architectures leaves sometime conswitchp uninitialized.

It would be possible to add error return path to visual_init, but I think that adding

conswitchp = &dummy_con;
+ #else
+ #error No console defined with CONFIG_VT enabled #endif
#endif

at the end of setup.c will work same way, as open of /dev/tty* will never suceed with your config with added error path anyway.
Best regards,
Petr Vandrovec [email protected]

#1 lore raw
Quoted 2 lines · Petr Vandrovec

You have enabled CONFIG_VT without CONFIG_VGA_CONSOLE and CONFIG_DUMMY_CONSOLE. It is illegal configuration.

Huh. So CONFIG_VT_CONSOLE is not enough any more? I really do think this should be documented in Config.help.

Quoted 5 lines

To fix oopses, either enable 'Framebuffer devices' under 'Console drivers' section (you do not have to enable any fbdev driver, just check this option...), or disable CONFIG_VT. See arch/*/kernel/setup.c for explanation, no code in VT subsystem kernel expects conswitchp == NULL, but couple of architectures leaves sometime conswitchp uninitialized.

well, this is on x86 ...

Signature · 1 line
Revolutions do not require corporate support.