Вы здесь

Не собирается nvidia-drivers на ядрах 4-10-*

Привет!

Уже довольно давно живу с проблемой ошибки в сборке драйверов nvidia на ядрах 4-10-*. Сейчас приходится оставаться на ядре 4.9.12, где такой проблемы нет. Судя по всему проблема не очень распространена.

/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c: In function ‘nvidia_cpu_callback’:
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:213:14: error: ‘CPU_DOWN_FAILED’ undeclared (first use in this function)
         case CPU_DOWN_FAILED:
              ^
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:213:14: note: each undeclared identifier is reported only once for each function it appears in
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:220:14: error: ‘CPU_DOWN_PREPARE’ undeclared (first use in this function)
         case CPU_DOWN_PREPARE:
              ^
In file included from /var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:15:0:
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c: In function ‘nv_init_pat_support’:
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/common/inc/nv-linux.h:391:34: error: implicit declaration of function ‘register_cpu_notifier’ [-Werror=implicit-function-declaration]
 #define register_hotcpu_notifier register_cpu_notifier
                                  ^
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:258:17: note: in expansion of macro ‘register_hotcpu_notifier’
             if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
                 ^
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c: In function ‘nv_teardown_pat_support’:
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/common/inc/nv-linux.h:388:36: error: implicit declaration of function ‘unregister_cpu_notifier’ [-Werror=implicit-function-declaration]
 #define unregister_hotcpu_notifier unregister_cpu_notifier
                                    ^
/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.c:283:9: note: in expansion of macro ‘unregister_hotcpu_notifier’
         unregister_hotcpu_notifier(&nv_hotcpu_nfb);
         ^
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-4.10.8-gentoo/scripts/Makefile.build:295: /var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel/nvidia/nv-pat.o] Error 1
make[2]: *** [/usr/src/linux-4.10.8-gentoo/Makefile:1490: _module_/var/tmp/portage/x11-drivers/nvidia-drivers-378.13/work/kernel] Error 2
make[2]: Leaving directory '/usr/src/linux-4.10.8-gentoo'
make[1]: *** [Makefile:150: sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-4.10.8-gentoo'
make: *** [Makefile:81: modules] Error 2

вывод emerge nvidia-drivers -q
вывод emerge --info
.config

Подскажите что здесь может быть не так?

alexanius написал:
Судя по всему проблема не очень распространена

Время от времени такое случается - поцы из nVidia не очень оперативно реагирует на новые "ядры" :-)

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Spoiler написал:
Время от времени такое случается - поцы из nVidia не очень оперативно реагирует на новые "ядры" :-)

Знаю, но это происходит с выхода всей ветки 4-10-*, т.е. месяца два уже. Я даже нашёл патч, судя по всему, с моей проблемой, но ставить блоб с сайта не хочу. Меня напрягает, что судя по гентушным форумам, такая проблема наблюдается только у меня, т.е. скорей всего проблема не в ебилдах, а в руках. Было предположение что мой конфиг ядра кривой, я включил все модули, в которых могли быть функции, на которые компилятор ругался, но не помогло. Теперь вот даже не знаю куда копать.

Ну. не стоит на себя наговаривать, ядро собрано достаточно грамотно, хотя некоторые опции вызывают у меня вопросы:

CONFIG_AGP=y
CONFIG_AGP_INTEL=y
...
CONFIG_ATA_BMDMA
...
CONFIG_IP_PNP_BOOTP
CONFIG_IP_PNP_RARP
...
# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
...
# CONFIG_CMA is not set
...
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y - ?
...
CONFIG_UID16
...
CONFIG_OSF_PARTITION
CONFIG_AMIGA_PARTITION
...
# CONFIG_STRICT_DEVMEM is not set
...
CONFIG_PPS
...
CONFIG_HW_RANDOM_VIA

ну и другие (лень мне),но это только у меня они вызывают, наверное, так что моя дико сорри :D
У меня с этим патчем nvidia-drivers для 4.10 собрались без проблем. блоб с сайта ставить не_за_чем, используйте функционал portage - epatch.

mkdir --parents /etc/portage/patches/x11-drivers/nvidia-drivers && 
mv -v ~/Ваша_директория_загрузок/ваш_патч.patch /etc/portage/patches/x11-drivers/nvidia-drivers/

дальше emerge всё сделает за Вас.
Да как бы, что это я очевидные вещи пишу...
Но вот само ведро 4.10.* - сплошные рандомные перезагрузки, во всяком случае - это личный опыт/косяки.
Уже задолбало и откатился на 4.9.*.
Как-то так :)

willy написал:
mkdir --parents /etc/portage/patches/x11-drivers/nvidia-drivers &&
mv -v ~/Ваша_директория_загрузок/ваш_патч.patch /etc/portage/patches/x11-drivers/nvidia-drivers/

Не кошерно - в /etc/portage/ для патчей спец. место предназначено

Цитата:
ведро 4.10.* - сплошные рандомные перезагрузки

Не наблюдаю, полёт ровный

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Spoiler написал:
Не кошерно - в /etc/portage/ для патчей спец. место предназначено

Почему «не кошерно» или я пропустил какие-то изменения в логике epatch_user?

:wq
--
Live free or die

Потому, что при каждой пересборке (к примеру при обновлении версии), патч надо будет заново натягивать, при размещении же в /etc/portage/patches всё само применится

Мы тоже не всего читали Шнитке!.. © В. Вишневский

willy написал:
Но вот само ведро 4.10.* - сплошные рандомные перезагрузки, во всяком случае - это личный опыт/косяки.
Уже задолбало и откатился на 4.9.*.

А у меня с на 4.7, 8, 9 наглухо висло при подключении GPS-мыши на bt747. На 4.10 починилось.

Ну это хорошо, что починили.
Мой случай:
Ведро 4.10 -> MuQSS cpu scheduler -> Tune kernel for interactivity -
При работе в Х-ах нет перезагрузок, как только я отправляю какую нибудь задачу в фон (сборка пакета, sys-libs/glibc, например) или
делаю это, находясь в голой консоли/через ssh - рандом-ребут в 100% из ста случаев.
Но это как бы не проблема, специфичная для gentoo, это к разработчикам подсистем ядра и я это понимаю.
Я всего лишь описываю свою траблу.

В версии 381.09 проблема устранена

Мы тоже не всего читали Шнитке!.. © В. Вишневский