(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
Large Hadron Collider
large.hadron.collider at gmx.com
Thu Feb 23 00:13:58 UTC 2017
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 at freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-hardware
>> To unsubscribe, send any mail to "freebsd-hardware-unsubscribe at freebsd.org"
More information about the freebsd-hardware
mailing list