[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-xwin-discuss
Subject:    Re: [xwin-discuss] [driver-discuss] [sw-porters-discuss] wacom
From:       "max () bruningsystems ! com" <max () bruningsystems ! com>
Date:       2008-12-27 18:00:53
Message-ID: 49566D55.9080206 () bruningsystems ! com
[Download RAW message or body]

Hi Alan,
Alan Coopersmith wrote:
> max@bruningsystems.com wrote:
>   
>> I have a working USB version on Solaris.  But I am re-writing to get rid of
>> all of the GPL code that is being used.  The comment about the USB hid 
>> device
>> above basically says that this can all be done in the xdrv code (user 
>> level) and
>> that a kernel driver (STREAMS module) is not needed.   I have a STREAMS 
>> module
>> that is pushed on top of hid to do some ioctl's, and that will probably 
>> go away
>> when I figure out how to do it directly with hid.  To be honest, I'm not 
>> sure what
>> Albert's change does, except for the compilation.
>>     
>
> The USB keyboard and mouse drivers are streams modules that are pushed on
> top of hid devices to convert the USB HID protocol to the Solaris VUID
> protocol, which allowed them to then appear as /dev/kbd & /dev/mouse
> without requiring any changes to users such as the X server.
>
> If you wanted the Wacom driver to appear as a standard mouse to X servers
> and other users of /dev/mouse who don't know any better, you could do the
> same, but if you only want it to appear when specifically looking for
> a tablet, then I don't think any such module would be needed.   (But then,
> I've only worked on this from the X server side, never from the kernel
> plumbing side.)
>   
The wacom tablet has a boot protocol that makes it appear initially
as a mouse on the system.  If you want to use it as a mouse, it works
fine with the current usbms module that is autopushed by dacf onto hid.
If you want to use the tablet for absolute pen coordinates, eraser, tablet
keys, pressure, tilt, etc., this will not work.  I have a streams module 
that
can be pushed on top of hid that acts exactly like the linux wacom kernel
driver.  In other words, it puts the tablet into "pen" mode, and
converts input data from the tablet into events that are
passed upstream to user level.  The linux X server
module (wacom_drv.so) then handles the events and does everything that
is needed.  I only had to make a few changes to it.  The problem with this,
is that the linux X module is GPL, and apparently this can not be used
with Sun's X server due to licensing issues.  Some of the X modules that
Sun uses are not GPL. 

So, I am currently rewriting the X server module (wacom_drv.so) to receive
and process raw input from the tablet.  I have a STREAMS module, but
it is only used to put the tablet into "pen" mode, and to get tablet
vendor/product id.  Both of these can probably be done directly
with the hid module from the X library, but I haven't bothered to figure 
out how to do this
from user level.  When I am finished, I expect that there will be no need
for any kernel code.

To use my current setup, you must add parameters (extended input devices)
to the xorg.conf file.  When I figure out how to do this via hal, I'll make
this automatic so no xorg.conf file is needed.  I imagine some people 
will only want to use the tablet
as a mouse, and that can be done right now (but I don't know why one
would buy a tablet for that).

max



_______________________________________________
xwin-discuss mailing list
xwin-discuss@opensolaris.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic