펌웨어가 포함된 커널을 다시 컴파일합니다.

펌웨어가 포함된 커널을 다시 컴파일합니다.

커널을 다시 컴파일하는 방법은 무엇입니까? 이 가이드를 시험해 보고 있어요https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel.

저는 태블릿에서 lubuntu 18.04를 사용하고 있으며 터치스크린을 활성화할 사용자 정의 커널을 원합니다.

다음은 에서 발췌한 것입니다.https://github.com/onitake/gsl-firmware#silead_tsisilead_dmi.c(에서 drivers/platform/x86/silead_dmi.c) 맞춤형 제품을 만들고 silead_ts.fw여기에서 찾은 펌웨어를 참조했습니다.https://github.com/onitake/gsl-firmware/tree/master/firmware/trekstor/surftab7new(FYI Mediacom W700은 SurfTab wintron 7.0 ST70416-6과 동일합니다.)

나는 800MB 폴더를 사용 apt-get source linux-headers-$(uname -r)하고 얻었습니다 . 거기 에 제가 파일을 만든 경로가 linux-4.15있습니다 .drivers/platform/x86/silead_dmi.cdrivers/platform/x86/silead_dmi.c

내가 사용한 가이드에 따라 118kB 폴더를 apt-get source linux-image-$(uname -r)얻었습니다 . 이제 이것을 사용하면 오류가 발생합니다.linux-signed-4.15.0
fakeroot debian/rules editconfigs

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

이 오류를 수정하고 커널을 다시 컴파일하려면 어떻게 해야 합니까?
거기에서 얻은 폴더에 대한 apt-get source linux-headers-$(uname -r)경로가 있습니까 drivers/platform/x86/silead_dmi.c?
그리고 펌웨어?

https://askubuntu.com/questions/1067640/enable-the-touchscreen-of-a-mediacom-winpad-w700
더 많은 정보를 원하는 사람이 있으면 그곳에서 확인할 수 있습니다.

답변1

silead_ts.fw이 더 이상 사용되지 않는 프로젝트 에 대해https://github.com/onitake/gslx680-acpi.
최소한 사용해야합니다https://github.com/onitake/gsl-firmware/blob/master/firmware/trekstor/surftab7new/firmware.fw, 펌웨어는 이전 프로젝트에 대해 추출되었으며 수정되지 않았습니다.

하지만 이건 꼭 써먹어야 해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파일 에 추가:

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에 추가하는 것입니다:

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

관련 정보