Kniffliges Problem: NV-AGP und 6.2

nurso

Active Member
Hallo,
heute hab ich zum ausprobieren FreeBSD 6.2 RC1 installiert. Weiters wurde ein neuer Kernel (ohne AGP) kompiliert, Xorg und der aktuelle Nvidia-Treiber aufgespielt. Ich wollte lieber den NV-AGP Treiber benutzen als APGART, deswegen auch den neuen Kernel. Nur irgendwie haut das einfach nicht hin :( Der Chipsatz meines Asus K8V-X SE sollte eigentlich unterstütze werden[1]. Bin schon soweit das mir der "ordinäre" FreeBSD AGP Treiber reichen würde.

Code:
# sysctl -a | grep -i agp 
net.inet.ip.fragpackets: 0 
net.inet.ip.maxfragpackets: 800 
hw.nvidia.agp.card.rates: 8x 4x 
hw.nvidia.agp.card.fw: supported 
hw.nvidia.agp.card.sba: supported 
hw.nvidia.agp.card.registers: 0xff000e1b:0x00000000 
hw.nvidia.agp.status.status: disabled 
hw.nvidia.agp.status.driver: n/a (unused) 
hw.nvidia.agp.status.rate: n/a (disabled) 
hw.nvidia.agp.status.fw: n/a (disabled) 
hw.nvidia.agp.status.sba: n/a (disabled) 
hw.nvidia.registry.EnableALiAGP: 0 
hw.nvidia.registry.NvAGP: 1 
hw.nvidia.registry.EnableAGPSBA: 0 
hw.nvidia.registry.EnableAGPFW: 0 
hw.nvidia.cards.0.type: AGP

Code:
Section "Device" 
       Identifier  "Card0" 
       Driver      "nvidia" 
       VendorName  "nVidia Corporation" 
       BoardName   "NV40.2 [GeForce 6800 LE]" 
       BusID       "PCI:1:0:0" 
       Option      "NvAgp" "3" 
       Option      "RenderAccel" "true" 
EndSection

Code:
# cat /boot/loader.conf 
#hw.pci.allow_unsupported_io_range="1" 
#agp_load="YES" 
nvidia_load="YES" 
linux_load="YES"

Code:
dmesg | grep -i nvidia 
nvidia0: <GeForce 6800 LE> mem 0xfb000000-0xfbffffff,0xf0000000-0xf7ffffff,0xfa000000-0xfaffffff at device 0.0 on pci1 
nvidia0: [GIANT-LOCKED]

Code:
# kldstat 
Id Refs Address    Size     Name 
1   10 0xc0400000 36e468   kernel 
2    2 0xc076f000 1dda4    linux.ko 
3    1 0xc078d000 4e0070   nvidia.ko 
4    1 0xc0c6e000 62880    acpi.ko

Kennt einer von euch das Problem? Ist der Nvidia-Blob schuld?

mfg

[1]wobei: da bin ich mir auch nicht mehr sicher....gibt es einen Unterschied zwischen KT800 und kT800pro?
 
Ok, Ich habe nun nochmals den Nvidia Treiber installiert, diesmal aber so, daß er den FreeBSD AGP Treiber verwendet. Fehlanzeige! Nur, jetzt spuckt der X-Server folgendes aus:

Code:
NVRM: AGP cannot be enabled on this combination of the AMD CPU and OS kernel
NVRM: kernel upgrade recommended.

Bitte wie?

@cabal: Danke für den Link...kannte ich aber schon :)

mfg
 
afaik läuft der propiretäre nvidia blob nur in seltensten Fällen überhaupt auf einer 64bit maschine, selbst wenn dort die 32bit version von FreeBSD installiert ist.
 
afaik läuft der propiretäre nvidia blob nur in seltensten Fällen überhaupt auf einer 64bit maschine, selbst wenn dort die 32bit version von FreeBSD installiert ist.

Na toll :( Da kauf ich mir extra ein AMD System weil es leise ist UND Power hat und jetzt das! Blob-Mist!!!

mfg & danke für eure Antworten
 
afaik läuft der propiretäre nvidia blob nur in seltensten Fällen überhaupt auf einer 64bit maschine, selbst wenn dort die 32bit version von FreeBSD installiert ist.

Nö, der funktioniert wunderbar mit amd64 im 32bit-Modus.

@nurso
Hast du vielleicht die amd64-Version von FreeBSD am laufen? Dann musst du leider auf den Treiber verzichten, denn er ist nicht auf FreeBSD-amd64 portiert.
Mit der CPUTYPE-Variablen hat das nix zu tun, denn im i386-FreeBSD wird die in athlon-mp übersetzt. Und für die Kernelmodule werden (iirc) eh keine Optimierungen vorgenommen.
 
afaik läuft der propiretäre nvidia blob nur in seltensten Fällen überhaupt auf einer 64bit maschine, selbst wenn dort die 32bit version von FreeBSD installiert ist.

Das hat doch damit überhaupt nichts zu tun. Wenn ich 32 Bit FreeBSD installiere ist keinerlei Unterschied zu bemerken, nirgends - weder mit 64Bit CPUs von AMD noch Intel. Das einzige was ich sein lassen würde sind die speziellen Optimierungen, zumindest bei CPUTYPE=pentium4 las ich das da teils compilierter Code unbrauchbar wurde. Wurde Xorg z.B. mit Optimierung kompiliert würde ich im Nachhinein keine Wette mehr eingehen, das alles einwandfrei läuft.
 
@nurso
Hast du vielleicht die amd64-Version von FreeBSD am laufen? Dann musst du leider auf den Treiber verzichten, denn er ist nicht auf FreeBSD-amd64 portiert.
Mit der CPUTYPE-Variablen hat das nix zu tun, denn im i386-FreeBSD wird die in athlon-mp übersetzt. Und für die Kernelmodule werden (iirc) eh keine Optimierungen vorgenommen.

Nein, keine amd64-Version, daß wüßt ich doch :)

Könntest du das mit der CPUTYPE mal genauer erklären? Mir ist auch schon aufgefallen das für einen Athlon-MP optimiert wird, dachte mir aber das liegt nur an CPUTYPE?=k8 und mit athlon64 wär das nicht passiert.

mfg
 
http://gentoo-wiki.com/Safe_Cflags

Die passenden CPUTYPES kannst du dort nachlesen, gelten bei FreeBSD natürlich ebenso. Würde ich die Finger von lassen 1-3% Performance bringen auch nicht viel, da müßte man schon von Anwendung zu Anwendung händisch optimieren.
 
afaik läuft der propiretäre nvidia blob nur in seltensten Fällen überhaupt auf einer 64bit maschine, selbst wenn dort die 32bit version von FreeBSD installiert ist.

Moin,
kann ich nicht bestätigen. Auf AMD64X2 im 386-Mode läuft der nvidia-GraKa-Treiber so, wie man es erwartet, nämlich gut.

Gruss, Elwood

PS: Vergessen: GraKa ist eine Gigabyte 7600 GT. Board ASUS M2N. Im Kernel-Config auch ohne agp (allerdings mit vga für den Worstcase)
Code:
hw.nvidia.registry.EnableALiAGP: 0
hw.nvidia.registry.NvAGP: 3
hw.nvidia.registry.EnableAGPSBA: 0
hw.nvidia.registry.EnableAGPFW: 0
 
Zuletzt bearbeitet:
nVidia stellt sich manchmal blöd an. Auf meinem K8V-D (K8T800) war folgendes nötig:
- Im BIOS "Assign IRQ to VGA" -> Enabled
- Einen Kernel ohne AGP bauen, wenn nicht schon getan
- /boot/kernel/agp.ko löschen
- nvidia-driver aus den Ports neu kompilieren
- Modul laden

Wenn das nicht reicht, gibt es noch die Möglichkeit den Floppycontroller aus dem Kernel zu entfernen. Ich habe keine Ahnung warum, aber auf einem älteren KT600 basierten Maninboard hat es geholfen :)
 
- /boot/kernel/agp.ko löschen
Wie? einfach löschen? Gibts da keine Fehlermeldung beim Booten?

Übrigens ist mir ein merkwürdiges (aber reproduzierbares) Verhalten aufgefallen: Anscheinend ist Slackware (bzw Zenwalk) die einzige i386er Dist. unter der meine Hardwarekombination "läuft", sogar mit 3d Beschl. ALLERDINGS immer nur bist zum nächsten Arbeitstag (sic!) - dann startet kein X-Server mehr! Im Log-file steht "nvidia falling back to legacy PCI mode" und irgendwas von zuvielen Errors....seltsam, seltsam....

EDIT: Hab mir den Fehler nochmals genauer mit -logverbose 6 angesehen

Code:
(II) NVIDIA(0): The NVIDIA X driver has encountered an error; attempting to
(II) NVIDIA(0):     recover...
(II) NVIDIA(0): CRT-1 assigned CRTC 0
(II) NVIDIA(0): Unable to get display device enabled on this X screen; not

[...mehrmals dieselbe Meldung...]

(II) NVIDIA(0): Unable to get display device enabled on this X screen; not
(II) NVIDIA(0):     allocating video overlay
(EE) NVIDIA(0): Error recovery failed.
(EE) NVIDIA(0):  *** Aborting ***
(II) NVIDIA(0): Setting mode "1024x768_85+0+0"
(II) NVIDIA(0): The NVIDIA X driver has encountered an error; attempting to
(II) NVIDIA(0):     recover...
(WW) NVIDIA(0): The NVIDIA X driver has encountered too many errors.  Falling
(WW) NVIDIA(0):     back to legacy PCI mode.
(II) NVIDIA(0): Error recovery was successful.

Kann das mal wer übersetzten? Das komplette Log-File hab ich angehängt.

mfg
 

Anhänge

  • Xerror_verb2.txt
    113,8 KB · Aufrufe: 249
Zuletzt bearbeitet:
Tja, wenn das mit den device.hints man damals (6.0) wirklich geholfen hätte. Das Mistding hat trotzdem ganz stumpf das agp.ko nachgezogen. Aber afaik ist der der Bug inzwischen gefixt :) Das Modul kann man natürlich löschen, die Graka wird dann einfach als PCI-Gerät angesprochen...

Was bei dir jetzt genau schief läuft, kann ich leider auch nur raten, da ich solche Fehler zum ersten Mal sehe. Ganz vielleicht könnte es was damit zutun haben, dass deine 6800LE eine PCI-E Karte ist, welche über einen Bridge-Chip zur AGP gemacht wurde... Wenn es irgendwie möglich ist, würde ich in deiner Stelle mal eine andere AGP-Karte mit nVidia GPU testen und mal schauen, ob es dann geht. So wüsste man wenigstens ob die Graka oder das Board schuld ist :)
 
Ein Problem mit AGP gibt es nicht, das wird erkannt und aktiviert. Slackware kommt mit Xorg 6.9. nurso probiert es mit 7.1.1, was offenbar nicht funktioniert. An der Stelle sollte mal weitergesucht werden.

ciao, jtsn
 
@jtsn: Danke für deine Zusammenfassung!

Leider hab ich aber etwas in meinem vorigen Post durcheinander gewürfelt: Ich verwende Zenwalk (das auf Slackware basiert) - das ist auch der Grund für Xorg 7.1.1
Mit Slackware direkt hab ichs noch nicht probiert.

Ich werde noch auf 6.2-RELEASE warten...allerdings würde ich gern den Fehler dann schon lokalisiert haben (deswegen auch diese "Trockenübung" :) )

mfg
 
Zurück
Oben