Jak zainstalować pliki nagłówków jądra?


85

chcę napisać sterownik urządzenia, ale nie mogę znaleźć pliku nagłówka, czy ktoś może pomóc mi go znaleźć? Również jeśli ktoś może wskazać ważne linki do stron, które byłyby bardzo mile widziane

Odpowiedzi:


118

Powinieneś być w stanie zainstalować pliki nagłówkowe jądra dla aktualnie działającego jądra, uruchamiając następujące w terminalu:

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

Ogólnie pakiety nagłówków jądra są nazywane linux-header- *, gdzie „*” oznacza wersję i wariant (ogólny, serwer itp.).


3
hej, dziękuję, ale czy mógłbyś mi powiedzieć, co oznacza rodzaj, serwer itp. oznacza , że chcę pisać (sterownik jądra)
programista

8
To nie zainstaluje automatycznie nagłówków przyszłych aktualizacji i będziesz musiał ponownie uruchomić to polecenie za każdym razem. Dlatego zaleca się zamiast tego zainstalować metapakiet, jak opisano w innej odpowiedzi .
gertvdijk

Uwaga: to nie umieszcza ich w ścieżce dołączania GCC, nadal potrzebujesz -I.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
Uwaga: Aby to zadziałało, odpowiednia deb-srclinia musi znajdować się w /etc/apt/sources.list.
Vorac

87

Możesz po prostu wpisać:

sudo apt-get install linux-headers-generic

jeśli korzystasz z instalacji na pulpicie. Apt-get rozwiąże zależności i zainstaluje poprawną wersję nagłówków jądra.


15
a Ubuntu również je zaktualizuje, gdy pojawi się nowa wersja
Csq

3
Lub linux-headers-virtualjeśli używasz maszyny wirtualnej w instancji Openstack ...
BSchlinker,

1
W Debian Wheezy pojawia się komunikat o błędzie „Pakiet linux-headers-generic nie jest dostępny, ale odnosi się do niego inny pakiet. [...] E: Pakiet„ linux-headers-generic ”nie ma kandydata do instalacji”
IQAndreas

4
@IQAndreas linux-headers-genericpakiet jest specyficzny dla Ubuntu. Na Debianie powinieneś użyćsudo apt-get install linux-headers-$(uname -r)
Alexandre Teles

14

Powinno to obejmować kolejny problem, gdy: działające jądro jest przestarzałe, co oznacza, że ​​nie ma go już w repozytorium ani w jego nagłówkach. Dlatego najlepiej jest zaktualizować jądro do ostatniej wersji w repozytorium.

linux-genericto meta pakiet do przechowywania aktualnej wersji jądra i jego nagłówków :

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

Uwaga: w zależności od wersji Ubuntu sprawdź, czy potrzebujesz linux-lowlatency(Ubuntu Studio), linux-signed-genericlub linux-virtual.


1
Żadne z pozostałych rozwiązań nie działało dla mnie podczas próby instalacji sterownika. Dzięki Ci.
Sopalajo de Arrierez

1
nazywa się prawie odpowiednik linux-headers-amd64
debiana (


-1

te polecenia powinny działać:

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

dla lepszych instrukcji sprawdź ten film

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.