LINUX.ORG.RU

ATI fglrx на последних ядрах


0

0
In file included from /lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:35:
include/linux/sysrq.h: В функции ‘__reterr’
include/linux/sysrq.h:66: ошибка: ‘EINVAL’ undeclared (first use in this function)
include/linux/sysrq.h:66: ошибка: (Each undeclared identifier is reported only once
include/linux/sysrq.h:66: ошибка: for each function it appears in.)
make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o] Ошибка 1
make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-2.6.27.7'
make: *** [kmod_build] Ошибка 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module - please consult readme.

Ядро - 2.6.27.7

После патчей руками дает ошибку:

fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
fglrx: Unknown symbol __rcu_read_unlock
fglrx: Unknown symbol __rcu_read_lock

Пытаюсь понять что это: у меня ядро криво собранное, систему перекосило или просто атишные дрова на это ядро не встают? Дровишки скачал с их сайта последнюю версию буквально сегодня.

на личном опыте: подобная фигня была, когда include/linux указывала на сырцы старого ядра.

anonymous
()

отключите в ядре Preemptive RCU

либо пропатчите fglrx чтобы лицензия была якобы GNU GPL

модули не ГПЛ не могут использовать preeemptive rcu

Sylvia ★★★★★
()
Ответ на: комментарий от aix27249

на ядрах .25 и ниже настроек в .config preemptive rcu отдельно нет,

там надо патчить исходники ядра, kernel/ что то там с rcu .c

EXPORT_SYMBOL_GPL заменить на EXPORT_SYMBOL для всех сисколлов с rcu

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Ну я пока решил проблему просто отключением Preemptibe RCU. Кстати, что оно дает на практике?anonymous Есть ли смысл патчить дрова и что там тогда с лицензиями?

aix27249
() автор топика
Ответ на: комментарий от aix27249

у вас судя по всему ядро RT, fglrx имело бы смысл патчить если лень пересобирать ядро, а так проще в ядре.

просто по снижению латентности ответа ядра (увеличению его "реалтайминга")

no preemption voluntary preemption low latency desktop (Realtime)

в дополнение к realtime можно еще включить RT в RCU и Big Kernel Lock в принципе разница не так заметна, а вот глюки вылезают, например с fglrx, разработчики ядра решили что preemptible rcu может быть только с GPL модулями, ну и правы в принципе, потому что что там в блобах делается - достаточно непонятно и уж наверняка они не realtime

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Если я правильно понимаю, то ядро не RT - вполне обычное, самосборное на базе слаковского, сорцы ванильные без каких-либо патчей.

Пока не понимаю почему не компилится без правки сорцов fglrx (это уже в части не относящейся к RCU), а в остальном все заработало. Спасибо!

aix27249
() автор топика
Ответ на: комментарий от aix27249

странно) не понимаю тогда зачем в слаке включили preemptible rcu на не preempt ядре... хотя там еще какая то странность была в дефолтном конфиге ядра, впрочем, Патрику наверное виднее )

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Это не в слаке - я сам эту опцию включил когда пересобирал, ибо штука показалась интересной) Так что патрик тут ни в чем не виновен) Ядро кстати preemptible. Кажется я просто не понимаю вашу терминологию - что в вашем понимании Realtime-ядро? В моем понимании это ядро c realtime патчами, а вовсе не с включенной опцией preemptible.

aix27249
() автор топика
Ответ на: комментарий от aix27249

Вот, разобрался теперь почему не компилилось: ему SysRq нужен (вернее - не нужен, но иначе он не соберется просто). Либо патчить linux/sysrq.h на предмет включения asm-generic/errno-base.h

aix27249
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.