LINUX.ORG.RU

XFREE86 ??? Полный п-ц. :-(


0

0

Люди.... Братцы.... Тут у меня такаааааая шняга... Помогите.. искал аналогичную проблему в нете, но ненашел вроде пока ... мож у кого такое было...

ПредЫстория:

поставил себе дистрибутив ASPLinux 9.2 с ядром 2.4.22_1.2154.nptl.asp... потом решил: а дай ка я поставлю ядро поновее 2.6.10-rc2 ... короче долго его пересобирал пока оно мало-мальски не заработало... А видяха-то стоит GF 4 MX 440 .... и после пересборки ядра как известно чтобы стартанул Xserver желательно переустановить видяшные дрова.... скачал, значит я на сайте производителя последние дровы от NVIDIA в.6629 , поставил их... вроде стали... Запускаю XFree86 -configure .... потом опробываю созданный конфигурационный файл XF86Config.new и..... п-ц... Экран черный ни сообщения об ошибках , короче ни х...я полный повисон... тока RESET спасает... Посмотрел файл XFree86.log так там нет ни одной ошибки.... пробовал запускать (опробывал) старый конфиг который создался при инсталляции дистрибутива линукса - XF86Config -- тоже самое... НИКАКИХ СООБЩЕНИЙ ОБ ОШИБКАХ И т.п. просто все виснет.... Так вот вопрос: че делать - то ??? Может быть при сборке ядер 2.6.х надо что-то новое учитывать или просто в конвигах XFree86 че-то править, а ???

anonymous

Ответ на: комментарий от PAY

Для начала собери ядро без поддержки rivafb,


Создай три файла:

1) patch-nvidia.patch:

--- NVIDIA-Linux-x86-1.0-6629-pkg1/usr/src/nv/nv.c 2004-08-31 22:52:17.000000000 +0100
+++ NVIDIA-Linux-x86-1.0-6629-pkg1-new/usr/src/nv/nv.c 2004-09-20 02:49:42.399538232 +0100
@@ -19,6 +19,10 @@
MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER);
#endif

+#ifndef __VMALLOC_RESERVE
+unsigned int __VMALLOC_RESERVE;
+#endif
+
/*
* our global state; one per device
*/



2) NVIDIA_kernel_1.0_6629_1165235.diff.txt с таким содержанием:


diff -ru usr/src/nv/nv.c usr/src/nv.1165235/nv.c
--- usr/src/nv/nv.c	2004-11-03 22:53:00.000000000 +0100
+++ usr/src/nv.1165235/nv.c	2004-11-25 16:45:04.000000000 +0100
@@ -1604,9 +1604,8 @@
         }
         nv_vm_list_page_count(at->page_table, at->num_pages);
 
-        /* prevent the swapper from swapping it out */
-        /* mark the memory i/o so the buffers aren't dumped on core dumps */
-        vma->vm_flags |= (VM_LOCKED | VM_IO);
+        // mark it as IO so that we don't dump it on core dump
+        vma->vm_flags |= VM_IO;
     }
 
     /* Magic allocator */



3) NVIDIA_kernel_1.0_6629_1171869.diff.txt


diff -ru usr/src/nv/nv-linux.h usr/src/nv.1171869/nv-linux.h
--- usr/src/nv/nv-linux.h	2004-11-03 22:53:00.000000000 +0100
+++ usr/src/nv.1171869/nv-linux.h	2004-12-03 11:34:45.000000000 +0100
@@ -480,12 +480,22 @@
 #define NV_PCI_RESOURCE_SIZE(dev, bar)  ((dev)->resource[(bar) - 1].end - (dev)->resource[(bar) - 1].start + 1)
 
 #define NV_PCI_BUS_NUMBER(dev)        (dev)->bus->number
-#define NV_PCI_SLOT_NUMBER(dev)       PCI_SLOT((dev)->devfn)
+#define NV_PCI_DEVFN(dev)             (dev)->devfn
+#define NV_PCI_SLOT_NUMBER(dev)       PCI_SLOT(NV_PCI_DEVFN(dev))
 
 #ifdef NV_PCI_GET_CLASS_PRESENT
 #define NV_PCI_DEV_PUT(dev)                    pci_dev_put(dev)
 #define NV_PCI_GET_DEVICE(vendor,device,from)  pci_get_device(vendor,device,from)
-#define NV_PCI_GET_SLOT(bus,devfn)             pci_get_slot(pci_find_bus(0,bus),devfn)
+#define NV_PCI_GET_SLOT(bus,devfn)                                       \
+   ({                                                                    \
+        struct pci_dev *__dev = NULL;                                    \
+        while ((__dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, __dev)))  \
+        {                                                                \
+            if (NV_PCI_BUS_NUMBER(__dev) == bus                          \
+                    && NV_PCI_DEVFN(__dev) == devfn) break;              \
+        }                                                                \
+        __dev;                                                           \
+    })
 #define NV_PCI_GET_CLASS(class,from)           pci_get_class(class,from)
 #else
 #define NV_PCI_DEV_PUT(dev)
diff -ru usr/src/nv/os-interface.c usr/src/nv.1171869/os-interface.c
--- usr/src/nv/os-interface.c	2004-11-03 22:53:00.000000000 +0100
+++ usr/src/nv.1171869/os-interface.c	2004-12-03 11:34:51.000000000 +0100
@@ -866,7 +866,8 @@
 )
 {
     struct pci_dev *dev;
-    dev = NV_PCI_GET_SLOT(bus, PCI_DEVFN(slot, function));
+    unsigned int devfn = PCI_DEVFN(slot, function);
+    dev = NV_PCI_GET_SLOT(bus, devfn);
     if (dev) {
         if (vendor) *vendor = dev->vendor;
         if (device) *device = dev->device;




Дадее распакуй дрова, наложи патчи и поставь дрова:

./NVIDIA-Linux-x86-1.0-6629-pkg1.run --extract-only
cd NVIDIA-Linux-x86-1.0-6629-pkg1
patch -p0 < ../NVIDIA_kernel-1.0-6629-1165235.diff.txt
patch -p0 < ../NVIDIA_kernel-1.0-6629-1171869.diff.txt
cp ../patch-nvidia.patch ./
patch -p1 < ./patch-nvidia.patch
./nvidia-installer


Всё это было в FAQ, если не ошибаюсь.

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

PAY , спасибо за разжевывание.... попробую..... :-)

A тебе jackill я посоветую на будующее попридержать "язык" , а то кабы чо не вышло такого, о чем бы ты сожалел .... так ... к слову... Если бы ты был чуточку поумнее, то подумал бы над своими "словами"...

ЗЫ : еще небольшой вопросик к PAY , если конечно можшо :-) ... а вот к примеру я в XF86Config исправил DEVICE с "NVIDIA" на "NV" все вроде стартануло, но.... почему-то в KDE появилось много сообщений об ошибках в прогах типа : kcminit, ksplash, kmixctnl и др... что это может значить ???

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

>а вот к примеру я в XF86Config исправил DEVICE с "NVIDIA" на "NV"

а зачем это делать? у тебя тогда стартуют не родные NVIDIA дрова которые ты ставил, а дистровые

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

Я понимаю, что это так... Но весь трабл в том, что почти все приложения запущенные из KDE (при установленном новом ядре) завержаются с ошибкой.. Так что, при обновлении ядра надо еще и переустанавливать многие проги??? Так, что-ли??? Если так... То чем ентот ЛИНУХ лучше винды???? не понимаю... Там хоть такого мозгое?ства нет...

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

> Но весь трабл в том, что почти все приложения запущенные из KDE (при установленном новом ядре) завержаются с ошибкой..

Делаем ставки? При запуске из консоли пишет про "ашипку" связанную с OpenGL?

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

>Делаем ставки? При запуске из консоли пишет про "ашипку" связанную с OpenGL?

Про OpenGL ничего не говорит.... Короче, поменял я "nvidia" на "nv" , далее делаю в консоле startx.. Все, грузится вроде KDE, но выскакивает много сообщений о том что какие-то программы вызвали ошибку!!! Или-же допустим запускаю Krusader - все нормально .. Закрываю его - пишет Krusader вызвал ошибку... Ошибка в программе (и аналогично многие проги - консоль и.т.д.) и еще что-то про звук пишет нехорошее... :-(

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