Ubuntu 16.04.3 LTS - LINUX_VERSION_CODE кажется неверным

Я обнаружил, что LINUX_VERSION_CODE, определенный в /usr/include/linux/version.h на моей машине с Ubuntu 16.04.3 LTS, (4.4), тогда как ожидается, что он будет 4.10.0.

bash% lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial

bash% bash% uname -r
4.10.0-28-generic

bash% cat /usr/include/linux/version.h 
#define LINUX_VERSION_CODE 263258
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

bash% perl
my $version=263258;
my $a=($version >> 16) & 0xff;
my $b=($version >> 8) & 0xff;
my $c=$version & 0xff;
print "$version -> $a.$b.$c\n";
263258 -> 4.4.90

Следовательно, макрос препроцессора, как показано ниже, не работает.

#include <linux/version.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0).
// do something
#endif

Означает ли это, что у меня есть проблемы с установкой? Или мы рекомендуем не использовать LINUX_VERSION_CODE в Ubuntu?

0
задан 5 December 2017 в 12:26

1 ответ

Похоже, у вас установлен файл заголовков ядра для конкретной версии, который, вероятно, не соответствует вашему работающему ядру. Раньше был метапакет, который сохранял бы текущий установленным, несмотря ни на что.

Вот ссылка

0
ответ дан 5 December 2017 в 12:26

Другие вопросы по тегам:

Похожие вопросы: