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>