2005-09-01 11:30:32

by Zoltan Szecsei

[permalink] [raw]
Subject: multiple independent keyboard kernel support

Hi All,
The archives & FAQs on this subject stop at December 2003. Google not
much help either (prob. due to my keyword choices)

I gather the only way to do this is via the ruby patch.

(When) Will there ever be native kernel (and maybe XFree) support for
multiple independent keyboards?

The ruby patch seems to also only have discussions older than 18 months.

Has there really been no progress in the last 18 months?

I would prefer to see "official and permanent" support for this as then
when HW & drivers & kernels develop in the future, this capability will
always be (immediately) available - and not have to wait for patches.

Can someone please refer me to recent archives on this subject, or
update me on this issue if possible.

TIA,
Zoltan

--

==================================
Geograph (Pty) Ltd
P.O. Box 31255
Tokai
7966
Tel: +27-21-7018492
Fax: +27-86-6115323
Mobile: +27-83-6004028
==================================



2005-09-01 12:22:40

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Thu, Sep 01, 2005 at 01:28:25PM +0200, Zoltan Szecsei wrote:

> Hi All,
> The archives & FAQs on this subject stop at December 2003. Google not
> much help either (prob. due to my keyword choices)
>
> I gather the only way to do this is via the ruby patch.
>
> (When) Will there ever be native kernel (and maybe XFree) support for
> multiple independent keyboards?

The kernel console is unlikely to ever going to have that - noone is
interested in changing the console subsystem.

The current state of input device support in the kernel, however, allows
any userspace program to access them independently, including keyboards.

That means multi-user X and possibly a userspace console implementation
(Jon Smirl is planning one) has no barriers in the kernel input device
implementation keeping it from proceeding.

The problems with multiple VGA cards, etc, are much harder to solve,
though.

> The ruby patch seems to also only have discussions older than 18 months.
>
> Has there really been no progress in the last 18 months?
>
> I would prefer to see "official and permanent" support for this as then
> when HW & drivers & kernels develop in the future, this capability will
> always be (immediately) available - and not have to wait for patches.

Many people would like that. But not many enough to make it happen, at
least not until now.

--
Vojtech Pavlik
SuSE Labs, SuSE CR

2005-09-01 13:09:27

by Zoltan Szecsei

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

Vojtech Pavlik wrote:

>On Thu, Sep 01, 2005 at 01:28:25PM +0200, Zoltan Szecsei wrote:
>
>
>
>>Hi All,
>>The archives & FAQs on this subject stop at December 2003. Google not
>>much help either (prob. due to my keyword choices)
>>
>>I gather the only way to do this is via the ruby patch.
>>
>>(When) Will there ever be native kernel (and maybe XFree) support for
>>multiple independent keyboards?
>>
>>
>
>The kernel console is unlikely to ever going to have that - noone is
>interested in changing the console subsystem.
>
>
Ah, rats! :-(

>The current state of input device support in the kernel, however, allows
>any userspace program to access them independently, including keyboards.
>
>That means multi-user X and possibly a userspace console implementation
>(Jon Smirl is planning one) has no barriers in the kernel input device
>
>
Do you have an email address so that I can keep in touch with him?

>implementation keeping it from proceeding.
>
>The problems with multiple VGA cards, etc, are much harder to solve,
>though.
>
>
That's a surprise - barring the keyboard issue, I thought I was close to
getting it working on my SuSE 9.3 using 2 mice, onboard 915G graphics
and an old TSENG Labs ET6000.
Maybe I had further to go than I realised :-(

>
>
>>The ruby patch seems to also only have discussions older than 18 months.
>>
>>Has there really been no progress in the last 18 months?
>>
>>I would prefer to see "official and permanent" support for this as then
>>when HW & drivers & kernels develop in the future, this capability will
>>always be (immediately) available - and not have to wait for patches.
>>
>>
>
>Many people would like that. But not many enough to make it happen, at
>least not until now.
>
>
Ah cool - there's hope - any pointers on how I can get a counter or
lobby group going? :-)

Thanks for taking time to reply.

Cheers,
Z


--

==================================
Geograph (Pty) Ltd
P.O. Box 31255
Tokai
7966
Tel: +27-21-7018492
Fax: +27-86-6115323
Mobile: +27-83-6004028
==================================


2005-09-01 13:23:56

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Thu, Sep 01, 2005 at 03:07:20PM +0200, Zoltan Szecsei wrote:

> >>(When) Will there ever be native kernel (and maybe XFree) support for
> >>multiple independent keyboards?
> >
> >The kernel console is unlikely to ever going to have that - noone is
> >interested in changing the console subsystem.
> >
> >
> Ah, rats! :-(

You can give a try, if you're not afraid opening that can of worms.

> >The current state of input device support in the kernel, however, allows
> >any userspace program to access them independently, including keyboards.
> >
> >That means multi-user X and possibly a userspace console implementation
> >(Jon Smirl is planning one) has no barriers in the kernel input device

> Do you have an email address so that I can keep in touch with him?

[email protected]

> >implementation keeping it from proceeding.
> >
> >The problems with multiple VGA cards, etc, are much harder to solve,
> >though.

> That's a surprise - barring the keyboard issue, I thought I was close to
> getting it working on my SuSE 9.3 using 2 mice, onboard 915G graphics
> and an old TSENG Labs ET6000.
> Maybe I had further to go than I realised :-(

Some combinations work. Making it work for all is what's hard.

Btw, Aivils Stoss created a nice way to make several X instances have
separate keyboards - see the linux-console archives for the faketty
driver.

> >Many people would like that. But not many enough to make it happen, at
> >least not until now.

> Ah cool - there's hope - any pointers on how I can get a counter or
> lobby group going? :-)

Just start coding. ;) That helps most.

--
Vojtech Pavlik
SuSE Labs, SuSE CR

2005-09-01 14:47:41

by Martin Mares

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

Hello!

> Btw, Aivils Stoss created a nice way to make several X instances have
> separate keyboards - see the linux-console archives for the faketty
> driver.

I haven't looked recently, but when I tried that several years ago,
the biggest problem was to make two simultaneously running X servers
not switch off each other's video card I/O ports off :)

All other things looked solvable with a reasonably small effort.

Have a nice fortnight
--
Martin `MJ' Mares <[email protected]> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
There is no place like ~

2005-09-01 16:38:15

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Thu, Sep 01, 2005 at 04:48:12PM +0200, Martin Mares wrote:
> Hello!
>
> > Btw, Aivils Stoss created a nice way to make several X instances have
> > separate keyboards - see the linux-console archives for the faketty
> > driver.
>
> I haven't looked recently, but when I tried that several years ago,
> the biggest problem was to make two simultaneously running X servers
> not switch off each other's video card I/O ports off :)

That is still the biggest issue. Some modern cards don't need the legacy
I/O for working, however.

> All other things looked solvable with a reasonably small effort.

--
Vojtech Pavlik
SuSE Labs, SuSE CR

2005-09-11 22:33:21

by Helge Hafting

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Thu, Sep 01, 2005 at 01:28:25PM +0200, Zoltan Szecsei wrote:
> Hi All,
> The archives & FAQs on this subject stop at December 2003. Google not
> much help either (prob. due to my keyword choices)
>
> I gather the only way to do this is via the ruby patch.
>
> (When) Will there ever be native kernel (and maybe XFree) support for
> multiple independent keyboards?
>

xorg from debian testing or from ubuntu already support multiple
independent keyboards. I'm using that right now for my
two-user single-pc setup.

Each independent xserver have a section like this in the xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "Protocol" "evdev"
Option "Dev Phys" "isa0060/serio0/input0"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc102"
Option "XkbLayout" "no"
EndSection

In the serverlayout section, use the IsolateDevice option so
the independent xservers don't stomp on each other's cards.

In the screen section, set the "InitPrimary" option for cards that
doesn't get initialized by the bios at bootup.

In the device section, use the BusID option to be safe.

Start your xserver with the -sharevts option.


I have only one _console_, but multiple xservers with
separate keyboards works with plain 2.6.13.

Multiple consoles are also doable, if someone writes a "getty"
that uses the evdev interface for input (instead of tty's)
and the framebuffer interfaces for output (instead of tty's).

> The ruby patch seems to also only have discussions older than 18 months.
>
> Has there really been no progress in the last 18 months?
>
Looks like much of the interest in ruby work disappeared as the evdev
option for X became widespread. X is what most people use for desktops,
and that works well enough without ruby now.

> I would prefer to see "official and permanent" support for this as then
> when HW & drivers & kernels develop in the future, this capability will
> always be (immediately) available - and not have to wait for patches.
>

"evdev" in the kernel already separates out independent keyboards.
Isolatedevice lets several xservers run indepenmdently. There isn't
much missing, although there are minor troubles where starting one
xserver might mess up the video timing for another. (Solution:
start xserver in an appropriate order, to be found by experimentation)
Another minor problem - it won't work with every combination of video cards,
only some.
Still - when it works you even get to run accelerated 3D on
the independent heads. Nice for game parties.

> Can someone please refer me to recent archives on this subject, or
> update me on this issue if possible.
>
I hope this helps.

Helge Hafting

2005-09-11 22:35:23

by Helge Hafting

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Thu, Sep 01, 2005 at 04:48:12PM +0200, Martin Mares wrote:
> Hello!
>
> > Btw, Aivils Stoss created a nice way to make several X instances have
> > separate keyboards - see the linux-console archives for the faketty
> > driver.
>
> I haven't looked recently, but when I tried that several years ago,
> the biggest problem was to make two simultaneously running X servers
> not switch off each other's video card I/O ports off :)
>
Look again. X config files now have "IsolateDevice" and "BusID"
to deal with this. At least iff you get your X from ubuntu or
debian testing . . .

> All other things looked solvable with a reasonably small effort.

It works quite well. :-)

Helge Hafting

2005-09-12 07:01:27

by Zoltan Szecsei

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

Helge Hafting wrote:

>>I would prefer to see "official and permanent" support for this as then
>>when HW & drivers & kernels develop in the future, this capability will
>>always be (immediately) available - and not have to wait for patches.
>>
>>
>>
>
>"evdev" in the kernel already separates out independent keyboards.
>Isolatedevice lets several xservers run indepenmdently. There isn't
>much missing, although there are minor troubles where starting one
>xserver might mess up the video timing for another. (Solution:
>start xserver in an appropriate order, to be found by experimentation)
>Another minor problem - it won't work with every combination of video cards,
>only some.
>Still - when it works you even get to run accelerated 3D on
>the independent heads. Nice for game parties.
>
>
>
This is by far the best news I could have hoped for.

>>
>>
>I hope this helps.
>
>
Definitely yes.
Helge, thank you very much for taking the time to respond to my
(lengthy) query. I will be away for a few weeks, but will try this in
full during early October.

I have in the meantime unsubscribed from linux-kernel so please use my
direct address if you need to discuss anything further.

Kind regards,
Zoltan


>Helge Hafting
>
>
>
>


--

==================================
Geograph (Pty) Ltd
P.O. Box 31255
Tokai
7966
Tel: +27-21-7018492
Fax: +27-86-6115323
Mobile: +27-83-6004028
==================================


2005-09-12 16:03:27

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Sunday 11 September 2005 4:36 pm, Helge Hafting wrote:
> On Thu, Sep 01, 2005 at 04:48:12PM +0200, Martin Mares wrote:
> > Hello!
> >
> > > Btw, Aivils Stoss created a nice way to make several X instances have
> > > separate keyboards - see the linux-console archives for the faketty
> > > driver.
> >
> > I haven't looked recently, but when I tried that several years ago,
> > the biggest problem was to make two simultaneously running X servers
> > not switch off each other's video card I/O ports off :)
> >
> Look again. X config files now have "IsolateDevice" and "BusID"
> to deal with this. At least iff you get your X from ubuntu or
> debian testing . . .

Yes, but I think IsolateDevice still isn't quite enough if you
have VGA devices behind PCI-PCI bridges. In other words, devices
behind bridges still get disabled, even with IsolateDevice.

And the ideal situation would be if IsolateDevice could be the
*default*, but the X bugzilla[1] says some devices have problems
with that.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=2216

2005-09-12 20:48:26

by Kyle Moffett

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Sep 12, 2005, at 12:03:11, Bjorn Helgaas wrote:
> On Sunday 11 September 2005 4:36 pm, Helge Hafting wrote:
>> Look again. X config files now have "IsolateDevice" and "BusID"
>> to deal with this. At least iff you get your X from ubuntu or
>> debian testing . . .
>
> Yes, but I think IsolateDevice still isn't quite enough if you
> have VGA devices behind PCI-PCI bridges. In other words, devices
> behind bridges still get disabled, even with IsolateDevice.
>
> And the ideal situation would be if IsolateDevice could be the
> *default*, but the X bugzilla[1] says some devices have problems
> with that.

IIRC, someone was working on a VGA arbiter and some PCI-access kernel
code
upon which X.org could be rebuilt. Then all the messy /dev/mem issues
relating to PCI bus smashing go away (including the need for iopl, root
privts, etc), and a properly configured system could run X.org as a
normal
user on any attached devices that user has permission to, including
video
cards, displays, keyboards, mice, graphics tablets, joysticks, etc.

Unfortunately the project is not exactly small, so it wasn't moving very
quickly last I remember...

Cheers,
Kyle Moffett

--
Unix was not designed to stop people from doing stupid things,
because that
would also stop them from doing clever things.
-- Doug Gwyn


2005-09-13 16:20:23

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Monday 12 September 2005 2:47 pm, Kyle Moffett wrote:
> On Sep 12, 2005, at 12:03:11, Bjorn Helgaas wrote:
> > On Sunday 11 September 2005 4:36 pm, Helge Hafting wrote:
> >> Look again. X config files now have "IsolateDevice" and "BusID"
> >> to deal with this. At least iff you get your X from ubuntu or
> >> debian testing . . .
> >
> > Yes, but I think IsolateDevice still isn't quite enough if you
> > have VGA devices behind PCI-PCI bridges. In other words, devices
> > behind bridges still get disabled, even with IsolateDevice.
> >
> > And the ideal situation would be if IsolateDevice could be the
> > *default*, but the X bugzilla[1] says some devices have problems
> > with that.
>
> IIRC, someone was working on a VGA arbiter and some PCI-access kernel
> code
> upon which X.org could be rebuilt. Then all the messy /dev/mem issues
> relating to PCI bus smashing go away (including the need for iopl, root
> privts, etc), and a properly configured system could run X.org as a
> normal
> user on any attached devices that user has permission to, including
> video
> cards, displays, keyboards, mice, graphics tablets, joysticks, etc.
>
> Unfortunately the project is not exactly small, so it wasn't moving very
> quickly last I remember...

It's not small, but definitely not dead. SGI ia64 boxes already
do this, and I'm got similar kernel support for HP ia64 boxes almost
ready to go. But I don't work much on X.org, so I don't know how
long it will take to push the changes there.

And the kernel VGA arbiter is still missing, so I currently have
to turn off VGA console support in the kernel.

And of course, things would be much more interesting if the x86
support were in place.

2005-10-19 16:01:28

by Zoltan Szecsei

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

Hi Helga (et al),

I'm just back on this issue and am trying to make changes to the basic
xorg.conf without yet connecting the 2nd VGA,Kyb & mouse.

I thought if I set up a template for the config then it would be easier
to copy & make changes for when I connect the 2nd KVM devices.

I'm having a problem with the "Dev Phys" option as I keep getting:
(EE) Generic Keyboard: cannot register with evdev brain
No core keyboard.

(man xorg.conf does not show "Dev Phys" - should it not be "Device" ??

The real issue is that I cannot find the keyboard device in /dev/input
(Ubuntu 5.04 )
In /dev/input I only have 6 devices: event0, 1 and 2; mice, mouse0 and ts0

Are you able to tell me what parameter to put in this Option "Dev Phys" ?

TIA,
Zoltan



Helge Hafting wrote:

>xorg from debian testing or from ubuntu already support multiple
>independent keyboards. I'm using that right now for my
>two-user single-pc setup.
>
>Each independent xserver have a section like this in the xorg.conf:
>Section "InputDevice"
> Identifier "Generic Keyboard"
> Driver "kbd"
> Option "Protocol" "evdev"
> Option "Dev Phys" "isa0060/serio0/input0"
> Option "CoreKeyboard"
> Option "XkbRules" "xfree86"
> Option "XkbModel" "pc102"
> Option "XkbLayout" "no"
>EndSection
>
>
>
--

==================================
Geograph (Pty) Ltd
P.O. Box 31255
Tokai
7966
Tel: +27-21-7018492
Fax: +27-86-6115323
Mobile: +27-83-6004028
==================================


2005-10-19 19:21:09

by Helge Hafting

[permalink] [raw]
Subject: Re: multiple independent keyboard kernel support

On Wed, Oct 19, 2005 at 06:01:18PM +0200, Zoltan Szecsei wrote:
> Hi Helga (et al),
>
> I'm just back on this issue and am trying to make changes to the basic
> xorg.conf without yet connecting the 2nd VGA,Kyb & mouse.
>
> I thought if I set up a template for the config then it would be easier
> to copy & make changes for when I connect the 2nd KVM devices.
>
> I'm having a problem with the "Dev Phys" option as I keep getting:
> (EE) Generic Keyboard: cannot register with evdev brain
> No core keyboard.
>
> (man xorg.conf does not show "Dev Phys" - should it not be "Device" ??
>
> The real issue is that I cannot find the keyboard device in /dev/input
> (Ubuntu 5.04 )
> In /dev/input I only have 6 devices: event0, 1 and 2; mice, mouse0 and ts0
>
> Are you able to tell me what parameter to put in this Option "Dev Phys" ?
>
> TIA,
> Zoltan
>

(USe a 2.6 kernel)
$ cat /proc/bus/input/devices

On my machine:
I: Bus=0003 Vendor=09da Product=001a Version=0001
N: Name="A4Tech RF USB Mouse"
P: Phys=usb-0000:00:10.2-2/input0
H: Handlers=mouse0 event0
B: EV=7
B: KEY=ff0000 0 0 0 0
B: REL=303

I: Bus=0011 Vendor=0001 Product=0002 Version=ab83
N: Name="AT Raw Set 2 keyboard"
P: Phys=isa0060/serio1/input0
H: Handlers=kbd event1
B: EV=120013
B: KEY=402000000 3802078f840d001 f2ffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event2
B: EV=120013
B: KEY=402000000 3802078f840d001 f2ffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

Look for lines saying Handlers=kbd eventX
In the same block, you find Phys=<something>
Copy this into xorg.conf, yielding Dev Phys=<something>
The proc/bus/input/devices file tells you about all input devices,
such as keyboards, mice, joysticks... Take care not trying to
interpret a mouse as a keyboard.. :-)


Helge Hafting