Add README

This commit is contained in:
Mikhail Novosyolov 2022-11-02 20:26:33 +03:00
parent c21bf85470
commit 9dab7e77d1

40
README.md Normal file
View file

@ -0,0 +1,40 @@
# 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](https://nixtux.ru/1124) в 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](https://nixtux.ru/1124) для RPM на основе JSON
* `kroko-cli.sh` — консольная утилита для автоматической установки драйверов (ищет видеокарты NVIDIA и смотрит, в каких пакетах в Provides записана информация об их поддержке)
* `kroko-gui.sh` — графический интерфейс (пока еще не дописан)
* `macros.krokodil` — макросы RPM для сборки бинарных модулей ядра
* `test.*`, `*.in` — различные файлы для автотестов
## Патчи и баги
О проблемах в работе сообщайте в [багзиллу](https://bugzilla.rosalinux.ru/enter_bug.cgi?product=ROSA%20Fresh).
Патчи отправляйте пулл-реквестами или на почту [m.novosyolov@rosalinux.ru](mailto:m.novosyolov@rosalinux.ru)