Як встановити файли заголовків ядра?


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якщо ваш запуск VM в екземплярі Openstack ...
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)
Олександр Телес

14

Це має охопити ще одну проблему, коли: запущене ядро ​​застаріле, тобто більше не знаходиться у сховищі, ані його заголовки. Тож найкраще зробити - оновити ядро ​​до останньої версії в сховищі.

linux-genericце мета-пакет для збереження поточної версії ядра та його заголовків :

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

Примітка. Залежно від версії Ubuntu, перегляньте, чи потрібно linux-lowlatency(Ubuntu Studio) linux-signed-genericабо linux-virtual.


1
Жодне з інших рішень для мене не працювало при спробі встановити драйвер. Дякую тобі.
Sopalajo de Arrierez

1
називається майже еквівалент debian linux-headers-amd64(очевидно, для систем amd64)
hanshenrik


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

для кращої інструкції з огляду цього відео

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.