nvidia-driver und nvidia-drm-kmod - geht das?

bsd4me

Well-Known Member
Hallo,

ich habe eine passive Nvidia 1030 verbaut - läuft super - auch 4k wird dargestellt. Allerdings ist beim boot und in der Console die Auflösung sehr "rudenmentär". Ich habe es mit "vbe/efi_max_resolution" oder anderem in /boot/loader.conf versucht - tut sich nicht viel. Ich sehe, dass ein nvidia-drm-kmod exisiert. Kann man es parallel zu nvidia-driver installieren und übernimmt es dann die Console "Auflösung"?? Sobald ich dann X starte, hätte ich gerne den "normalen" Nvidia Treiber...

VG Norbert :-)
 
ich sage es mal so, wie ich das verstehe, aber in der Vergangenheit hast du ja schon häufiger erlebt, dass ich mein Leben lang im Irrtum war.


Also, auf der Konsole hast du noch gar keine Grafik. Mal etwas barsch gesagt. Es muss natürlich schon die GrafikKarte animiert werden, irgendwas darzustellen und alle GraKas können dazu irgendwelche Grund-Betriebsarten, so etwas wie VESA oder so. Hier kann unter Umständen im BIOS, also dem BIOS der GraKa, was verändert werden.


Die "eigentliche" Grafik kommt dann erst mit X. Also, wenn der Xserver (oder Wayland) gestartet wird, dann übernimmt dieser die ganze Geschichte und stellt Grafik dar. Dazu braucht er einen passenden Treiber, den er aber selbst aus einem Angebot finden kann. Alternativ kann man ihn auch dazu bringen, einen bestimmten Treiber oder bestimmte Einstellungen zu befolgen. Dazu braucht es dann eine Konfiguration, die der X-Server beim Start liest und befolgt. Ohne diese Konfiguration, stellt er sich aus dem Angebot das zusammen, was er so braucht.

Meist brauchen die Treiber der GraKas eigene Module, also eine Art Kernel-Modul oder Kernel Erweiterung, die dann auch schon vor dem Start des X-Servers vorhanden sein müssen (weil sie ja von root geladen werden). Dazu dienen dann Einträge in der rc.conf und manchmal auch in der loader.conf.

Die drm-Kernel-Module bieten eine Möglichkeit des Zugriffes auf bestimmte Beschleunigungsmechanismen der GraKa, besonders zur 3D-Darstellung. Dies ist bei einigen modernen Composite-managern oder bei Wayland recht wichtig, zum Ansehen von Video braucht man das nicht so sehr.

Diese drm-kmod können also zusätzlich zum nvidia Treiber geladen werden. Sie brauchen aber die gleiche Version, wie die anderen Module des Treibers. Da man in einem anderen Thread lesen konnte, dass derzeit für FreeBSD-14 die nvidia-drm-61-kmod-550.120_1 aus den Paketen womöglich ein paar Probleme mitbringt und deshalb lieber die aktuellere Version aus den Ports gebaut werden sollte, würde das dann bedeuten, dass auch der nvidia-Treiber aus den Ports gebaut werden müsste. Der drm-kmod braucht auch die nvidia-modeset.ko und all das kann in der rc.conf gestartet werden, wenn es erst mal gebaut ist.

Und all dies verändert gar nichts am Aussehen der Konsole, denn da greifen diese Dinger ja noch gar nicht. Ich habe ja tatsächlich Probleme damit, mir nun 3D-Beschleunigung auf der Konsole überhaupt vorzustellen, aber wahrscheinlich liegt das eher an mir.


Mit EFI-Systemen hat sich aber die Konsole auch bei FreeBSD geändert und da fragt man sich, wie ist das nun möglich und was kann man da machen und ehrlich gesagt, habe ich mich da nicht weitgehend genug eingelesen, glaube aber, dass es an x11-drivers/xf86-video-scfb liegt, was hier nämlich benutzt werden kann. Wie und was da zu ändern geht?
Keine Ahnung!
Aber dieser Modus, eine GraKa anzusprechen, gehört zu einer der Grund-Kenntnisse, die viele GraKas direkt unterstützen, wie etwa den VESA-Modus. Also, noch bevor X die Herrschaft übernimmt, kann man hier womöglich etwas drehen und einstellen.

Vielleicht hilft diese Darstellung, geeignete Suchbegriffe zu finden?
 
Danke Dir - ich werde mal schauen :-)

ach, ich habe auch einige Irrtümer in meinem Leben gemacht... Gehört dazu :-)

VG Norbert
 
Kann man denn auch nur nvidia-drm-kmod nehmen und auf nvidia-driver verzichten? Also so wie bei AMD und Intel Chips nur drm-kmod? Bekommt man dann auch 3D-Beschleunigung?
 
das wird wohl so sein, dass der drm-kmod auch den driver installiert, weil er diesen halt benötigt.
Der nvidia-Treiber stellt zwei Module bereit (also bei mir):
Code:
nvidia-modeset.ko (/boot/modules/nvidia-modeset.ko)
nvidia.ko (/boot/modules/nvidia.ko)
Die modesets werden dann vom drm benötigt (wenn ich das aus der Beschreibung richtig verstanden habe), der selbst dann ein weiteres Modul bereit stellt:
Code:
nvidia-drm.ko (/boot/modules/nvidia-drm.ko)
Deshalb müssen auch die Versionen zueinander passen, weil das Eine vom Andern abhängt.
 
Ich habe eine Geforce 750 GTX und nvidia-drm-kmod ist und war bei mir nie installiert. Alles funktioniert bei mir, wie es soll, ich weiß also nicht, wozu man den nvidia-drm-kmod eigentlich braucht? Vielleicht für neuere Karten?

Code:
$ ls /boot/modules/
linker.hints        nvidia.ko        vboxnetadp.ko
nvidia-modeset.ko    vboxdrv.ko        vboxnetflt.ko
$ kldstat
Id Refs Address                Size Name
 1   96 0xffffffff80200000  1f370e8 kernel
 2    1 0xffffffff82138000     b010 cuse.ko
 3    1 0xffffffff82144000    1f8b8 firewire.ko
 4    1 0xffffffff82a18000     3560 fdescfs.ko
 5    1 0xffffffff82a1c000   107330 nvidia-modeset.ko
 6    1 0xffffffff82c00000  1fcfa10 nvidia.ko
 7    2 0xffffffff82b24000    30a80 linux.ko
 8    6 0xffffffff82b55000     c2a8 linux_common.ko
 9    1 0xffffffff82b62000     4850 nullfs.ko
10    1 0xffffffff82b67000     3250 ichsmb.ko
11    1 0xffffffff82b6b000     2178 smbus.ko
12    1 0xffffffff82b6e000    2de10 linux64.ko
13    1 0xffffffff82b9c000     2278 pty.ko
14    1 0xffffffff82b9f000     73c0 linprocfs.ko
15    1 0xffffffff82ba7000     440c linsysfs.ko
16    3 0xffffffff84bd0000    58120 vboxdrv.ko
17    2 0xffffffff82bac000     4248 vboxnetflt.ko
18    2 0xffffffff82bb1000     abb8 netgraph.ko
19    1 0xffffffff82bbc000     31e0 ng_ether.ko
20    1 0xffffffff82bc0000     55f0 vboxnetadp.ko
21    1 0xffffffff82bc6000     e5b0 snd_uaudio.ko
22    1 0xffffffff82bd5000     3360 uhid.ko
23    1 0xffffffff82bd9000     4364 ums.ko
24    1 0xffffffff82bde000     33c0 usbhid.ko
25    1 0xffffffff82be2000     3380 hidbus.ko
26    1 0xffffffff82be6000     3360 wmt.ko
27    1 0xffffffff82bea000     2400 ulpt.ko
28    1 0xffffffff84c29000    1aec0 ext2fs.ko
29    1 0xffffffff82bed000    12e18 fusefs.ko
30    1 0xffffffff84c44000     439c geom_linux_lvm.ko
$ pkg info | grep nvidia
linux-nvidia-libs-470-470.161.03 NVidia graphics libraries and programs (Linux version)
nvidia-driver-470-470.161.03_1 NVidia graphics card binary drivers for hardware OpenGL rendering
nvidia-settings-535.146.02_1   Display Control Panel for X NVidia driver
nvidia-xconfig-525.116.04      Tool to manipulate X configuration files for the NVidia driver
$
 
nun, ich würde gerne die Text Console mit mehr als 25 Zeilen und 80 Spalten Text füllen... Nun, ich arbeite viel mit Xorg, aber es gibt auch sachen die ich auf einer textconsole ohne X mache... Daher die Frage nach nvidia-drm-kmod...
 

Nun, ich glaube, man wird es mir nicht verübeln, wenn ich ehrlich zugebe, das ganze Geraffel schon eine Weile nicht mehr wirklich zu durchblicken.
Aber, DRM hat mit großer Sicherheit gar nichts mit der Konsole und deren Auflösung zu schaffen.

Wozu braucht man denn überhaupt einen Grafik-Treiber?
Natürlich, es hat etwas mit Grafik zu tun, aber das ist ein Begriff, der ähnlich konfus ist, wie "Liebe" oder "Friede" oder "Freiheit", er wird oft sehr unterschiedlich benutzt.
In unseren PCs arbeiten Grafik-Karten, die auf der einen Seite mit dem Monitor verbunden sind und auf der anderen Seite mit dem Motherboard. Über das Motherboard können Daten sehr schnell mit dieser Karte ausgetauscht werden. Wenn ein Betriebssystem die richtigen Begriffe benutzt, kann es mit Hilfe dieser Karte etwas auf einem Monitor ausgeben.
Die Grafikkarten beherrschen in der Regel eine Art Grundsprache, die auf einem niedrigen Niveau benutzt werden kann, um darüber zB Text auszugeben. Im Konsolen-Modus wird so eine Grundsprache benutzt. Hierzu braucht es keinen eigenen Grafik-Treiber, weil, was dazu benötigt wird, im Betriebssystem schon eingebaut ist. In FreeBSD wurde mit UEFI-Boot ein neuer Konsolenmodus eingebaut und während des Bootvorgangs ändert sich dann die Auflösung, wenn, die entsprechende Grafik erkannt und unterstützt wird.
Will man aber einen Fenstermanager benutzen und Desktops anzeigen, braucht man zusätzliche Software. Hier kommt zunächst der klassische X-Server ins Spiel. Er stellt eine Schnittstelle zwischen den Clients und der Grafikkarte dar. Clients sind Anwendungen, wie etwa der Fenstermanager. Damit der X-Server nun mit der GraKa in der korrekten Sprache reden kann, verlässt er sich auf Treiber, die wiederum nicht direkter Bestandteil des X-Servers sind, sondern fast immer als zusätzliche SW installiert werden müssen. Es gibt wiederum einige Treiber, die eine Art Grundsprache benutzen und von nahezu allen Karten verstanden werden. Ein solcher Treiber ist etwa der VESA,
Code:
> pkg search vesa
xf86-video-vesa-2.5.0_3        X.Org vesa display driver
Mit diesem Treiber kann also beinahe jeder GraKa eine grafische Darstellung unter X entlockt werden, es können Fenster gezeichnet werden, Filme abgespielt etc. Es ist aber eben eine Grundsprache und spezielle Eigenschaften einer GraKa werden davon nicht erfasst.
Ähnlich ist es mit dem SCFB,
Code:
> pkg search scfb
xf86-video-scfb-0.0.7_2        X.Org syscons display driver
Siehe auch hier.
Will man aber die Sprache der GraKa noch besser benutzen, braucht man einen entsprechend genauen Treiber. Hier kommt dann etwa der nvidia-driver ins Spiel. Dieser Treiber stellt nicht nur eine Art Wörterbuch zum Umgang mit der Karte dar, sondern er beinhaltet einen ganzen Laden voller Beschleuniger. Zusammengefasst wird das in der Paketebeschreibung:
Code:
NVidia graphics card binary drivers for hardware OpenGL rendering
. Damit der Xserver beim Start die HW richtig erkennen und die Konfiguration der einzelnen Komponenten auch passend vornehmen kann, müssen die gelieferten Kernel-Module zuvor geladen sein.

Hat man dies, erhält der X-Server also wesentlich besseren Zugriff auf die Möglichkeiten der GraKa, als wenn man nur einen Vesa-Treiber benutzt.
Aber, immer noch nicht auf alle möglichen Teile, die eine moderne GraKa so bietet. Es fehlt der Zugriff auf die HW der 3D-Beschleunigung, was allerdings eine etwas zu starke Vereinfach ist, uns aber nun mal genügen soll.
Das bedeutet also nicht mal unbedingt, dass man keine 3D-Effekte bekommen kann (wobei ich hier besonders unsicher bin), aber wenn man die erhält, müssen sie aufwändig berechnet werden und können nicht einfach von der dafür eigens vorhanden HW erzeugt werden.
Wenn man nun aber das passende drm-Modul zu seinem Grafik-Treiber auch geladen hat, dann kan dies vom X-Server berücksichtigt werden und damit der Zugriff auf diese HW-Komponenten ebenfalls ermöglicht werden.

Braucht mal also DRM?
Offenbar nicht.
Aber.
Wenn man 3D-Effekte haben möchte, macht es zumindest Sinn, ja, bei manchen SW-Lösungen wird es geradezu vorausgesetzt, das man DRM benutzt. Hierzu habe ich allerdings keine eigene Erfahrung, doch gelesen, dass Wayland und Sway darauf setzen und ich weiß, dass immer mehr DesktopEnvironments Fenstermanager eingebaut haben, die ebenfalls darauf setzen.
Und dabei muss aber dann auch der Hinweis kommen, dass DRM eben mehr bedeutet, als nur 3D-Effekte. Der komplette Zugriff auf die GraKa wird damit anders gemanged und deshalb können Störungen hier auch ganz bedeutsame Folgen haben. Und es ist nun nicht etwa so, dass man mit DRM grundsätzlich irgndwie ein schnelleres System bekäme. Für die meisten Anwendungen dürfte man gar keinen Unterschied bemerken.
Deshalb ziehe ich für mich selbst den Schluss, dass ich darauf auch gut verzichten kann, wenn es mir Probleme macht, dass ich aber nicht darauf verzichten muss, wenn es ordentlich funktioniert. Weil NVIDIA hier offenbar nicht mehr so toll mit FreeBSD kooperiert, kann es da womöglich eher zu Problemen kommen, als mit Karten anderer Hersteller.
 
Zurück
Oben