Hello Zhenja!
24 Dec 21 20:54, you wrote to me:
[...]
ZK> судя по man, lsinitrd -- часть dracut (initrd инфраструктура) и
ZK> должен по-умолчанию брать initramfs для текущего ядра.
Да, man я читал, так оно и есть.
ZK> Если dkms не обновил initrd (лень смотреть его скрипты) и модули
ZK> грузятся оттуда, то логично, хоть и странно (что не обновил). dracut
ZK> --force должен перегенерировать.
Это я пока не пробовал, честно признаюсь. Вдруг перестанет грузиться вообще?
Безусловно с этим (с возможной не загрузкой) я разберусь, не вчера с компами и
не совсем тупой, просто не хотелось бы тратить на это время ежели такое
произойдёт, хотелось обойтись малой кровью.
ZK> А depmod -v | grep nvidia что показывает?
Сейчас у меня [временно] 470.82, но на безуспешно установленном 470.94 он
показывает то же самое, уж поверь.
Ядро вот такое:
~~~
[rhs@sys3175 ~]$ uname -r
5.15.10-200.fc35.x86_64
[rhs@sys3175 ~]$
~~~
depmod -v | grep nvidia показывает так:
~~~
[rhs@sys3175 ~]$ sudo depmod -v | grep nvidia
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/usb/typec/altmodes/typec_nvidia.ko.xz
needs "__typec_altmode_register_driver":
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/usb/typec/typec.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/usb/typec/altmodes/typec_nvidia.ko.xz
needs "dp_altmode_remove":
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/usb/typec/altmodes/typec_displayport.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-modeset.ko.xz needs
"nvidia_register_module":
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-drm.ko.xz needs
"drm_framebuffer_cleanup":
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/gpu/drm/drm.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-drm.ko.xz needs
"drm_kms_helper_poll_fini":
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/gpu/drm/drm_kms_helper.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-drm.ko.xz needs
"nvKmsKapiGetFunctionsTable":
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-modeset.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-uvm.ko.xz needs
"nvUvmInterfaceDisableAccessCntr":
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia.ko.xz
/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia.ko.xz needs
"drm_gem_object_free":
/lib/modules/5.15.10-200.fc35.x86_64/kernel/drivers/gpu/drm/drm.ko.xz
[rhs@sys3175 ~]$
~~~
Это для текущего 470.82.
RHS>> Так и есть, модули старые, 28 октября, от 470.82.
RHS>> Изучаю /boot/initramfs$(uname -r).img, там кроме
RHS>> microcode/GenuineIntel.bin больше нифига ничего нет.
ZK> Звучит странно.
Я не вру. Кроме микрокода в initramfs больше нет ничего:
~~~
[rhs@sys3175 ~]$ sudo file /boot/initramfs-$(uname -r).img
/boot/initramfs-5.15.10-200.fc35.x86_64.img: ASCII cpio archive (SVR4 with no
CRC)
[rhs@sys3175 ~]$ sudo cat /boot/initramfs-$(uname -r).img | cpio --list
.
early_cpio
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
30 blocks
[rhs@sys3175 ~]$
~~~
RHS>> 1) где, чёрт возьми, хранится инфа о том, что ведро хочет
RHS>> 470.82, хотя уже установлено 470.94?
ZK> У тебя установлены библиотеки и драйвер X новые, но ядерный модуль
ZK> старый.
Вот! В initrd почему-то именно *старые* драйвера/модули:
~~~
[rhs@sys3175 ~]$ sudo lsinitrd | grep -i extra/nvidia
-rw-r--r-- 1 root root 24028 Oct 28 22:55
usr/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-drm.ko.xz
-rw-r--r-- 1 root root 23809056 Oct 28 22:55
usr/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia.ko.xz
-rw-r--r-- 1 root root 515404 Oct 28 22:55
usr/lib/modules/5.15.10-200.fc35.x86_64/extra/nvidia-modeset.ko.xz
[rhs@sys3175 ~]$
~~~
Обрати внимание на дату модулей из вывода lsinitrd, они все 28 октября (я в то
время как раз Fedora 35 себе заапгрейдил через dnf с Fedora 34 чтобы не делать
"pere install", так что эти модули от 470.82 остались ещё с Fedora 34, там с
ними было всё нормально, я просто время от времени апгрейдил драйвера nvidia и
подобных проблем не возникало никогда (я апгрыжусь с версии на версию Fedora
через dnf ещё со времён Fedora 32, то есть года два уже, "pure install" с тех
пор ни разу не делал).
А фактически в usr/lib/modules/5.15.10-200.fc35.x86_64/extra/ лежат модули за
вчерашнее число, за 24 декабря уже:
~~~
[rhs@sys3175 ~]$ ls -l /lib/modules/$(uname -r)/extra
total 24120
-rw-r--r-- 1 root root 24028 Dec 24 09:16 nvidia-drm.ko.xz
-rw-r--r-- 1 root root 23809056 Dec 24 09:16 nvidia.ko.xz
-rw-r--r-- 1 root root 515404 Dec 24 09:16 nvidia-modeset.ko.xz
-rw-r--r-- 1 root root 1008 Dec 24 09:16 nvidia-peermem.ko.xz
-rw-r--r-- 1 root root 342612 Dec 24 09:16 nvidia-uvm.ko.xz
[rhs@sys3175 ~]$
~~~
Сейчас у меня, повторюсь, 470.82, поэтому и модули из lsinitrd, и модули из
usr/lib/modules/5.15.10-200.fc35.x86_64/extra/ совпадают по API версии NVRM и
всё пучком, все довольны. Hо стОит мне установить 470.94, как в
usr/lib/modules/5.15.10-200.fc35.x86_64/extra/ образуются модули 470.94
(инсталлятор в процессе установки их компилит под текущее ведро и туда
копирует), а в выводе lsinitrd остаются старые, от 470.82, за 28 октября, и
ведро начинает орать что "Я хочу 470.82, а в
usr/lib/modules/5.15.10-200.fc35.x86_64/extra/ лежат 470.94, непорядок, не буду
их грузить!". Явно что initrd не обновляется. Hо вот почему?
RHS>> 2) откуда lsinitrd эту инфу берёт? (можно конечно на его исходники
RHS>> глянуть и узнать откуда оно инфу цепляет, но не хотелось бы сразу же
RHS>> нырять в такие дебри).
ZK> Можно в man глянуть.
Там я ничего не увидел. Может плохо смотрел?
Похоже придётся всё же смотреть на исходники lsinitrd чтобы узнать где же и как
же и почему же упорно берутся старые модули для ведра при наличии новых. Если
внутри initramfs про них ни слова нет.
RHS>> 3) как сказать ведру чтобы оно забыло про 470.82 насовсем и
RHS>> стало юзать 470.94?
Я бы руками сам изменил initramfs, добавил бы в него (заменил бы в нём) модули
470.82 на 470.94, но см. выше, в initramfs кроме микрокода ничего нет.
Откуда lsinitrd берёт инфу что модули 470.82? Я бы прям там поменял. Если бы
знал откуда эта конфигурация берётся.
[offtopic ON]
В декабре прошлого года я в дранках попросил сеть друзей, FIDO, помочь мне и
дать в долг кто сколько сможет на похороны. Многие откликнулись и ты в том
числе, спасибо великое все откликнувшимся за это. В июле этого года я смог
отдать долги тем, кто не высказал явное желание не получать долг обратно. Отдал
всем, остался ты единственный. С июля я тебе отправлял аж три netmail'а с
периодичностью в месяц каждое с вопросом "Как вернуть долго?", но ни ответа, ни
привета. Или мои netmail'ы до тебя почему-то не доходят, или ты их игнорируешь.
Поэтому, как говориться "пользуясь случаем", раз уж эхи ты точно читаешь и даже
отвечаешь, то вопрошаю тут: "Как вернуть тебе долг?"
[offtopic OFF]
Bye!