web-dev-qa-db-fra.com

Je pense que "/ lib / modules / $ (uname -r) / build" pointe vers un dossier incorrect

Je compile/crée mes propres paquets deb du noyau avec:

make-kpkg --rootcmd fakeroot --initrd --append-to-version=$version --revision=1 kernel_image kernel_headers

Mais lorsque j'installe les deux packages, dans/lib/modules/(* name_kernel_compiled *), il crée deux liens, sources et build, pointant vers le dossier avec les sources, à partir de la compilation.

sources le lien est correct mais build devrait pointer vers/usr/src/linux --- (version kernel), vous ne pensez pas?

5
Juan Simón

La solution est dans la documentation make-kpkg:

Vous pouvez consulter un autre exemple dans le répertoire des exemples: /usr/share/kernel-package/examples/ pour voir s’il existe un autre exemple de script que vous souhaitez cp dans /etc/kernel - et vous pouvez créer vos propres scripts.


Par exemple, si vous utilisez les packages linux-headers-* pour compiler des modules tiers sans avoir à conserver le répertoire des sources, vous serez peut-être intéressé par:

/etc/kernel/header_postinst.d/link
/etc/kernel/header_postrm.d/link
/etc/kernel/header_prerm.d/link
/etc/kernel/postinst.d/force-build-link
/etc/kernel/postrm.d/force-build-link

Ces scripts essaieront de s’assurer que le lien symbolique /lib/modules/$VERSION/build est sain - c’est-à-dire qu’il pointe vers les packages d’en-tête, que vous installiez d’abord les packages d’image ou les packages d’en-tête - et se charge du nettoyage lorsque l’un des fichiers les paquets sont installés.

2
Juan Simón

Le lien symbolique /lib/modules/<version>/build doit pointer vers le répertoire de construction, c’est-à-dire où les fichiers objets ont été placés pendant la construction du noyau. Dans votre cas, votre répertoire source est le même que votre répertoire de construction, les deux liens symboliques renverront au même répertoire.

3
Jeremy Kerr