web-dev-qa-db-fra.com

Recompiler le noyau Linux d'Ubuntu 18.04 avec un correctif pour les pilotes d'affichage Intel

J'utilise Ubuntu 18.04 avec le noyau 4.15.0-23-generic générique et j'ai un problème (HDMI ne fonctionne pas à l'occasion).

Il existe déjà un problème connexe: https://bugs.freedesktop.org/show_bug.cgi?id=105887

Et voici le correctif du pilote d’affichage intel comme solution permettant de résoudre le problème: https://patchwork.freedesktop.org/patch/229363/

Je voudrais recompiler mon noyau/pilote d’affichage avec ce correctif et avoir quelques problèmes car je n’ai rien recompilé pour le moment:

Comment obtenir la source exacte du noyau Ubuntu, y compris les pilotes d’affichage intel, pour pouvoir appliquer le correctif ci-dessus? Quelles sont les étapes pour recompiler et installer les pilotes Kernel/Kernel modifiés dans mon système (avec aussi peu de configuration que nécessaire)?


Géré pour obtenir la source du noyau liée à Ubuntu 18.04:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git

Le correctif de https://patchwork.freedesktop.org/patch/229363/ ne peut pas être appliqué - il semble qu'il soit basé sur un noyau différent:

$ git apply --stat V2-drm-i915-glk-Add-Quirk-for-GLK-NUC-HDMI-port-issues..patch
 drivers/gpu/drm/i915/i915_drv.h      |    1 +
 drivers/gpu/drm/i915/intel_ddi.c     |    8 ++++++++
 drivers/gpu/drm/i915/intel_display.c |   19 +++++++++++++++++++
 3 files changed, 28 insertions(+)
gustavo /home/ifischer/src/ubuntu-bionic master [~]
$ git apply --check V2-drm-i915-glk-Add-Quirk-for-GLK-NUC-HDMI-port-issues..patch
error: patch failed: drivers/gpu/drm/i915/intel_ddi.c:1800
error: drivers/gpu/drm/i915/intel_ddi.c: patch does not applygit clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git
2
ifischer

Solution obtenue du rapport de bogue associé: https://bugs.freedesktop.org/show_bug.cgi?id=105887

Installez les packages nécessaires à la compilation du noyau et téléchargez les correctifs du noyau Ubuntu:

Sudo apt install git flex bison bc libssl-dev gawk libudev-dev ocl-icd-opencl-dev libpci-dev libelf-dev python2.7 libncurses-dev fakeroot kernel-wedge binfmt-support ksh lsscsi binfmt-support libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libsepol1-dev libattr1-dev libblkid-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol1-dev uuid-dev debugedit libarchive13 libdw1 liblua5.2-0 liblzo2-2 libnspr4 libnss3 librpm8 librpmbuild8 librpmio8 librpmsign8 rpm rpm-common rpm2cpio spl-dkms

git clone --depth 1 --single-branch --branch v4.17.2 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.17.2

cd v4.17.2
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.2/0001-base-packaging.patch
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.2/0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.2/0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.2/0004-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.2/0005-debian-changelog.patch
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.2/0006-configs-based-on-Ubuntu-4.17.0-3.4.patch

Téléchargez le correctif à partir de https://patchwork.freedesktop.org/patch/229363/ et renommez-le dans i915.patch. Appliquez tous les patchs:

patch -p1 < 0001-base-packaging.patch
patch -p1 < 0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
patch -p1 < 0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
patch -p1 < 0004-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch
patch -p1 < 0005-debian-changelog.patch
patch -p1 < 0006-configs-based-on-Ubuntu-4.17.0-3.4.patch
patch -p1 < i915.patch

Créer une configuration de noyau à partir de la configuration de noyau actuelle:

yes "" | make oldconfig

Désactivez ZFS s'il n'est pas nécessaire:

Définissez do_zfs = false dans debian.master/rules.d/AMD64.mk

Construire le noyau:

make deb-pkg
# find the debian package files first
dpkg -i $KERNEL_DEB_FILES

Les pilotes semblent faire partie des paquets kernel-HEADER, il devrait donc suffire de les installer.

Après avoir installé les paquets Kernel Debian, mettez à jour Grub:

Sudo update-grub

Définissez le nouveau noyau par défaut dans les paramètres Grub et mettez à jour grub à nouveau:

Sudo vim /etc/default/grub

Mes problèmes de HDMI ont disparu maintenant.

3
ifischer