auto-krokodil/README.md
Mikhail Novosyolov 9dab7e77d1 Add README
2022-11-02 20:26:33 +03:00

3.6 KiB
Raw Permalink Blame History

auto-krokodil

Система автоматической установки драйверов NVIDIA на Linux / Automatic installation of NVIDIA drivers on Linux

For English see comments in code or translate this text using translate.yandex.com.

Назначение

Комплект программ auto-krokodil предназначен для:

  • добавления Provides в RPM на основе поставляемых NVIDIA в JSON списков поддерживаемых драйвером видеокарт
  • унификации и автоматизации упаковки бинарных модулей NVIDIA в RPM-пакеты (для поставки драйверов в виде уже собранных модулей ядра)
  • автоматизации подбора и установки подходящего под железо проприетарного драйвера NVIDIA

Схема работы следующая:

  • при сборке пакета с драйверами в его Provides добавляются идентификаторы поддерживаемых им видеокарт
  • kroko-cli ищет имеющиеся в системе видеокарты NVIDIA
  • в Provides RPM-пакетов из репозитория ищется, какие драйверы поддерживают видеокарту
  • выбирается наиболее новый драйвер
  • если имеется несколько видеокарты, выбирается наиболее новый драйвер, подходящий под все видеокарты

Файлы исходного кода

  • LICENSE.nvidia-json — лицензия на JSON-файлы от NVIDIA
  • auto-krokodil.spec — RPM-spec для сборки RPM-пакетов
  • auto-krokodil-rpmlint.conf — дополнительный конфиг для rpmlint, чтобы не было ложных срабатываний на упакованные с помощью крокодиломакросов модули ядра
  • krokodilnvidia.attr — по каким путям искать JSON-файлы для генерации провайдов RPM
  • krokodil-legacy-converter.php — в старых версиях драйверов NVIDIA (340, 390) нет JSON-файлов, однако в новых версиях есть информация о поддерживаемых старыми версиями драйверов видеокартах, а этот скрипт извлекает ее
  • krokodil-rpm-provides.php — создание Provides для RPM на основе JSON
  • kroko-cli.sh — консольная утилита для автоматической установки драйверов (ищет видеокарты NVIDIA и смотрит, в каких пакетах в Provides записана информация об их поддержке)
  • kroko-gui.sh — графический интерфейс (пока еще не дописан)
  • macros.krokodil — макросы RPM для сборки бинарных модулей ядра
  • test.*, *.in — различные файлы для автотестов

Патчи и баги

О проблемах в работе сообщайте в багзиллу.

Патчи отправляйте пулл-реквестами или на почту m.novosyolov@rosalinux.ru