Recompile um kernel incluindo um firmware

0

Como posso recompilar o kernel? Estou tentando este guia link .

Eu estou usando o lubuntu 18.04 em um tablet, eu quero um kernel personalizado para ativar o touchcreen.

Esta seção foi tirada do link feito um silead_dmi.c personalizado (localizado em drivers/platform/x86/silead_dmi.c ) e isso se refere ao firmware silead_ts.fw que eu encontrei aqui link (FYI O Mediacom W700 é equivalente ao SurfTab wintron 7.0 ST70416-6).

Eu usei apt-get source linux-headers-$(uname -r) e obtive a pasta linux-4.15 de 800 MB. Que tem o caminho drivers/platform/x86/silead_dmi.c em que eu fiz o arquivo drivers/platform/x86/silead_dmi.c .

Seguindo o guia, usei apt-get source linux-image-$(uname -r) e obtive a pasta linux-signed-4.15.0 de 118 kB.
Agora, usando fakeroot debian/rules editconfigs i, recebo um erro:

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

Como posso corrigir esse erro e recompilar o kernel?
E a pasta obtida de apt-get source linux-headers-$(uname -r) que tem o caminho drivers/platform/x86/silead_dmi.c ?
E o firmware?

link
Se alguém quiser mais informações pode verificar lá.

    
por Scorpion 03.09.2018 / 14:44

1 resposta

0

O silead_ts.fw é para este link do projeto preterido.
Você deve usar pelo menos o link , o fimrware somente extraído e não modificado para o projeto antigo.

Mas você deve usar este link , coloque o arquivo em /lib/firmware/silead (crie a pasta silead ). Também fiz uma cópia com o nome mssl1680.fw (firmware de backup).

Agora siga este guia para recompilar o kernel link .
Use apt-cache search ^linux-source para encontrar a fonte do kernel (como explica o guia).

No arquivo silead_dmi.c , adicione:

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"),
    { }
};

E mais importante no suplemento DMI_MATCH:

 {
        /* 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"),
        },
    },
    
por 06.09.2018 / 11:43