커널을 다시 컴파일하는 방법은 무엇입니까? 이 가이드를 시험해 보고 있어요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.c
drivers/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"),
},
},