カーネルヘッダーファイルをインストールするにはどうすればよいですか?


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
ヴォラック

87

次のように入力できます:

sudo apt-get install linux-headers-generic

デスクトップにインストールしている場合。apt-getは依存関係を解決し、カーネルヘッダーの正しいバージョンをインストールします。


15
Ubuntuは、新しいバージョンが
リリース

3
またはlinux-headers-virtual、OpenstackインスタンスでVMを実行している場合...
BSchlinker

1
Debian Wheezyで、「パッケージlinux-headers-genericは使用できませんが、別のパッケージによって参照されています。[...] E:パッケージ 'linux-headers-generic'にはインストール候補がありません」
IQAndreas

4
@IQAndreas linux-headers-genericパッケージはUbuntu固有です。Debianでは次を使用する必要がありますsudo apt-get install linux-headers-$(uname -r)
Alexandre Teles

14

これは、次の場合に別の問題をカバーする必要があります。実行中のカーネルが廃止されたため、リポジトリにもヘッダーも存在しなくなった。そのため、リポジトリ内の最新バージョンにカーネルを更新するのが最善です。

linux-genericは、カーネルとそのヘッダーの現在のバージョンを保持するメタパッケージです。

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

注:Ubuntuのエディションに応じて、linux-lowlatency(Ubuntu Studio)linux-signed-genericまたはが必要かどうかを確認してくださいlinux-virtual


1
ドライバーをインストールしようとしたときに、他のソリューションはどれも役に立ちませんでした。ありがとうございます。
ソパラホデアリエレス

1
Debianでほぼ同等が呼び出されるlinux-headers-amd64(AMD64システムのため、明らかに)
hanshenrik

1

または、aptitudeがインストールされている場合: sudo aptitude install linux-headers-$(uname -r)


5
本質的に同じこと。
角度付き

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