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

koder
źródło

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.).

JanC
źródło
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.

Alexandre Teles
źródło
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.

user.dz
źródło
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

Lub jeśli masz zainstalowany aptitude: sudo aptitude install linux-headers-$(uname -r)

użytkownik1527227
źródło
5
Zasadniczo to samo.
angulared
-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

Zen Alex
źródło