Any Lumina users with touch screen monitor?


#1

Heya folks, I was watching 210 episode of BSDnow, where Allan and Dominick explain some progress in touch screen drivers beeing developed for FreeBSD. I remember they talked about some tweaks needed to make touch work. Reason why I’m interested is because I received Dell Inspiron One Intel i3 computer with integrated touch screen to do Windows reinstall and I have about a month before customer returns, so I have some time to play with it.

Now I remember topic discussed was for FreeBSD (12-CURRENT, might work on 11), but I’d prefer to go TrueOS style, because it is so much easyer for me to install it.

Any feedback on how to tackle this would be kindly appreciated.

Edit:
This is the article


#2

I know the TrueOS devs are pulling from DRM-NEXT, have you tried touching the screen?


#3

Still copying stuff from disk, but I have latest unstable on my usb stick :sunny:


#4

Install, ATI drivers and update all work ok. I had some hickups during install, since after reboot all i got is blinking _ cursor in top left corner. I went to bios to see if there are any settings regarding uefi and legacy mode and there is nothing in that regard. So I repeated install with GPT option in advanced disk configuration menu. After that change system started as expected. Looks like this must be one of the early i3 hw.

Just to recap what needs to be done to enable multitouch:

1. Apply patch [1]
2. To compile this driver into the kernel, place the following lines 
into your kernel configuration file:
       device wmt
       device usb
       device evdev
    Alternatively, to load the driver as a module at boot time, place the 
following line in loader.conf(5):
       wmt_load="YES"
3. Install x11-drivers/xf86-input-evdev or 
x11-drivers/xf86-input-libinput port
4. Tell XOrg to use evdev or libinput driver for the device:

Section "ServerLayout"
     ....
     InputDevice    "TouchScreen0" "SendCoreEvents"
EndSection


Section "InputDevice"
     Identifier  "TouchScreen0"
     Driver      "evdev"
#   Driver      "libinput"
     Option      "Device" "/dev/input/eventXXX"
EndSection

Exact value of "/dev/input/eventXXX" can be obtained with evemu-record 
utility from devel/evemu.

But I’m already stuck at step one, how do I apply patch? Looks like I need to recompile kernel as well?

kldload wmt
kldload: can't load wmt: No such file or directory

Best way to update with a custom kernel/base
#5

Here is pci list of this machine, how do I identify touchscreen?

00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 18)
00:01.0 PCI bridge: Intel Corporation Core Processor PCI Express x16 Root Port (rev 18)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation HM57 Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430/5450/5470]
11:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
12:00.0 Network controller: Broadcom Limited BCM4313 802.11bgn Wireless Network Adapter (rev 01)

#6

this with a quick look through


#7

Found it in dmesg output:

uhid0: <Quantamaging OpticalTouchScreen, class 0/0, rev 1.10/0.04, addr 4> on usbus0

Looking dmesg I also see:

acpi_video0: <ACPI video extension> on vgapci0
ACPI BIOS Error (bug): \134_SB.PCI0.P0P1.VGA._DOS: Insufficient arguments - ASL declared 0, ACPI requires 1 (20170728/nsarguments-301)

Followed by:

hid_get_item: Number of items(963) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
[drm] Initialized
[drm] radeon kernel modesetting enabled.
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] initializing kernel modesetting (CEDAR 0x1002:0x68E0 0x1028:0x0478 0x00).
[drm] register mmio base: 0xFE620000
[drm] register mmio size: 131072
ATOM BIOS: Park
drmn0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
drmn0: GTT: 1024M 0x0000000040000000 - 0x000000007FFFFFFF
Failed to add WC MTRR for [0xc0000000-0xcfffffff]: -22; performance may suffer
[drm] Detected VRAM RAM=1024M, BAR=256M
[drm] RAM width 64bits DDR
Zone  kernel: Available graphics memory: 2009530 kiB
[TTM] Initializing pool allocator
[drm] radeon: 1024M of VRAM memory ready
[drm] radeon: 1024M of GTT memory ready.
[drm] Loading CEDAR Microcode
radeon/CEDAR_pfp.bin: could not load firmware image, error 2
radeon/CEDAR_pfp.bin: could not load firmware image, error 2
radeon/CEDAR_me.bin: could not load firmware image, error 2
re0: link state changed to UP
radeon/CEDAR_me.bin: could not load firmware image, error 2
radeon/CEDAR_rlc.bin: could not load firmware image, error 2
radeon/CEDAR_rlc.bin: could not load firmware image, error 2
radeon/CEDAR_smc.bin: could not load firmware image, error 2
radeon/CEDAR_smc.bin: could not load firmware image, error 2
drmn0: failed to load firmware image radeon_CEDAR_smc_bin
smc: error loading firmware "radeon/CEDAR_smc.bin"
[drm] Internal thermal controller with fan control
[drm] radeon: power management initialized
radeon/CYPRESS_uvd.bin: could not load firmware image, error 2
radeon/CYPRESS_uvd.bin: could not load firmware image, error 2
drmn0: failed to load firmware image radeon_CYPRESS_uvd_bin
drmn0: radeon_uvd: Can't load firmware "radeon/CYPRESS_uvd.bin"
drmn0: failed UVD (-2) init.
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[drm] PCIE GART of 1024M enabled (table at 0x0000000000040000).
drmn0: WB enabled
drmn0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0x0xfffff8003a10fc00
drmn0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0x0xfffff8003a10fc0c
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
drmn0: radeon: MSI limited to 32-bit
[drm] radeon: irq initialized.
[drm] ring test on 0 succeeded in 1 usecs
[drm] ring test on 3 succeeded in 1 usecs
[drm] ib test on ring 0 succeeded in 0 usecs
[drm] ib test on ring 3 succeeded in 0 usecs
[drm] Connector LVDS-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.LVDS-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector HDMI-A-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector VGA-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.VGA-1
[drm]   - kern.vt.fb.default_mode
[drm] radeon atom DIG backlight initialized
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm]   LVDS-1
[drm]   Encoders:
[drm]     LCD1: INTERNAL_UNIPHY
[drm] Connector 1:
[drm]   HDMI-A-1
[drm]   HPD2
[drm]   DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448 0x644c 0x644c
[drm]   Encoders:
[drm]     DFP1: INTERNAL_UNIPHY1
[drm] Connector 2:
[drm]   VGA-1
[drm]   DDC: 0x6460 0x6460 0x6464 0x6464 0x6468 0x6468 0x646c 0x646c
[drm]   Encoders:
[drm]     CRT1: INTERNAL_KLDSCP_DAC1
[drm] fb mappable at 0xC0241000
[drm] vram apper at 0xC0000000
[drm] size 8294400
[drm] fb depth is 24
[drm]    pitch is 7680
VT: Replacing driver "vga" with new "fb".
start FB_INFO:
type=11 height=1080 width=1920 depth=32
cmsize=16 size=8294400
pbase=0xc0241000 vbase=0xfffff800c0241000
name=drmn0 flags=0x0 stride=7680 bpp=32
cmap[0]=0 cmap[1]=7f0000 cmap[2]=7f00 cmap[3]=c4a000
end FB_INFO
drmn0: fb0: radeondrmfb frame buffer device
[drm] Initialized radeon 2.48.0 20080528 for drmn on minor 0
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(963) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
hid_get_item: Number of items(963) truncated to 255
hid_get_item: Number of items(1023) truncated to 255
uhid0 on uhub2
uhid0: <Quantamaging OpticalTouchScreen, class 0/0, rev 1.10/0.04, addr 4> on usbus0

ATi driver: regression since FreeBSD 11?
#8

Since I have no idea how to recompile TrueOS kernel, I installed FreeBSD-CURRENT, just to see if I can follow instructions to get this touchscreen to work. I recompiled kernel to FreeBSD 12.0-CURRENT #0 r324406 and added wmt_load=“YES” to /boot/loader.conf and tweaked /etc/X11/xorg.conf

Now I’m stuck at figuring out how to get “Device” "/dev/input/eventXXX"
I have installed devel/evemu:

% sudo evemu-record /dev/uhid0 > device.txt
error: this device is grabbed and I cannot record events
see the evemu-record man page for more information

Looking at man page I see:

The following command shows the processes with an open file descriptor
       on the device.

           fuser -v /dev/input/eventX

But if I run this command:

% sudo fuser -v /dev/input/eventX
fuser: illegal option -- v
usage: fuser [-cfhkmu] [-M core] [-N system] [-s signal] file ...

I have “disabled” X by dropping to init 1 to see if evemu-record works without X running, but the error is the same: this device is grabbed and I cannot record events


#9

I will continue this thread in FreeBSD forums, because I switched to FreeBSD 12-CURRENT


#10