首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用Mediacom WinPad W700的触摸屏

启用Mediacom WinPad W700的触摸屏
EN

Ask Ubuntu用户
提问于 2018-08-21 21:01:28
回答 1查看 4.4K关注 0票数 6

该平板电脑默认运行Windows 10,但我安装了Lubuntu18.04。我试图用问题作为指导,但我的情况不一样。

ELAN设备是用于触摸屏的,每个命令都不返回任何东西。命令sudo dmesg | grep i2c返回:

代码语言:javascript
复制
[    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

我发现,Mediacom驱动程序与TrekStor的驱动程序相同,该公司也与Mediacom合作,并在github上发现了出色的项目。Mediacom WinpadW700对应于SurfTab Wintron7.0( at 70416-6).

该项目是关于平板电脑和Ubuntu的,并指出:

这个存储库包含Silead触摸屏控制器在各种平板(和其他)设备中的固件映像( ... )固件文件是从安卓和Windows设备驱动程序中提取出来的,由设备制造商发布。它们是为那些希望用通用Linux发行版(如Debian或Ubuntu )来替换附带操作系统的人而设计的。

我认为我应该使用silead_ts.fw文件(即从firmware.fw获取的gslx680-acpi固件,即从原始驱动程序中提取的固件)。

所以silead_ts.fw固件是针对我的问题而设计的。我该怎么用呢?https://github.com/onitake/gsl-firmware#silead_ts的这一节应该解释如何做到这一点:

我必须在源代码中编辑drivers/platform/x86/silead_dmi.c文件。然后重新编译内核(使用该文件),并在某个地方添加我在修改后的文件中提到的固件。

如何重新编译内核?我正在尝试指南。

我使用了apt-get source linux-headers-4.15.0-33-generic,得到了800 MB的linux-4.15文件夹。它有路径drivers/platform/x86/silead_dmi.c,我已经在其中生成了drivers/platform/x86/silead_dmi.c文件。按照指南,我使用了apt-get source linux-image-$(uname -r),得到了118 kB的linux-signed-4.15.0文件夹。

现在使用fakeroot debian/rules editconfigs,我得到了一个错误:

代码语言:javascript
复制
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

如何修复此错误并重新编译内核?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-09-06 09:58:38

silead_ts.fw用于这个不受欢迎的项目https://github.com/onitake/gslx680-acpi

您至少应该使用https://github.com/onitake/gsl-firmware/blob/master/firmware/trekstor/surftab7new/firmware.fw,fimrware只针对旧项目提取而不是修改。

但是您必须使用这个https://github.com/onitake/gsl-firmware/blob/master/firmware/linux/silead/gsl1686-surftab-wintron70-st70416-6.fw,将文件放入/lib/firmware/silead(创建文件夹silead)。还制作了一个名为mssl1680.fw (备份固件)的副本。

现在,按照本指南重新编译内核https://debian-handbook.info/browse/squeeze/sect.kernel-compilation.html

使用apt-cache search ^linux-source查找内核的源代码(如指南所解释)。

silead_dmi.c文件中添加:

代码语言:javascript
复制
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"),
    { }
};

在DMI_MATCH中最重要的是添加:

代码语言:javascript
复制
 {
        /* 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"),
        },
    },
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1067640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档