LINUX.ORG.RU

fglrx и kernel-2.6.12


0

0

Сегодня поставил новое ядро, действительно очень шустрое. При равных условиях 2.6.11 намного медленнее загружалось. НО!
Не хотят собираться ATIшные дрова. Для 2.6.11 был патчик, а здесь выдает ошибки. если я правильно понимаю - не понимает он каких-то переменных.

Патч есть у кого-нибудь? Или советы ценные?

А что у них на сайте говорят?
Может, новые дрова атишники под это ядро сделали уже =)
Яб еще посмотрел у дистрострорителей, что в багзилле, по этой теме.

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

А вот ни фига.
Bugzilla со Слакварью моей дела не имеет.
Новые ATIшные дрова (fglrx_6_8_0-8.14.13.1) выдают те же ошибки... Патчик нужен.

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

Нашаманилось чё-то немножко, но там ещё проблемы с другим куском. Вот это первые ошибки убирает.

diff -Nru fglrx.old/build_mod/agpgart_be.c fglrx/build_mod/agpgart_be.c
--- fglrx.old/build_mod/agpgart_be.c2005-06-08 23:05:04.000000000 +0400
+++ fglrx/build_mod/agpgart_be.c2005-06-18 20:20:12.000000000 +0400
@@ -7067,7 +7067,7 @@
if ( agp_bridge.capndx )
{
printk(KERN_INFO PFX "Detected HP ZX1 AGP "
- "chipset at %s\n", dev->slot_name);
+ "chipset at %s\n", dev->dev.bus_id);
agp_bridge.type = HP_ZX1;
agp_bridge.dev = dev;
/* fill in the mode register */
@@ -7133,7 +7133,7 @@
if( cap_ptr )
{
printk(KERN_INFO PFX "Detected a Via Apollo KT400 chipset in AGP v3 mode "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);

agp_bridge.type = VIA_APOLLO_KT400;
agp_bridge.dev = dev;
@@ -7153,12 +7153,12 @@
if( cap_ptr )
{
printk(KERN_DEBUG PFX "Detected a Via Apollo KT400 chipset in AGP v2 compat mode "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);
}
else
{
printk(KERN_ERR PFX "Detected a Via Apollo KT400 chipset but no AGPv2/v3 caps found "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);
}
}
break;
@@ -7184,7 +7184,7 @@
if( cap_ptr )
{
printk(KERN_INFO PFX "Detected a Via P4X400 chipset in AGP v3 mode "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);

agp_bridge.type = VIA_APOLLO_P4X400;
agp_bridge.dev = dev;
@@ -7204,7 +7204,7 @@
if( cap_ptr )
{
printk(KERN_INFO PFX "Detected a Via P4X400 chipset with AGP v3.x caps in AGP v2 compatibility mode "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);

agp_bridge.type = VIA_APOLLO_P4X400;
agp_bridge.dev = dev;
@@ -7224,12 +7224,12 @@
if( cap_ptr )
{
printk(KERN_DEBUG PFX "Detected a Via P4X400 chipset with AGP v2 caps in true AGP v2 mode "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);
}
else
{
printk(KERN_ERR PFX "Detected a Via P4X400 chipset but no AGPv2/v3 caps found "
- "at %s\n", dev->slot_name);
+ "at %s\n", dev->dev.bus_id);
}
}
break;

---------------------------
А вот тут проблемы: (firegl_public.c)

struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
#define inter_module_put(x)
#define inter_module_unregister(x)
#define inter_module_get(x) firegl_stub_pointer
#define inter_module_register(x,y,z) do { firegl_stub_pointer = z; } while (0)
/* This is a kludge for backward compatibility that is only useful in DRM(stub_open) */
#define fops_put(fops) MOD_DEC_USE_COUNT
#define fops_get(fops) (fops); MOD_INC_USE_COUNT
#endif // LINUX_VERSION_CODE < 0x020400
#define DRM_MODULE_GET (firegl_drm_stub_info_t *)inter_module_get("drm")
#define DRM_MODULE_PUT inter_module_put("drm")
#define DRM_AGP_MODULE_GET (drm_agp_t *)inter_module_get("drm_agp")
#define DRM_AGP_MODULE_PUT inter_module_put("drm_agp")
unsigned long ATI_API_CALL __ke_cpu_to_le32(unsigned long _u)

Не нравится ему inter_module_get. В /usr/src/linux/include/linux/module.h описано, в конце. В этом ядре эту штуку убрали вообще. Видимо, должно работать через symbol_get. А как сделать, не понял.

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

а если заменить inter_module_get на symbol_get и inter_module_put на symbol_put в firegl_public.c ?

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

Нет, не пойдёт патч. Там ещё inter_module_get есть, а в ядре уже нету.
Если заменить - при загрузке unresolved module __symbol_get

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

inter_module_get нужно заменить на вот такое вот inter_module_get_request("drm","drm")

Я более детально писал об этом косвенно, :) описывая свое горе с радом 9600ХТ Вопрос для меня тоже актуальный так что копаюсь.

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

Собственно патчи, которые я описал в ветке про 8.14.13 на ура позволяют собрать fglrx.ko, но вот с 3Д и директ рендерингом все точтно так же. :( хоть плачь. Чего делать даже и не знаю. В логах ничего вразумительного нету, окромя малосодержательного (II) fglrx(0): driver needs X.org 6.8.x (II) fglrx(0): detected X.org 6.8.2 (WW) fglrx(0): *********************************************** (WW) fglrx(0): * DRI initialization failed! * (WW) fglrx(0): * (maybe driver kernel module missing or bad) * (WW) fglrx(0): * 2D acceleraton available (MMIO) * (WW) fglrx(0): * no 3D acceleration available * (WW) fglrx(0): ********************************************* *

Если кто заведет рада 9600ХТ на Хоргах 6.8.2 поделитесь плиз рецептом!!!!

При попытке заюзать 3д еще выдается вот такое вот (нету резолвинга функций, тоесть непонятно почему они не подгружены и получить ссылки на них нельзя в рантайме)

__glXgetActiveScreen from module /usr/X11R6/lib/modules/extensions/libdri.a is unresolved

Пишу по памяти (не помню точно ли та либа или нет), ее вобще-то в этом месте нету.

В ld.so.conf прописал туеву кучу путей - не помогает.

Все симптомы и логи 1 к 1 как я описал для 2.6.11-mm4.

:) Люди добрые пАмагите убогому.

Если серьезно, просто не хочется убивать уйму времени на это, вся надежда на то, что не я ж один такой и возможно уже кто поборол трабл. Ежели все печально, :) то буду постепенно сам копать.

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

насчет unresolved:
Вот собственно чего у меня выводится еще в логах при запуске glxgears:


Symbol __glXgetActiveScreen from module /usr/X11R6/lib/modules/extensions/libdri.a is unresolved!
Symbol __glXgetActiveScreen from module /usr/X11R6/lib/modules/extensions/libdri.a is unresolved!
Symbol __glXActiveScreens from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!


fglrx_drv.o!!!!!!!!!!!!!!!!!!!!!

Стоит из 8.14.13!!!!!!!!!! для хоргов 6.8.0

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

Прикрутил дрова на 2.6.12-мм2. Разамазанная описаловка есть на ИХБТ-конфе. Если будет не влом, то опишу более детально.

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