Автор Тема: [РЕШЕНО] Не добавляются проприетарные драйверы NVIDIA в initrd  (Прочитано 2777 раз)

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
/etc/initrd.mk
Спойлер
# trying to detect modules and features to access to root volume
AUTODETECT = all
FEATURES += add-modules

# https://wiki.archlinux.org/index.php/NVIDIA_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#DRM_kernel_mode_setting
MODULES_PRELOAD += nvidia nvidia_modeset nvidia_uvm nvidia_drm
BLACKLIST_MODULES = nvidiafb

# modinfo nvidia_modeset
Спойлер
# modinfo nvidia_modeset
filename:       /lib/modules/5.7.19-un-def-alt1/nVidia/nvidia-modeset.ko
version:        450.57
supported:      external
license:        NVIDIA
srcversion:     CC5133B57C79F964E5FE691
depends:        nvidia
retpoline:      Y
name:           nvidia_modeset
vermagic:       5.7.19-un-def-alt1 SMP preempt mod_unload modversions
# modinfo nvidia_uvm
Спойлер
# modinfo nvidia_uvm
filename:       /lib/modules/5.7.19-un-def-alt1/nVidia/nvidia-uvm.ko
supported:      external
license:        Dual MIT/GPL
srcversion:     13DD4D2B3089CD6297F45F8
depends:        nvidia
retpoline:      Y
name:           nvidia_uvm
vermagic:       5.7.19-un-def-alt1 SMP preempt mod_unload modversions
parm:           uvm_perf_prefetch_enable:uint
parm:           uvm_perf_prefetch_threshold:uint
parm:           uvm_perf_prefetch_min_faults:uint
parm:           uvm_perf_thrashing_enable:uint
parm:           uvm_perf_thrashing_threshold:uint
parm:           uvm_perf_thrashing_pin_threshold:uint
parm:           uvm_perf_thrashing_lapse_usec:uint
parm:           uvm_perf_thrashing_nap:uint
parm:           uvm_perf_thrashing_epoch:uint
parm:           uvm_perf_thrashing_pin:uint
parm:           uvm_perf_thrashing_max_resets:uint
parm:           uvm_perf_map_remote_on_native_atomics_fault:uint
parm:           uvm_hmm:Enable (1) or disable (0) HMM mode. Default: 0. Ignored if CONFIG_HMM is not set, or if ATS settings conflict with HMM. (int)
parm:           uvm_perf_migrate_cpu_preunmap_enable:int
parm:           uvm_perf_migrate_cpu_preunmap_block_order:uint
parm:           uvm_global_oversubscription:Enable (1) or disable (0) global oversubscription support. (int)
parm:           uvm_perf_pma_batch_nonpinned_order:uint
parm:           uvm_leak_checker:Enable uvm memory leak checking. 0 = disabled, 1 = count total bytes allocated and freed, 2 = per-allocation origin tracking. (int)
parm:           uvm_force_prefetch_fault_support:uint
parm:           uvm_debug_enable_push_desc:Enable push description tracking (uint)
parm:           uvm_debug_enable_push_acquire_info:Enable push acquire information tracking (uint)
parm:           uvm_page_table_location:Set the location for UVM-allocated page tables. Choices are: vid, sys. (charp)
parm:           uvm_perf_access_counter_mimc_migration_enable:Whether MIMC access counters will trigger migrations.Valid values: <= -1 (default policy), 0 (off), >= 1 (on) (int)
parm:           uvm_perf_access_counter_momc_migration_enable:Whether MOMC access counters will trigger migrations.Valid values: <= -1 (default policy), 0 (off), >= 1 (on) (int)
parm:           uvm_perf_access_counter_batch_count:uint
parm:           uvm_perf_access_counter_granularity:Size of the physical memory region tracked by each counter. Valid values asof Volta: 64k, 2m, 16m, 16g (charp)
parm:           uvm_perf_access_counter_threshold:Number of remote accesses on a region required to trigger a notification.Valid values: [1, 65535] (uint)
parm:           uvm_perf_reenable_prefetch_faults_lapse_msec:uint
parm:           uvm_perf_fault_batch_count:uint
parm:           uvm_perf_fault_replay_policy:uint
parm:           uvm_perf_fault_replay_update_put_ratio:uint
parm:           uvm_perf_fault_max_batches_per_service:uint
parm:           uvm_perf_fault_max_throttle_per_service:uint
parm:           uvm_perf_fault_coalesce:uint
parm:           uvm_fault_force_sysmem:Force (1) using sysmem storage for pages that faulted. Default: 0. (int)
parm:           uvm_perf_map_remote_on_eviction:int
parm:           uvm_exp_gpu_cache_peermem:Force caching for mappings to peer memory. This is an experimental parameter that may cause correctness issues if used. (uint)
parm:           uvm_exp_gpu_cache_sysmem:Force caching for mappings to system memory. This is an experimental parameter that may cause correctness issues if used. (uint)
parm:           uvm_channel_num_gpfifo_entries:uint
parm:           uvm_channel_gpfifo_loc:charp
parm:           uvm_channel_gpput_loc:charp
parm:           uvm_channel_pushbuffer_loc:charp
parm:           uvm_enable_va_space_mm:Set to 0 to disable UVM from using mmu_notifiers to create an association between a UVM VA space and a process. This will also disable pageable memory access via either ATS or HMM. (int)
parm:           uvm_enable_debug_procfs:Enable debug procfs entries in /proc/driver/nvidia-uvm (int)
parm:           uvm_peer_copy:Choose the addressing mode for peer copying, options: phys [default] or virt. Valid for Ampere+ GPUs. (charp)
parm:           uvm8_ats_mode:Set to 0 to disable ATS (Address Translation Services). Any other value is ignored. Has no effect unless the platform supports ATS. (int)
parm:           uvm_debug_prints:Enable uvm debug prints. (int)
parm:           uvm_enable_builtin_tests:Enable the UVM built-in tests. (This is a security risk) (int)
# modinfo nvidia_drm
Спойлер
# modinfo nvidia_drm
filename:       /lib/modules/5.7.19-un-def-alt1/nVidia/nvidia-drm.ko
version:        450.57
supported:      external
license:        MIT
srcversion:     130D39E554BE5038EEE66AA
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        drm,drm_kms_helper,nvidia-modeset
retpoline:      Y
name:           nvidia_drm
vermagic:       5.7.19-un-def-alt1 SMP preempt mod_unload modversions
parm:           modeset:Enable atomic kernel modesetting (1 = enable, 0 = disable (default)) (bool)

Без особого понимания надо ли трогать nvidiafb. Из конфига make-initrd работает только это. Но прообовал и не добавлять nvidiafb в черный список.

Модули nvidia ставил штатно, apt-get. Точнее - вообще не ставил. Они сами.

Проблема в том, что перечисленные драйверы указаны в статье по запуску Wayland (точнее - я нашем статью как обеспечить работу KMS на NVIDIA).

Я на первом шаге - модули ядра в initrd.

# make-initrd --kernel=`uname -r`
[00:00:00] Config file: /etc/initrd.mk
[00:00:00] Generating module dependencies on host ...
[00:00:06] Creating initrd image ...
[00:00:09] Putting modules ...
[00:00:09] Generating module dependencies in image ...
[00:00:09] Sorting sysvinit services ...
[00:00:10] Packing image to archive ...
[00:00:10] Writing build info files ...
[00:00:10] Compressing image ...
[00:00:26] Adding CPU microcode ...
14 блоков
[00:00:26] Used features:  add-modules buildinfo cleanup compress depmod-image kbd network rdshell rootfs system-glibc ucode
[00:00:26] Packed modules: af_packet ahci cec drm drm_kms_helper evdev fb_ddc hid hid-generic i2c-algo-bit input-leds libahci libata rc-core scsi_mod sd_mod usb-common usbcore usbhid usbkbd usbmouse vgastate xhci-hcd xhci-pci
[00:00:26] Installing image ...
[00:00:26] Unpacked size: 68M
[00:00:26] Image size: 21M
[00:00:26] Removing work directory ...
[00:00:26] Image is saved as /boot/initrd-5.7.19-un-def-alt1.img
« Последнее редактирование: 10.10.2020 10:17:20 от kiav »

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 533
  • Стич-спасатель
    • Email
Похоже, я зря потревожил мировое сообщество.

Несмотря на такую выдачу от make-initrd, модули NVIDIA оказались в образе.
Это видно с ключиком -v сборщика (можно также смотреть в отдельной папке список файлов, попавших в образ).

Также все верно по результату# cat /sys/module/nvidia_drm/parameters/modeset
Y

Ради этого все делалось.

Что касается сборщика, то с -v он пишет:
Цитировать
Module "guess-drm" propose modules:
nvidiafb nvidia-drm nvidia

Возможно, в этот список попадает только первый вариант
Цитировать
Packed modules: af_packet ahci cec drm drm_kms_helper evdev fb_ddc hid hid-generic i2c-algo-bit input-leds libahci libata nvidiafb rc-core scsi_mod sd_mod usb-common usbcore usbhid usbkbd usbmouse vgastate xhci-hcd xhci-pci

Мой конфиг
Спойлер
AUTODETECT = all

FEATURES += add-modules

# https://wiki.archlinux.org/index.php/NVIDIA_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#DRM_kernel_mode_setting
MODULES_ADD += nvidiafb nvidia nvidia_modeset nvidia_uvm nvidia_drm

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email