Это повторяющийся вопрос. TL; DR: В текущей модели графического драйвера Linux невозможно использовать графический процессор с традиционными драйверами без запуска X-сервера. Если GPU поддерживается KMS + DRM + DRI, вы можете это сделать. (EDIT :) Также в 2016 году Nvidia наконец представила по-настоящему безгласную поддержку OpenGL в своих драйверах через EGL.
Длинная история, что технически графические процессоры вполне способны оказывать на закадровый буфер без дисплея будучи прикрепленным или запустить графический сервер. Однако из-за истории развития графического драйвера и разработки среды это невозможно, ноне удалось в течение длительного времени. Предположение тогда (когда графика впервые была представлена Linux) была: «Графическое устройство предназначено для доставки изображения на экран». То, что графическая карта может использоваться в качестве ускоряющего сопроцессора, даже не является воплощением идеи.
Добавьте к этому, что еще несколько лет назад ядро Linux не знало, как разговаривать с графическими устройствами (кроме тупой фреймбуфера где-то в адресном пространстве системы). X-сервер был тем, что обсуждалось с графическими процессорами, поэтому вам нужно было его запустить. И первые разработчики X-сервера сделали предположение, что между клавиатурой и стулом есть человек.
Так что ваши варианты:
Краткосрочное, если вы используете GPU NVidia: Просто запустите сервер X. Вам не нужна полная среда рабочего стола. Вы даже можете избавить себя от необходимости запуска диспетчера окон. Просто попросите X-сервер утверждать VT и быть активным.В настоящее время поддерживается поддержка безглавых контекстов OpenGL через EGL в драйверах Nvidia.
Если вы используете AMD или Intel GPU, вы можете напрямую поговорить с ним. Либо через EGL, либо с помощью KMS (Google для чего-то под названием kmscube
, попробовав его, убедитесь, что вы сначала отключаетесь от своего X-сервера до текста VT, иначе вы будете разбивать сервер X). Я еще не пробовал, но можно было бы приспособить пример kmscube
, который использует графический процессор для рендеринга в буфер вне экрана, без переключения VT в графический режим или на любой графический вывод на фреймбуффе дисплея.
См. [Этот ответ] (http://stackoverflow.com/a/23166541/2207421). – Kalrish