[Решено] Ошибка при установке модуля (пакет из aur: synaptics-led-dkms) (dkms 3.0.10-1)

Сборка пакетов, PKGBUILD'ы и все связанное с этим
Ответить
vantu5z
Аватара пользователя
Сообщения: 19
Зарегистрирован: 05.09.2022

#

В AUR есть пакет с модулем для тачпада synaptics-led-dkms, который заменяет модуль ядра psmouse.
После обновления dkms с 3.0.9-1 на 3.0.10-1 возникла проблема с установкой модуля при обновлении ядра:
:: Запуск post-transaction hooks...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Updating module dependencies...
(3/3) Install DKMS modules
==> dkms install --no-depmod synaptics-led/6.1.1 -k 6.1.8-arch1-1
Module version  for psmouse.ko.zst
exactly matches what is already found in kernel 6.1.8-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Error! Installation aborted.
==> WARNING: `dkms install --no-depmod synaptics-led/6.1.1 -k 6.1.8-arch1-1' exited 6
Если откатить dkms до 3.0.9-1, то установка модуля проходит нормально.

Если модуль устанавливать вручную:

При установке модуля с dkms 3.0.10-1:
$ sudo dkms install synaptics-led/6.1.1
Sign command: /usr/lib/modules/6.1.8-arch1-1/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Creating symlink /var/lib/dkms/synaptics-led/6.1.1/source -> /usr/src/synaptics-led-6.1.1

Building module:
Cleaning build area...(bad exit status: 2)
make -j4 KERNELRELEASE=6.1.8-arch1-1 -C '/usr/lib/modules/6.1.8-arch1-1/build' 'M=/var/lib/dkms/synaptics-led/6.1.1/build' psmouse.ko.....
Signing module /var/lib/dkms/synaptics-led/6.1.1/build/psmouse.ko
Cleaning build area...(bad exit status: 2)

psmouse.ko.zst:
Running module version sanity check.
Module version  for psmouse.ko.zst
exactly matches what is already found in kernel 6.1.8-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Error! Installation aborted.
Исправить ошибку получается указав флаг --force.

При установке модуля с dkms 3.0.9-1:
$ sudo dkms install synaptics-led/6.1.1
Sign command: /usr/lib/modules/6.1.8-arch1-1/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Creating symlink /var/lib/dkms/synaptics-led/6.1.1/source -> /usr/src/synaptics-led-6.1.1

Building module:
Cleaning build area...(bad exit status: 2)
make -j4 KERNELRELEASE=6.1.8-arch1-1 -C '/usr/lib/modules/6.1.8-arch1-1/build' 'M=/var/lib/dkms/synaptics-led/6.1.1/build' psmouse.ko.....
Signing module /var/lib/dkms/synaptics-led/6.1.1/build/psmouse.ko
Cleaning build area...(bad exit status: 2)

psmouse.ko.zst:
Running module version sanity check.
 - Original module
   - Found /usr/lib/modules/6.1.8-arch1-1/kernel/drivers/input/mouse/psmouse.ko.zst
   - Storing in /var/lib/dkms/synaptics-led/original_module/6.1.8-arch1-1/x86_64/
   - Archiving for uninstallation purposes
 - Installation
   - Installing to /usr/lib/modules/6.1.8-arch1-1/updates/dkms/
depmod...
Что нужно подправить в пакете или настройках dkms, чтобы установка проходила автоматически?
Последний раз редактировалось vantu5z 01.02.2023 11:59, всего редактировалось 1 раз.
vall
Аватара пользователя
Администрация
Сообщения: 712
Зарегистрирован: 09.08.2022

#

Так это же похоже Ваш патч на GitHub и пакет в AUR. Вам и карты в руки в поиске решения )
vasek
Сообщения: 446
Зарегистрирован: 31.08.2022

#

vantu5z:Что нужно подправить в пакете или настройках dkms, чтобы установка проходила автоматически?
С большой долей вероятности причина в наличии файла synaptics-led-dkms.install - для чего он тебе нужен? Почитай Wiki и man dkms - если модуль уже установлен, он не будет переустанавливаться заново … о чем и сообщают
vantu5z:exactly matches what is already found in kernel 6.1.8-arch1-1.
DKMS will not replace this module.
… и далее сообщают, что для перезаписи модуля следует использовать параметр --force
vantu5z:You may override by specifying --force
Рекомендую убрать этот файл - цитата из Wiki (ссылка выше)
Do not use .install file to load or unload modules. Leave it to the user, since there is a possibility a module may crash when loaded. 
Also do not call dkms as it is automatically done via pacman hook provided by dkms. 
This hook runs dkms install and dkms remove leaving no manual task for the package maintainer.
Все делается автоматом … и рекомендую после обновления ядра и dkms выполнять reboot

PS - зайди в AUR, набери dkms … и посморти на выбор любой пакет dkms - file.install НЕТ

Ошибки не исчезают с опытом - они просто умнеют

vantu5z
Аватара пользователя
Сообщения: 19
Зарегистрирован: 05.09.2022

#

vasek: С большой долей вероятности причина в наличии файла synaptics-led-dkms.install
Удалил *.install из пакета, да он не нужен.
Но ситуация не изменилась, модуль собирается, но не устанавливается.
vasek: man dkms - если модуль уже установлен, он не будет переустанавливаться заново
Я так понимаю, здесь речь идёт о попытке повторной установки уже установленного dkms модуля.

А у меня случай, когда производится установка dkms модуля с заменой существующего модуля, который входит в модули ядра.
В man dkms написано, что найденные модули будут сохранены как "original_module", для восстановления при удалении dkms модуля:
ORIGINAL MODULES
       During  the  first install of a module for a <kernelversion>, dkms will
       search /usr/lib/modules/<kernelversion> for a  pre-existing  module  of
       the  same  name.  If one is found, it will automatically be saved as an
       "original_module" so that if the newer module is  later  removed,  dkms
       will  put  the  original  module  back  in  its  place. Currently, DKMS
       searches for these original modules with first preference going to mod‐
       ules  located  in /usr/lib/modules/<kernelversion>/updates/ followed by
       $DEST_MODULE_LOCATION (as specified in dkms.conf ). If  one  cannot  be
       found  in  either  location, a find will be used to locate one for that
       kernel.  If none are found, then during a later uninstall, your  kernel
       will not have that module replaced.

       If  more  than  one is found, then the first one located (by preference
       indicated above) will be considered the "original_module". As well, all
       copies  of  the same-named module will be removed from your kernel tree
       and placed into  /var/lib/dkms/<module>/original_module/$kernelver/col‐
       lisions  so  that  they  can  be *manually* accessible later. DKMS will
       never actually do anything with the modules found underneath the  /col‐
       lisions  directory,  and  they  will be stored there until you manually
       delete them.
vantu5z
Аватара пользователя
Сообщения: 19
Зарегистрирован: 05.09.2022

#

Нашел, проблема была в dkms в проверке версии модуля:
Issue:
DKMS Issue when module has to be replaced #296
PR (принятый):
Fix updating modules with no version #297

Всем спасибо за участие, ждем релиза.
vasek
Сообщения: 446
Зарегистрирован: 31.08.2022

#

vantu5z:Нашел, проблема была в dkms в проверке версии модуля:
Молодец ...
Вопрос для ликбеза - как производится замена модуля?
Не проще просто запретить загрузку psmouse? ... а остальное dkms все будет делать автоматом.

Ошибки не исчезают с опытом - они просто умнеют

vantu5z
Аватара пользователя
Сообщения: 19
Зарегистрирован: 05.09.2022

#

vasek:Вопрос для ликбеза - как производится замена модуля?
Не совсем понял вопрос, но вот так сейчас производится установка модуля dkms:
 - Original module
   - Found /usr/lib/modules/6.1.9-arch1-1/kernel/drivers/input/mouse/psmouse.ko.zst
   - Storing in /var/lib/dkms/synaptics-led/original_module/6.1.9-arch1-1/x86_64/
   - Archiving for uninstallation purposes
 - Installation
   - Installing to /usr/lib/modules/6.1.9-arch1-1/updates/dkms/
vasek: Не проще просто запретить загрузку psmouse? ... а остальное dkms все будет делать автоматом.
Имеется ввиду включить psmouse в blacklist, а модуль dkms переименовать, например в psmouse-led?
Если так, то возникают несколько других вопросов:
  • где и как указать, что нужно загружать psmouse-led вместо psmouse?
  • не будет ли каких-то неразрешенных зависимостей, если кто-то использует psmouse увидит ли он модуль с новым именем?
  • и собственно, чем это упростит процесс, dkms и так всё делает автоматом?
vasek
Сообщения: 446
Зарегистрирован: 31.08.2022

#

Дошло, понятно ... просто не совсем правильно представял сам процесс .

Ошибки не исчезают с опытом - они просто умнеют

Ответить