Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Feb 2017 16:08:41 -0800
From:      Large Hadron Collider <large.hadron.collider@gmx.com>
To:        freebsd-hardware@freebsd.org
Subject:   (accidentally unicasted) Re: In which a touchscreen is rehabilitated,  or: How I learned to stop being scared and just hack at /usr/src/sys/dev
Message-ID:  <c7ecd84b-e367-8a8f-e42a-e9a3e141d227@gmx.com>
In-Reply-To: <6503fcce-fa54-e449-d158-f77323bebfcb@kapsi.fi>
References:  <0c7ad294-86f0-a076-f337-83e17d58fdd0@gmx.com> <6503fcce-fa54-e449-d158-f77323bebfcb@kapsi.fi>

next in thread | previous in thread | raw e-mail | index | archive | help
Hey, sorry to piss you off but I do not know how to do this.


On 22/02/2017 13:11, Arto Pekkanen wrote:
> Please contribute your patch and get it approved and MFC'd by
> maintainers so that other people who are not knowledgeable enough can
> have the thing working without having to figure out how to hack and
> patch the kernel. Thanks.
>
> On 21.2.2017 2:49, Large Hadron Collider wrote:
>> (Apologies if this doesn't line break at 79 chars - full formatting in
>> HTML but this may be lost - shouldn't lose any info though)
>>
>> Good day subscribers to this list.
>>
>> I'm here with what could be described as a success story and a patch in
>> the same e-mail.
>>
>> Please do stop me if WACF00E has already been slated for the next major
>> release - but I would like to share how I got my HP Elitebook 2760p's
>> touchscreen working.
>>
>> So I, a former and now again user of FreeBSD (I got hacked the first
>> time... silly Ellie shouldn't give shells to strangers, should she now?)
>> have a laptop whose screen is touch-capable, and whose touchscreen
>> subsystem is based on a serial Wacom tablet.
>>
>> It worked under Linux and too I presume Windows (with which the laptop
>> shipped), but not FreeBSD. I thought, what was going on? What was I
>> doing wrong? So after some poking around I discovered that the screen is
>> a WACF00E - not supported in 11.0-RELEASE-p1 by the driver that handles
>> the UART.
>>
>> It showed
>>
>>      unknown pnpinfo _HID=WACF00E _UID=0 at handle=\_SB_.PCI0.LPCB.SIO_.DIGI
>>
>> as the devinfo line.
>>
>> Intriguingly, there was this line in uart_bus_acpi.c:static struct
>> isa_pnp_id acpi_ns8250_ids[]:
>>
>>      {0x04f0235c, "Wacom Tablet PC Screen"},         /* WACF004 */
>>
>> So I thought what the hell, I'd copy that line under itself and change
>> 04f0 (which is byte-swapped, counterintuitively) to 0ef0, representing
>> WACF00E.
>>
>> Adding this:
>>
>>      {0x0ef0235c, "Wacom Tablet PC Screen 00e"}, /* WACF00e */
>>
>> to uart_bus_acpi.c and this:
>>
>>      {0x0ef0235c, NULL},     /* WACF004 - Wacom Tablet PC Screen*/
>>
>> (Yes it should read WACF00E in the comment) under the WACF004 entry in
>> uart_bus_isa.c, then recompiling and installing in whatever way your
>> configuration might demand seems to make the kernel detect the tablet as
>> a UART.
>>
>> So it detected it, and the dev file was /dev/cuau4, for uart4, the
>> WACF00E (it was ttyS4 under Linux).
>>
>> Great. X didn't detect it on its own, but that let me debug it using
>> Minicom, which I promptly installed.
>>
>> After telling Minicom to use /dev/cuau4 as the modem, and telling it to
>> use 38400 8N1, touches to the screen resulted in what can only be
>> described as euphoric garbage, indicating that this ugly hack on top of
>> hack alert worked.
>>
>> So I set up /usr/local/etc/X11/xorg.conf.d/wacom.conf to include
>> (slightly amended from my actual setup, which only has ISDV4 in the
>> stylus but still works for touch, haven't tested for stylus):
>>
>> Section "InputDevice"
>>      Identifier    "wacom stylus"
>>      Driver        "wacom"
>>      Option        "Type"            "stylus"
>>      Option        "Device"        "/dev/cuau4"
>>      Option        "ForceDevice"        "ISDV4"
>>      Option          "AutoServerLayout"    "true"
>> EndSection
>>
>> Section "InputDevice"
>>      Identifier    "wacom eraser"
>>      Driver        "wacom"
>>      Option        "Type"            "eraser"
>>      Option        "Device"        "/dev/cuau4"
>>      Option        "ForceDevice"        "ISDV4"
>>      Option          "AutoServerLayout"    "true"
>> EndSection
>>
>> Section "InputDevice"
>>      Identifier    "wacom touch"
>>      Driver        "wacom"
>>      Option        "Type"            "touch"
>>      Option        "Touch"            "on"
>>      Option        "Device"        "/dev/cuau4"
>>      Option        "ForceDevice"        "ISDV4"
>>      Option          "AutoServerLayout"    "true"
>> EndSection
>>
>> Restarted X, and after
>>
>>      % xsetwacom set "wacom touch" Touch on
>>
>> (I didn't initially have Touch on in the options list for "wacom touch")
>> it was almost like striking platinum in a gold mine or something when
>> the mouse just followed my finger the way I was used to it doing so
>> under Linux.
>>
>> To those of you who say that FreeBSD will never be ready for the
>> desktop, you're only right when you're talking to newbs. And this is
>> living proof that if you know some C and you're intrepid enough,
>> miracles really can happen.
>>
>> _______________________________________________
>> freebsd-hardware@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-hardware
>> To unsubscribe, send any mail to "freebsd-hardware-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c7ecd84b-e367-8a8f-e42a-e9a3e141d227>