Hi, all

     Long time  I maintain Linux 2.4.XX kernel tree , wich support multiple
consoles.
Ground priciple:
linus tree kernel has 64 virtual consoles == virtual terminal.
All 64 accessible by one user.

Tuned 2.4.XX-backstreet-ruby kernel has same 64 virtual consoles but one
user
can use only range of consoles. Current I use different terminology:
virtual
terminlal (VT) == 8 virtual consoles (VC), Each VT may be bounded with
independ
keyboard. Normal (non root) user can access only VC inside their VT. Root
can
access all 64 VC.

XFree86 is suid root process. XFree86 can access any VC. So XFree86 with
parameter vtXX can choose right keyboard, if exist multiple VT == 8 VC.

Current 2.4.XX-backstreet-ruby support only one text-mode console VGA, but
XFree86 do not ask for text mode console. We can use stealth DUMMY console
,
which emulate addidtional VT and bounded with additional keyboards.

files:
http://startx.times.lv/

broken project:
http://linuxconsole.sf.net
linuxconsole.bkbits.com
partialy worked project, same console code
fbdev.bkbits.com

Aivils Stoss
please replay to me to. I do not feel like xf86 developer.

p.s.
Why I should pacth PCI-handling of XFree or Why XFree search and freezy
innocent VGA adapters?

I just rewrite:
http://sourceforge.net/mailarchive/message.php?msg_id=2907175
"> >does anyone know why you'd want this kind of locking going on anyway?
is
> >it to avoid two x servers trying to drive the same head?
> Don't know.

I'd guess it has to do with braid-deadness of older VGA-compatible PCI/AGP
hardware. There might be no other way to init the chips (change mode, even
change single palette entry) than to go trough the VGA-compatible I/O
ports. This range is legacy address decoded by the PCI devices. Since
these legacy I/O ranges cannot be relocated (like normal MMIO I/O in PCI),
only one PCI device (in system) may have it's legacy VGA address decoders
enabled at single instance. This means that for most older hardware, one
needs to specifically disable the I/O decoders on _all_ other VGA
compatible PCI devices for the duration of programming the one that is
really required. If more than one PCI device will attempt at decoding the
same legacy I/O range (0x3d0-smt), serious brain damage would occur (could
prompt a #SERR on PCI). Only the recent graphics chips may be programmed
purely through MMIO I/O and even then they might require some short setup
before going into that mode.

(at least) because of this reason, xf86 has no choice but disable all I/O
decoders on all VGA-compatible devices, and it goes a bit further by
disabling all VGA-compatible PCI devices that it will not drive just to be
on the safe side.

Unless there is some system-provided common arbitration for these legacy
ranges, this is the only way (from xf86's point of view). The right place
for linux would be the kernel, although this might upset some xf86 folk
since their code also does a lot of other stuff as well (like run the BIOS
code init from previously disabled PCI display hardware to get it up and
running, DDC probing if otherwise not possible).

In my opinion a more generic resource management for this would be nice in
the kernel but atm xf86 assumes (rightly so) that it will be the only
application doing graphics stuff. This is difficult to solve (although in
my opinion possible).

Feel free to correct me if you feel that the technical data is inaccurate,
I've currently trying to understand the lower levels of PCI and AGP
eventually and don't claim to be an expert on it.

Aleksandr Koltsoff"


_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to