6

This tablet runs Windows 10 by default, but I installed Lubuntu 18.04. I' m trying to use this question as a guide but my case is different.

An ELAN device is for a touchpad and every command don ' t return anything indeed. The command sudo dmesg | grep i2c returns:

[    3.211266] i2c /dev entries driver
[    3.328881] i2c_designware 80860F41:04: I2C bus managed by PUNIT
[   37.847473] axp20x-i2c i2c-INT33F4:00: AXP20x variant AXP288 found
[   37.872164] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[   37.872202] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[   37.872740] silead_ts i2c-MSSL1680:00: Silead chip ID: 0xB4820000
[   37.928036] axp20x-i2c i2c-INT33F4:00: AXP20X driver loaded
[   38.024519] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2
[   38.024529] silead_ts i2c-MSSL1680:00: Firmware request error -2
[   38.027163] silead_ts: probe of i2c-MSSL1680:00 failed with error -2
[   39.030645] input: axp20x-pek as /devices/platform/80860F41:04/i2c-4/i2c-INT33F4:00/axp221-pek/input/input6

I discovered that the Mediacom drivers are the same as those for TrekStor, a company that also works with Mediacom, and found this wonderful project on github. Mediacom WinpadW700 corresponds at SurfTab wintron 7.0 (ST70416-6).

The project is about tablets and Ubuntu and states:

This repository contains firmware images for the Silead touchscreen controllers in various tablet (and other) devices [. . .]

The firmware files were extracted from Android and Windows device drivers, as published by device manufacturers. They are intended for people who prefer to replace the shipped operating system with a generic Linux distribution such as Debian or Ubuntu.

I think that I should use the silead_ts.fw file (that is the firmware for gslx680-acpi obtained from the firmware.fw that is the firmware extracted from the original drivers).

So the silead_ts.fw firmware is especially designed for my problem. How can I use it? This section from https://github.com/onitake/gsl-firmware#silead_ts should explain how do it:
i must edit the drivers/platform/x86/silead_dmi.c file in the source code. Then recompiling the kernel (with that file), and somewhere add the firmware which i referred in the modified file.

How can i recompile the kernel? I' m trying this guide.

I used apt-get source linux-headers-4.15.0-33-generic and got the linux-4.15 folder of 800 MB. That has the path drivers/platform/x86/silead_dmi.c in which i already made the drivers/platform/x86/silead_dmi.c file. Following the guide i used apt-get source linux-image-$(uname -r) and got the linux-signed-4.15.0 folder of 118 kB.

Now using fakeroot debian/rules editconfigs I get an error:

dh editconfigs
dh: Unknown sequence editconfigs (choose from: binary binary-arch binary-indep build build-arch build-indep clean install install-arch install-indep)
debian/rules:35: recipe for target 'editconfigs' failed
make: *** [editconfigs] Error 2

How can I fix this error and recompile the kernel?

Scorpion
  • 374
  • Hi. I received your link to this question in chat. I hope to have my first tablet running chrome OS with Ubuntu in a Linux Virtual Machine in a few months. Now my touchscreen experience is limited to android phones. – WinEunuuchs2Unix Aug 24 '18 at 12:41
  • Hi. I checked the ubuntu touch page if i have an android phone not listed i can do something? – Scorpion Aug 24 '18 at 18:57
  • I've never used Ubuntu Touch. I've only used a cell phone with Android OS and Touch Screen. I plan on buying a Chromebook that runs Google OS called Chrome. They allow Linux to run on it through a virtual machine. In the virtual machine I plan on installing Ubuntu 16.04 LTS regular edition (not touch). I hope that clears things up. – WinEunuuchs2Unix Aug 24 '18 at 23:03
  • My previous comment is not referred to the question just to be clear. As i said is a WinPad which used to run Windows 10. – Scorpion Aug 28 '18 at 12:46
  • 1
    Usually firmware files have to be placed in /usr/lib/firmware/ – mattia.b89 Sep 01 '18 at 14:13
  • @mattia.b89 I updated the question – Scorpion Sep 01 '18 at 16:46
  • 1
    this may help you: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel – mattia.b89 Sep 01 '18 at 21:30
  • @mattia.b89 i get an error and i have some doubts to how properly recompile the kernel how explained in the updated question – Scorpion Sep 02 '18 at 09:25
  • 1
    Besides using sudo acpidump | grep -C3 ELAN you can try sudo acpidump | grep -C3 -i ELAN to filter on elan and Elan as well. The same holds true for your dmesg | grep elan use dmesg | grep -i elan instead. Also could you include the output from xinput --list in your question? I'd like to see if there is an entry for ELAN Touchscreen id there. – WinEunuuchs2Unix Sep 02 '18 at 21:18
  • @WinEunuuchs2Unix after some time that i' ve done the question i discovered that elan is for the touchpad and i tried every commands that you' ve suggested without any result as i said in the updated question. I also added this link https://wiki.archlinux.org/index.php/Calibrating_Touchscreen#Your_screen maybe using only xinput i can do it? – Scorpion Sep 03 '18 at 08:32
  • @WinEunuuchs2Unix xinput doesn' t detect the touchscreen so i can' t use it to calibrate it – Scorpion Sep 03 '18 at 10:42

1 Answers1

1

The silead_ts.fw is for this deprecated project https://github.com/onitake/gslx680-acpi.
You should use at least the https://github.com/onitake/gsl-firmware/blob/master/firmware/trekstor/surftab7new/firmware.fw, fimrware only extracted and not modified for the old project.

But you must use this https://github.com/onitake/gsl-firmware/blob/master/firmware/linux/silead/gsl1686-surftab-wintron70-st70416-6.fw ,put the file in /lib/firmware/silead(create the folder silead). Also made a copy with the name mssl1680.fw (backup firmware).

Now follow this guide for recompile the kernel https://debian-handbook.info/browse/squeeze/sect.kernel-compilation.html.
Use apt-cache search ^linux-source to find the source for the kernel (as the guide explains).

In the silead_dmi.c file add:

static const struct property_entry mediacom_w700_props[] = {
    PROPERTY_ENTRY_U32("touchscreen-size-x", 884),
    PROPERTY_ENTRY_U32("touchscreen-size-y", 632),
    PROPERTY_ENTRY_STRING("firmware-name",
                  "gsl1686-surftab-wintron70-st70416-6.fw"),
    PROPERTY_ENTRY_U32("silead,max-fingers", 10),
    PROPERTY_ENTRY_BOOL("silead,home-button"),
    { }
};

And most important in the DMI_MATCH add:

 {
        /* Mediacom WinPad 7.0 W700 */
        .driver_data = (void *)&surftab_wintron70_st70416_6_data,
        .matches = {
            DMI_MATCH(DMI_SYS_VENDOR, "MEDIACOM"),
                DMI_MATCH(DMI_PRODUCT_NAME, "WinPad 7 W10 - WPW700"),
        },
    },
Scorpion
  • 374
  • Still camera and speakers not working but with onboard i finally have a complete and good touchscreen. – Scorpion Sep 08 '18 at 12:11
  • Please open a new question for the Camera and speakers with hardware ids and relevant dmesg, and we can all try to help! – G Koe Sep 10 '18 at 22:30
  • I will i also have the microphone, grub menu (black screen but the countdown) and the windows button not working. – Scorpion Sep 12 '18 at 08:28
  • @GKoe https://askubuntu.com/questions/1074574/enable-the-speakers-microphone-and-camera – Scorpion Sep 12 '18 at 10:52
  • I fixed grub menu and righr click is perfect https://askubuntu.com/questions/1084212/onboard-hover-dwell-click-can-t-be-enabled/1088852#1088852. – Scorpion Oct 31 '18 at 10:52