Résumé
Vous souhaiterez probablement installer le package appelé linux-headers-generic
.
Si l'exécution uname -r
vous donne autre chose generic
qu'après le numéro de version, remplacez-le par generic
dans linux-headers-generic
. (Cela peut être sur server
ou generic-pae
sur certaines installations de certaines versions d'Ubuntu, et il existe quelques autres "saveurs" occasionnelles du noyau.)
Étant donné que vous en avez probablement besoin pour pouvoir créer un pilote (qui pourrait être automatisé, vous ne pourrez peut-être pas le "construire vous-même"), c'est une bonne idée de l'installer build-essential
aussi pour le faire, vous aurez donc probablement tous les outils nécessaires .
Explication complète
À ma connaissance, aucun système d'exploitation n'a de package appelé Linux-kernel-devel
. C'est pour deux raisons:
- Les noms de packages commençant par des majuscules sont extrêmement rares, pour tout système d'exploitation de type Unix.
- Les systèmes d'exploitation GNU / Linux nomment généralement leurs packages liés au noyau de sorte que les noms contiennent le mot noyau ou le mot linux , mais pas les deux. (Sur Ubuntu, c'est le mot linux .)
Il est courant que les packages liés au noyau sur les systèmes qui utilisent Red Hat Package Manager ( rpm
) et les utilitaires associés aient kernel
le nom de leurs packages. Par exemple, Mageia a un certain nombre de packages dont les noms commencent par kernel
et finissent par devel
. Ces packages fournissent presque toujours (sur Mageia et tout système d'exploitation qui en dispose) les fichiers d'en-tête nécessaires pour créer des pilotes à partir des sources à utiliser avec le noyau. Ils peuvent également fournir des utilitaires connexes pour faciliter. Ces packages:
- ne fournissez pas le code source complet du noyau. Cela est fourni par d'autres packages.
- ne fournissent pas de noyau pré-compilé et utilisable. Cela est fourni par d'autres packages.
- ne fournissez pas de compilateur ni la plupart des autres outils de création à des fins spécifiques. Celles-ci sont également fournies par d'autres packages.
Dans Ubuntu, comme on peut le voir dans la liste ici , les packages qui fournissent les en-têtes du noyau ont des noms commençant par linux-headers
. Généralement, le package correct à installer est linux-headers-generic
. Cependant, pour être sûr du package à installer pour obtenir des en-têtes correspondant à votre noyau en cours d'exécution, exécutez:
uname -r
Vous obtiendrez une sortie qui ressemble à quelque chose comme:
3.5.0-36-generic
Autrement dit, vous aurez un numéro de version (qui comprendra des .
caractères et généralement au moins un -
), suivi d'un -
, suivi d'un ou plusieurs mots indiquant le type de noyau que vous utilisez.
Si vous souhaitez simplement que les en-têtes de la version spécifique que vous exécutez actuellement, vous pouvez installer le package dont le nom est linux-headers-*
où *
est remplacé par la sortie complète de uname -r
. Par exemple, sur mon système, je pourrais exécuter:
sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic
Je pourrais même l'automatiser:
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
Ces approches sont équivalentes, mais elles ne sont généralement pas la meilleure voie à suivre.
Au lieu de cela, vous souhaiterez généralement installer le métapaquet qui fournit toujours les en-têtes de noyau les plus récents en tant que mise à jour (en fonction en permanence du package d'en-tête le plus récent). Cela est parallèle à la façon dont votre noyau compilé et en cours d'exécution est installé et mis à jour. Pour ce faire, regardez juste la partie de uname -r
la sortie de après le numéro de version. Autrement dit, si cela uname -r
vous donne 3.5.0-36-generic
, prenez juste la generic
partie.
Installez ensuite le package appelé linux-headers-*
where *
est remplacé par cette partie. Donc, sur mon système, ce serait linux-headers-generic
et une façon de l'installer serait d'exécuter:
sudo apt-get update && sudo apt-get install linux-headers-generic
Pour la plupart des gens , il est linux-headers-generic
, mais en fonction de ce que vous fermiez Ubuntu vous utilisez, ce que l' architecture et le type d'appareil que vous utilisez sur, et comment il est installé et configuré, d' autres possibilités comprennent generic-pae
, highbank
, omap
, server
et virtual
.
Forfaits associés
Les fichiers d'en-tête facilitent le développement et la compilation / construction d'un logiciel qui utilise les fonctionnalités fournies par le logiciel dont les fichiers d'en-tête sont utilisés. La raison la plus courante pour laquelle vous pourriez avoir besoin des en-têtes du noyau est si vous allez construire un pilote (un module du noyau) à partir du code source. Certaines applications, comme VMware et VirtualBox, en auront parfois besoin et automatiseront elles-mêmes la construction.
En plus des fichiers d'en-tête, pour construire un logiciel, un compilateur et d'autres outils sont nécessaires. Pour maximiser la probabilité que vous ayez les outils nécessaires, c'est également une bonne idée d'installer le build-essential
package.
Il est rare que quiconque ait besoin du code source complet du noyau (sauf, bien sûr, si vous prévoyez de construire votre noyau à partir des sources). Mais si vous en avez besoin, vous devrez également installer un autre package. Dans Ubuntu, le package du code source complet du noyau est appelé linux-source
. (Cela est conforme à la convention Debian / Ubuntu de nommer les paquets qui fournissent des parties substantielles du noyau Linux linux
plutôt que kernel
.)
Si vous avez toujours des problèmes
Si vous essayez d'installer l'un de ces packages mais rencontrez des problèmes et que vous souhaitez de l'aide, vous devrez inclure le texte complet et exact du terminal, y compris les lignes où vous avez tapé les commandes. La meilleure façon d'y parvenir est de modifier votre question, mais si elle est trop longue, vous pouvez la coller quelque part comme http://paste.ubuntu.com et nous fournir l'URL où nous pouvons y accéder.
Si vous commentez cette question, je serai informé. Vous pouvez modifier votre question et également commenter ici pour attirer l'attention sur les informations que vous avez fournies dans votre question. (Les informations importantes sont mieux conservées dans les questions et réponses.) Bonne chance!