wie überprüfen ob KernelModul auch nutzen bringt?

kongstrong

Well-Known Member
Hallo,

wenn man ein Kernel Modul, aka Treiber lädt, mittels
Code:
kldload /boot/kernel/[KernelModul.ko]
, wie kann man überprüfen ob das Kernel Modul nicht nur unnötig im Speicher rumschimmelt, sondern auch tatsächlich ein Nutzen bringt und die Hardware anspricht bzw. unterstützt?
 
kldstat zeigt, was geladen ist.

dmesg durchforsten, da steht dann normalerweise alles an Info.
Beispiel z.b. anhand einer nvidia:
Code:
nvidia0: <GeForce GTX 1050 Ti> on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io

oder radeon:
Code:
...
drmn0: successfully loaded firmware image with mapped name: amdgpu_vega10_vce_bin
[drm] Found VCE firmware Version: 57.6 Binary ID: 4
[drm] PSP loading VCE firmware
[drm] reserve 0x400000 from 0xf5fe800000 for PSP TMR
[drm] Display Core initialized with v3.2.48!
[drm] Connector DP-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.DP-1
[drm]   - kern.vt.fb.default_mode
[drm] SADs count is: -45, don't need to read it
[drm] Connector DP-2: get mode from tunables:
[drm]   - kern.vt.fb.modes.DP-2
[drm]   - kern.vt.fb.default_mode
[drm] Connector DP-3: get mode from tunables:
[drm]   - kern.vt.fb.modes.DP-3
[drm]   - kern.vt.fb.default_mode
[drm] Connector HDMI-A-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-1
[drm]   - kern.vt.fb.default_mode
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] UVD and UVD ENC initialized successfully.
[drm] VCE initialized successfully.
[drm] fb mappable at 0xD0CF2000
[drm] vram apper at 0xD0000000
[drm] size 8294400
[drm] fb depth is 24
[drm]    pitch is 7680
...
[drm] Initialized amdgpu 3.35.0 20150101 for drmn0 on minor 0
...

pciconf -lv Wenn ein none davorsteht, ist dafür kein Treiber geladen oder greift nicht.
Code:
none2@pci0:0:31:6:    class=0x118000 card=0x11d61734 chip=0x1e248086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C210 Series Chipset Family Thermal Management Controller'
    class      = dasp
...
vgapci0@pci0:1:0:0:    class=0x030000 card=0x1c8210de chip=0x1c8210de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'GP107 [GeForce GTX 1050 Ti]'
    class      = display
    subclass   = VGA
...
 
naja, im Zweifel nicht laden?
Eigentlich sollten so ziemlich alle Module bei Bedarf geladen werden.
Vor allem bei solchen Modulen, die nicht mit FreeBSD ausgeliefert werden (GraKa...) kann es nötig sein, die von Hand zu laden. Aber spätestens seit FreeBSD 7 muss nicht mehr jedes irgendwann benötigte Modul auch manuell gestartet werden.

Diese Option der "zur Laufzeit ladbaren Module" hatte Linux ja schon früher realisiert.
Ganz praktisch gesehen (nicht ideologisch), verloren mit diesem Feature Microkernel für mich ihren Reiz. Natürlich wurden diese Sachen zunächst lang und breit hauptsächlich ideologisch diskutiert und Linus Thorvalds ereiferte sich mit großem Engagement in dieser Sache. Schließlich setzte sich die Idee mehr und mehr durch, vermutlich aber nicht wegen der großartigen Rhetorik des Herrn Thorvalds.

Jedenfalls bin ich dazu übergegangen und lade bei einer Neuinstallation zunächst mal gar nichts manuell oder in der loader.conf bzw rc.conf. Ich bin nicht sicher (weil ich länger keine Neuinstallation durchgeführt habe), ob das System selbst noch den zfs_load="YES" einträgt. Benötigt wird der vermutlich eher auch nicht mehr.
Erst nach und nach und jenachdem, was ich dann brauche, setzte ich entsprechende Einträge.
Auf Verdacht und vorauseilend irgendwelche Module zu laden, mag ich nicht so sehr. Eher im Gegenteil: es ärgert mich etwas (nicht genug, das ändern zu wollen), wenn automatisch die Module zum Bluetooth geladen werden, nur, weil diese HW gefunden wurde. Andererseits ist es ganz angenehm, wenn ich mein Wlan oder Sound nutzen will und nicht erst noch die passenden Module laden muss oder gar damit anfangen, einen eigenen Kernel zu basteln.
 
Ich bin nicht sicher (weil ich länger keine Neuinstallation durchgeführt habe), ob das System selbst noch den zfs_load="YES" einträgt. Benötigt wird der vermutlich eher auch nicht mehr.
wird bei der Installation eingetragen, wenn man ZFS als Filesystem auswählt. Zumindest bei der Installation von FreeBSD 12.2.

ciao,
Photor
 
Ganz praktisch gesehen (nicht ideologisch), verloren mit diesem Feature Microkernel für mich ihren Reiz.
Ladbare Module haben mit Microkernel aber eher nur am Rande was zu tun. Die monolithische Architektur des Kernels bleibt sowohl bei Linux als auch bei FreeBSD durch ladbare Module unangetastet.
Der "Reiz" von MicroKernels liegt eher in ihrer modularen Struktur. Das Teile davon ladbar sind ist da nur ein (natürliches) Nebenprodukt. Das erlaubt eine feingranulierte Festlegung was Kernelteile dürfen und nicht dürfen. Das bringt mehr Sicherheit aber auch mehr Robustheit.
 
Zurück
Oben