커널 헤더 파일을 어떻게 설치합니까?


85

장치 드라이버를 작성하고 싶지만 헤더 파일을 찾을 수 없어 누군가 나를 찾을 수 있도록 도와 줄 수 있습니까? 누군가가 정말로 감사할만한 중요한 사이트 링크를 지적 할 수 있다면

답변:


118

터미널에서 다음을 실행하여 현재 실행중인 커널에 대한 커널 헤더 파일을 설치할 수 있어야합니다.

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

일반적으로 커널 헤더 패키지의 이름은 linux-header- *입니다. 여기서 "*"는 버전 및 변형 (일반, 서버 등)을 나타냅니다.


3
감사 헤이하지만 당신은 무엇을 말해 줄 수 , 일반, 서버 등은 내가 (커널 드라이버)를 작성하는 것을 의미합니다
코더

8
향후 업데이트를 위해 헤더가 자동으로 설치되지 않으므로 매번이 명령을 다시 실행해야합니다. 따라서 다른 답변에 설명 된대로 대신 메타 패키지를 설치하는 것이 좋습니다 .
gertvdijk

참고 : GCC 포함 경로에 넣지는 않지만 여전히 필요합니다 -I.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
참고 :이 작업을 수행하려면에 해당 deb-src라인이 있어야합니다 /etc/apt/sources.list.
Vorac

87

다음과 같이 입력하면됩니다 :

sudo apt-get install linux-headers-generic

데스크탑 설치 인 경우. apt-get은 종속성을 해결하고 올바른 버전의 커널 헤더를 설치합니다.


15
그리고 Ubuntu는 새 버전이 나오면 업데이트합니다
Csq

3
또는 linux-headers-virtual당신은 OpenStack은 인스턴스에서 VM을 실행하는 경우 ...
BSchlinker

1
데비안 위지에서 나는 오류 메시지가 얻을 "패키지 리눅스 헤더 제네릭을 사용할 수없는,하지만 다른 패키지가 참조하는 [...] E :. 패키지 '리눅스 헤더 제네릭은'더 설치 후보가 없습니다"
IQAndreas

4
@IQAndreas linux-headers-generic패키지는 우분투 전용입니다. 데비안에서는 다음을 사용해야합니다sudo apt-get install linux-headers-$(uname -r)
Alexandre Teles

14

이것은 실행중인 커널이 더 이상 사용되지 않아서 더 이상 헤더에 있거나 저장소에 있지 않음을 의미합니다. 따라서 가장 좋은 방법은 커널을 저장소의 마지막 버전으로 업데이트하는 것입니다.

linux-generic커널과 헤더 의 현재 버전을 유지하는 메타 패키지입니다 .

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

당신이 필요로하는 경우를 참조하십시오, 우분투 버전에 따라 다음 주 linux-lowlatency(우분투 스튜디오), linux-signed-generic또는 linux-virtual.


1
드라이버를 설치하려고 할 때 다른 솔루션으로는 효과가 없었습니다. 감사합니다.
Sopalajo de Arrierez

1
데비안과 거의 비슷한 이름을 사용합니다 linux-headers-amd64(
md64


-1

이러한 명령은 작동해야합니다.

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

비디오 를 더 잘 확인하려면

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.