Есть система в масштабе 10 000 машин – все на Linux и все с разными видеокартами NVIDIA. Заказчику, нужно «чтобы работало, как на Виндоус». Рассказываем, как получилось обойти ограничения NVIDIA, подчинить X11 и удовлетворить строгие требования Debian.

Проблема заказчика. Государственная организация столкнулась с трудностями при развертывании собственного дистрибутива Linux на базе Debian 10 на 10 000 рабочих станций, оснащенных видеокартами NVIDIA.
| «У нас нет нормального драйвера, – объяснял заказчик. – Нет удобного интерфейса. Нельзя настроить разрешение мониторов. Если драйвер сломается – система не загрузится. А если подключить два монитора – все рушится. И мы не можем просто поставить NVIDIA Driver с сайта – у нас запрет на закрытый код». |
Решение. Мы создали GPU-Manager – приложение на C++ с Qt-интерфейсом. Это как NVIDIA Experience, но для Linux. С открытым кодом, автоматической установкой драйверов, поддержкой двух мониторов и откатом. После пяти месяцев разработки мы сдали заказчику готовый продукт, который успешно прошел проверку на соответствие требованиям Debian-репозиториев — как по безопасности, так и по семантике. Пакеты, размещаемые в этих репозиториях, должны строго соответствовать установленным стандартам: быть безопасными, корректно структурированными и соблюдать принятую семантику упаковки.
Вызов 1. Ограничения NVIDIA
NVIDIA не дает драйверы в репозитории. Они лежат на их сайте в виде .run-файлов с кривыми названиями, без описаний. Нашей задачей было найти нужный драйвер под конкретную видеокарту, скачать его, установить и не сломать систему.
Мы написали сканер, который парсит сайт NVIDIA, вытаскивает правильную версию, проверяет ее совместимость с видеокартой и ставит в один клик. В процессе разработки сайт NVIDIA оказался заблокирован на три дня. Из-за этого нам пришлось приостановить работу и ждать, пока доступ будет восстановлен.
Вызов 2. Древний X11
Linux использует X11. Это графическая библиотека, которая отвечает за то, что вы видите на экране. И сама библиотека, и документация к ней написаны почти 40 лет назад. Мы потратили несколько недель, чтобы разобраться в принципах ее работы.
Нужно было определить, где какой монитор, задать разрешение для каждого, расставить их в пространстве – один справа, один сверху, один под углом, сдвинуть рабочую область так, чтобы курсор не пропадал между экранами и сохранить эту конфигурацию. И если система не загрузится – автоматически откатиться.
Мы написали алгоритм, который считывает координаты мониторов, как будто это фрагменты пазла. И как бы они не стояли – система все равно знает, где правый, где левый.
Вызов 3. Строгие требования Debian
У Debian очень высокие требования к пакетам. Он разбирает их на нолики и единички. Один пробел в описании пакета – и система его отклоняет. Не хватает строчки в логе – и он не проходит проверку безопасности. Каждый день в течение двух месяцев мы возвращались к пакету, исправляли и пересобирали его много раз, пока не довели до соответствия всем стандартам.
На данный момент GPU-Manager – это единственное приложение, которое закрывает «графический вопрос» для Linux. Эта утилита обеспечивает простой, интуитивно понятный интерфейс для управления видеодрайверами и мониторами.
Смотрите другие кейсы
многие кейсы обезличенны, потому что мы ценим
конфиденциальность наших клиентов и подписываем NDA.
Что делать с проблемой графики Linux?
История создания GPU-Manager для Linux
Как мы защитили от кибератак закрытое оборонное предприятие
Нам необходимо было создать систему, которая исключает любые возможности удаленного взлома, обеспечивает детектирование сложных угроз (включая инсайдерские) и гарантирует физическую и логическую секретность данных.
Комплексный аудит безопасности для аграрного холдинга
Без четкого понимания реального состояния своей IT-инфраструктуры компания может находиться в одном шаге от серьезного инцидента.
Стратегический ИБ-аудит для крупной компании
Как мы нашли тихие угрозы в стабильной инфраструктуре
От хаоса к порядку. Создаем цифровую экосистему для строительных СРО
Разрабатываем CRM и автоматизируем процессы, чтобы упростить взаимодействие организаций.