Come installo i file header del kernel?


85

voglio scrivere un driver di dispositivo ma non riesco a trovare il file di intestazione qualcuno può aiutarmi a trovarli? Inoltre, se qualcuno può indicare alcuni importanti collegamenti al sito che sarebbero davvero apprezzati

Risposte:


118

Dovresti essere in grado di installare i file di intestazione del kernel per il kernel attualmente in esecuzione eseguendo quanto segue in un terminale:

sudo apt-get install linux-headers-$(uname -r)

In generale, i pacchetti di intestazione del kernel sono chiamati linux-header- * dove "*" indica la versione e la variante (generica, server, ecc.).


3
hey grazie ma potreste dirmi che cosa generica, del server, ecc significa che voglio scrivere (driver del kernel)
coder

8
Questo non installerà automaticamente le intestazioni per futuri aggiornamenti e dovrai eseguire nuovamente questo comando ogni volta. Pertanto, si consiglia di installare il metapacchetto, come descritto in un'altra risposta .
gertvdijk,

Nota: questo non li inserisce nel percorso di inclusione GCC, è ancora necessario -I.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
Nota: affinché funzioni, deb-srcdeve essere presente la riga appropriata /etc/apt/sources.list.
Vorac,

87

Puoi semplicemente digitare:

sudo apt-get install linux-headers-generic

se si utilizza un'installazione desktop. Apt-get risolverà le dipendenze e installerà la versione corretta delle intestazioni del kernel.


15
e Ubuntu li aggiornerà anche quando uscirà una nuova versione
Csq

3
O linux-headers-virtualse stai eseguendo una VM in un'istanza di Openstack ...
BSchlinker,

1
In Debian Wheezy ricevo il messaggio di errore "Il pacchetto linux-headers-generic non è disponibile, ma è indicato da un altro pacchetto. [...] E: Il pacchetto 'linux-headers-generic' non ha un candidato all'installazione"
IQAndreas

4
@IQAndreas il linux-headers-genericpacchetto è specifico di Ubuntu. Su Debian dovresti usaresudo apt-get install linux-headers-$(uname -r)
Alexandre Teles il

14

Questo dovrebbe coprire un altro problema quando: il kernel in esecuzione è obsoleto, nel senso che non è più nel repository né nelle sue intestazioni. Quindi la cosa migliore da fare è aggiornare il kernel all'ultima versione nel repository.

linux-genericè un meta pacchetto per mantenere l'attuale versione del kernel e le sue intestazioni :

sudo apt-get update
sudo apt-get install linux-generic

Nota: a seconda della versione di Ubuntu, vedere se è necessario linux-lowlatency(Ubuntu Studio) linux-signed-generico linux-virtual.


1
Nessuna delle altre soluzioni ha funzionato per me durante il tentativo di installare un driver. Grazie.
Sopalajo de Arrierez,

1
un quasi equivalente per debian è chiamato linux-headers-amd64(per i sistemi amd64, ovviamente)
hanshenrik

1

O se hai installato aptitude: sudo aptitude install linux-headers-$(uname -r)


5
Essenzialmente la stessa cosa.
angulared

-1

questi comandi dovrebbero funzionare:

sudo apt-get dist-upgrade -y
systemctl reboot
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get upgrade linux-headers-$(uname -r)

per una migliore istruzione, controlla questo video

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.