mdacon incorrectly detects MDA hardware on systems without such graphics
card.
one may load this module by chance, for example when doing some
systematical
module-testing, and if there is no Monochrome Display Adapter attached ,
module init
renders vc1-16 completely unusable.
me and others have run into this more than once. see [Bug 224522 -
modprobe mdacon
freezes machine -> https://bugzilla.novell.com/show_bug.cgi?id=224522 ]
for example
or somebody may accidentally link it statically with the kernel.....and have
some fun then....
http://marc.info/?l=linux-kernel&m=112550081223569&w=2
-> http://marc.info/?l=linux-kernel&m=112550983822140&w=2
quoted hunk
apparently, proper MDA detection seems to be broken for a long time -
seems to be
related to those #ifdef TEST_MDA_B statements added by Edward Betts.
this commit back in 2002 made things even worse :
http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commit;h=c72757b49c88914433244757fb4967fc63546685
it changed default vc allocation from 13-16 to 1-16 for no apparent
reason (!?) , and
with that (and without X), mdacon grabs the vc you`re currently sitting on
and locks you out.
this is from Kconfig :
quoted
config MDA_CONSOLE
depends on !M68K && !PARISC && ISA
tristate "MDA text console (dual-headed) (EXPERIMENTAL)"
---help---
Say Y here if you have an old MDA or monochrome Hercules
graphics
adapter in your system acting as a second head ( = video card).
You
will then be able to use two monitors with your Linux system.
Do not
say Y here if your MDA card is the primary card in your system;
the
normal VGA driver will handle it.
As we can see mdacon is just meant as an additional driver for dual-head
setup,
and since kernel 2.4.36 still defaults to vc13-16 , setting the default
back to that value
again shouldn`t do any harm.
hereby i`m reverting that change, setting default back to to vc13-16
again.
Besides the fact that mdacon may be rarely or never be used these days and
could
perhaps put to trash anyway (pre-dinosaur hardware!), indeed this is not a
real solution,
but at least it removes the unfortunate side-effect of messing up the vc
you`re working on.
Signed-off-by: Roland Kletzing <redacted>
--- drivers/video/console/mdacon.c.orig 2008-05-03 15:47:20.000000000
+0200
+++ drivers/video/console/mdacon.c 2008-05-03 15:55:27.000000000
+0200
@@ -71,13 +71,15 @@
/* console information */
-static int mda_first_vc = 1;
+static int mda_first_vc = 13;
static int mda_last_vc = 16;
static struct vc_data *mda_display_fg = NULL;
module_param(mda_first_vc, int, 0);
+MODULE_PARM_DESC(mda_first_vc, "First virtual console. Default: 13");
module_param(mda_last_vc, int, 0);
+MODULE_PARM_DESC(mda_last_vc, "Last virtual console. Default: 16");
/* MDA register values
*/
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone