Get Touchscreen eGalaxy Touch working

Hey @Farzad
Which version of balenaOS are you using?

In addition is there any logs in dmesg that might reveal more information?

BalenaOS:
balenaOS 2.29.0+rev1

dmesg logs,

[  163.380265] tegradc 15210000.nvdisplay: blank - normal
[  163.519744] tegradc 15210000.nvdisplay: unblank
[  163.546538] tegradc 15210000.nvdisplay: unblank

Hi @CameronDiver ,
Jordan mentioned you were working on this issue. I am wondering if you have any progress.
This is really blocking our integration with Balena

Cheers

@Farzad could you tell us what happens if you run xinput_calibrator --list?

Also, is that all you see in dmesg? If you look at the OP there should be something along the lines of:

[160095.551950] input: eGalax Inc. Touch as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0EEF:0001.0003/input/input6

But the more you can post the better.

Hi @pcarranzav,

Iā€™m on the same project as @Farzad.
xinput_calibrator --list returns:

Error: No calibratable devices found.

However, Iā€™ve managed to install drivers from eGalaxy and now our dmesg does show the touchscreen being connected:

[   11.395695] usb 1-2: new full-speed USB device number 2 using xhci-tegra
[   11.489967] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[   11.528652] usb 1-2: feature bit otg_vbus_off set
[   11.533389] usb 1-2: New USB device found, idVendor=0eef, idProduct=c000
[   11.540129] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   11.547295] usb 1-2: Product: eGalaxTouch EXC3000-3619-49.00.00
[   11.553259] usb 1-2: Manufacturer: eGalax Inc.
[   11.558307] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work mailbox command 6
[   11.580396] input: eGalax Inc. eGalaxTouch EXC3000-3619-49.00.00 as /devices/3530000.xhci/usb1/1-2/1-2:1.0/0003:0EEF:C000.0001/input/input4
[   11.593146] hid-multitouch 0003:0EEF:C000.0001: input,hidraw0: USB HID v2.10 Pointer [eGalax Inc. eGalaxTouch EXC3000-3619-49.00.00] on usb-3530000.xhci-2/input0

However, the touchscreen still does not appear in xinput --list. Any idea whatā€™s going on?

Thanks,
Jin

@Jin, in case this helps, something to double check is that the X server was successfully started before running the xinput and xinput_calibrator commands. Are you starting the X server with startx or some other similar command? In another thread (link below), another user reported their issue was that they were trying to run xinput before startx, rather than the other way around. The following worked for them:

# Start application
startx /usr/src/app/node_modules/electron/dist/electron /usr/src/app --enable-logging
# Wait for X to come up
sleep 3
# Rotate display and touchscreen
xrandr -o right  # this is for screen rotation, probably doesn't apply to you
xinput ...

Related posts:

@pdcastro Thank you for the suggestion, but Iā€™ve got it working now.

We found that the balena image we based our image on (balenalib/jetson-tx2-ubuntu:xenial) did not contain the right driver for the eGalaxy touchscreen at the time of this writing. So to get it working I had to manually build this driver from linux master into a kernel module using this balena sample project and load it when starting up the container. I also made sure to set ENV UDEV 1 in our Dockerfile as well.

@Jin, glad to hear it, and many thanks for sharing your solution here! It will help anyone else who comes across this issue. Iā€™ll also check with the OS team if they think that this driver should be included in the image by default.

@pdcastro Hey, just want to give another update. Turns out we didnā€™t need the eGalaxy touchscreen drivers after all. All we needed to do was to set ENV UDEV 1, and install xserver packages:

RUN apt-get update && apt-get install -y --no-install-recommends \
    xserver-xorg-legacy \
    xserver-xorg-core \
    xserver-xorg-input-all \
    xserver-xorg-video-fbdev \
    xserver-xorg-input-evdev \
    xorg \
    xinput \
    x11-apps \
    matchbox-window-manager \
    xinit \
    && rm -rf /var/lib/apt/lists/*

as well as carrier board drivers. It makes sense, since the driver is already part of Linux core kernel.

1 Like