Silead touch screen driver

Hello, I'm using elive on chuwi surface clone and it fits very well. One problem is the touch screen does not work for elive, but works out of the box for lubuntu.

I have added the silead firmware to /lib/firmware/silead but I don't see any attempt to load. This has worked on previous ubuntu installs, though 22.04 does not require the firmware at all.

does anyone know if the kernel has support compiled in or if there may be some other problem?

Hm, do you know what package provides that?

Maybe try isenkram in Elive, it might be able to tell you what packag eit supports.

Also, from this page:

Firmware is sourced from the following places (see udev's /lib/udev/hotplug.functions and /lib/udev/firmware.agent)

  1. /lib/firmware/$(uname -r) - Firmware provided by a package, specific for a kernel.
  2. /lib/firmware/ - Firmware provided by a package, valid for all kernels.
  3. /usr/local/lib/firmware - Location for manually installed firmware.
  4. /usr/lib/hotplug/firmware - Firmware provided by a package, valid for all kernels

So try putting it in another of those directories, or even just not in a subdirectory (i.e. just putting the files in /lib/firmware straight).

Before we jump to premature conclusions, it might be wise to find out which version of Elive @mechtron is using. :thinking:

On a side note:
To activate the firmware the module will have to be loaded.
Meaning "sudo modprobe silead" to test if it works, after which (if successful) it can be added to /etc/modules for the next boot.

1 Like

I am on current elive
Operating System: Elive GNU/Linux (on Debian buster)
Kernel: Linux 5.10.0-0.bpo.8-amd64
Architecture: x86-64

In lubuntu 22.04 there is a silead module loaded
/usr/lib/modules/5.15.0-48-generic/kernel/drivers/input/touchscreen/silead.ko

and the firmware is found in the uefi directory

No module found in Elive, so that is why it does not work.

thanks for the help. I think that touch on surface clone would make elive even better and I'm keen to get it going.

1 Like

You might want to switch over to Elive 3.8.30 Bullseye as it uses the 5.18.0-0 kernel (which does NOT have the silead drivers either, tho)

Sounds like a great idea ..... do keep us posted on your progress. :innocent:

Thanks, how do I switch to 3.8.30?

You can run the Elive installer in "upgrade mode". Be sure to take a backup first, though.

Another idea is to switch to Bullseye by changing the repos. Howto upgrade Elive Beta from Buster to Bullseye Then upgrade the kernel.

This was meant for the period of time before 3.8.30 was cooked and available, i.e testing.

So while this switching does work and is reasonably safe (albeit definitely not "idiot proof") .......

  • The best way, all in all is a totally fresh install (or an upgrade using the .iso) to see what's there and what/how it works.
    There's a lot of scripts, refinements, package choices and settings that are different to the Buster version which, in the case of switching repos, will not get installed or set-up correctly.

OTOH this switching repos is a sure-fire way of keeping your current installation 100% "as is". :innocent:

I did a clean install of 3.8.30 and had a crack at compiling the silead module from GitHub - sigboe/gslX68X: Kernel space driver for Silead touch screen digitizers.
It compiled ok and installs. lsmod shows it installed, but no mention of loading the firmware and the touch does not work.
The module is about 20k in size, compared to 25k for the ubuntu module, so I'm guessing the source comes from somewhere else.

I'm getting somewhere with the source from https://raw.githubusercontent.com/torvalds/linux/master/drivers/input/touchscreen/silead.c
I now have touchscreen!

2 Likes

the chuwi firmware gsl1680-chuwi-hi10plus.fw needs to be renamed mssl0017.fw as the driver can't read the EUFI partition for autoloading.

Also needs a calbration rule:

$ cat /etc/udev/rules.d/50-touchscreen.rules
DRIVERS=="silead_ts" ENV{LIBINPUT_CALIBRATION_MATRIX}="2.15 0 0 -0.04 3.25 0 0 0 0"
#                                                       xH +H     +V   xV

and everything works!

thanks to: Working Touchscreen infos for Chuwi Hi10Plus · Issue #20 · danielotero/linux-on-hi10 · GitHub

2 Likes

Great work @mechtron , thank you. :cheerleader: :smiley14: :cheerleader:

E16 & touch screen works very well together