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

85

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

кодировщик
источник

Ответы:

118

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

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

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

Janc
источник
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.

user.dz
источник
1
Ни одно из других решений не помогло мне при попытке установить драйвер. Спасибо вам.
Сопалахо де Арриерес
1
называется почти эквивалент для debian linux-headers-amd64(для систем amd64, очевидно)
hanshenrik
1

Или, если у вас установлен aptitude: sudo aptitude install linux-headers-$(uname -r)

user1527227
источник
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)

для лучшего ознакомления с инструкциями это видео

Дзен алекс
источник