Bagaimana cara saya menginstal file header kernel?

85

saya ingin menulis driver perangkat tetapi tidak dapat menemukan file header dapatkah seseorang tolong bantu saya menemukannya? Juga jika seseorang dapat menunjukkan beberapa tautan situs penting yang akan sangat dihargai

pembuat kode
sumber

Jawaban:

118

Anda harus dapat menginstal file header kernel untuk kernel yang sedang berjalan dengan menjalankan yang berikut ini di terminal:

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

Secara umum, paket header kernel diberi nama linux-header- * di mana "*" menunjukkan versi & varian (generik, server, dll.).

JanC
sumber
3
hai terima kasih tetapi dapatkah Anda memberi tahu saya apa yang generik, server, dll artinya saya ingin menulis (driver kernel)
coder
8
Ini tidak akan menginstal tajuk untuk pembaruan di masa mendatang secara otomatis dan Anda harus menjalankan kembali perintah ini setiap waktu. Karenanya, disarankan untuk menginstal metapackage sebagai gantinya, seperti dijelaskan dalam jawaban lain .
gertvdijk
Catatan: ini tidak menempatkan mereka di jalur sertakan GCC, Anda masih perlu -I.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Catatan: Agar ini berfungsi, baris yang sesuai deb-srcharus ada di /etc/apt/sources.list.
Vorac
87

Anda cukup mengetik:

sudo apt-get install linux-headers-generic

jika Anda berada di instalasi Desktop. Apt-get akan menyelesaikan dependensi dan menginstal versi header kernel yang benar.

Alexandre Teles
sumber
15
dan Ubuntu juga akan memperbarui mereka ketika versi baru keluar
Csq
3
Atau linux-headers-virtualjika Anda menjalankan VM dalam contoh Openstack ...
BSchlinker
1
Dalam Debian Wheezy saya mendapatkan pesan kesalahan "Paket linux-headers-generic tidak tersedia, tetapi disebut oleh paket lain. [...] E: Paket 'linux-header-generic' tidak memiliki calon instalasi"
IQAndreas
4
@IQAndreas linux-headers-genericpaketnya adalah khusus untuk Ubuntu. Pada Debian Anda harus menggunakansudo apt-get install linux-headers-$(uname -r)
Alexandre Teles
14

Ini akan mencakup masalah lain ketika: kernel yang berjalan sudah usang, artinya sudah tidak ada di repositori lagi maupun headernya. Jadi hal terbaik yang harus dilakukan adalah memperbarui kernel ke versi terakhir dalam repositori.

linux-genericadalah paket meta untuk menyimpan versi kernel saat ini & header-nya :

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

Catatan: Bergantung pada edisi Ubuntu Anda, Lihat apakah Anda perlu linux-lowlatency(Ubuntu Studio), linux-signed-genericatau linux-virtual.

user.dz
sumber
1
Tidak ada solusi lain yang berfungsi untuk saya ketika mencoba menginstal driver. Terimakasih.
Sopalajo de Arrierez
1
yang hampir setara untuk debian disebut linux-headers-amd64(untuk sistem amd64, jelas)
hanshenrik
1

Atau jika Anda memiliki aptitude yang diinstal: sudo aptitude install linux-headers-$(uname -r)

pengguna1527227
sumber
5
Intinya hal yang sama.
bersudut
-1

perintah ini harus bekerja:

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

untuk instruksi yang lebih baik, periksa video ini

Zen Alex
sumber