Как мне установить заголовочные файлы ядра?


85

Я хочу написать драйвер устройства, но не могу найти файл заголовка. Может, кто-нибудь, пожалуйста, поможет мне найти их? Также, если кто-то может указать на некоторые важные ссылки на сайт, которые были бы очень благодарны.

Ответы:


118

Вы должны иметь возможность установить заголовочные файлы ядра для текущего запущенного ядра, запустив в терминале следующее:

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

Обычно пакеты заголовков ядра называются linux-header- *, где "*" указывает версию и вариант (универсальный, серверный и т. Д.).


3
эй, спасибо, но не могли бы вы сказать мне, что означает « дженерик», «сервер» и т. д., я хочу написать (драйвер ядра)
кодер

8
Это не установит заголовки для будущих обновлений автоматически, и вам придется каждый раз повторять эту команду. Поэтому рекомендуется вместо этого установить метапакет, как описано в другом ответе .
gertvdijk

Примечание: это не помещает их в путь включения GCC, вам все еще нужно -I.
Сиро Сантилли 新疆 15 中心 法轮功 六四 事件

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 ...
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
Ни одно из других решений не помогло мне при попытке установить драйвер. Спасибо вам.
Сопалахо де Арриерес

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.