重新編譯包含韌體的核心
如何重新編譯核心?我正在嘗試這個指南https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel。
我在平板電腦上使用 lubuntu 18.04,我想要一個自定義核心來啟用觸摸屏。
在本節之後,來自https://github.com/onitake/gsl-firmware#silead_tsi做了一個自定義
silead_dmi.c
(位於drivers/platform/x86/silead_dmi.c
),它指的silead_ts.fw
是我在這裡找到的韌體https://github.com/onitake/gsl -firmware/tree/master/firmware/trekstor/surftab7new(僅供參考,Mediacom W700 相當於 SurfTab wintron 7.0 ST70416-6)。我使用
apt-get source linux-headers-$(uname -r)
並獲得了linux-4.15
800 MB 的文件夾。那有drivers/platform/x86/silead_dmi.c
我製作drivers/platform/x86/silead_dmi.c
文件的路徑。按照我使用的指南
apt-get source linux-image-$(uname -r)
並獲得了linux-signed-4.15.0
118 kB 的文件夾。現在使用
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
如果有人想了解更多資訊,可以在那裡查看。
這
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"), }, },