pygame из сессии ssh: как отобразить на прикрепленном экране? - PullRequest
2 голосов
/ 13 октября 2019

Я хочу использовать pygame на raspi для отображения изображений на экране, подключенном к порту hdmi raspi. Я хочу сделать это через ssh-соединение.

В качестве первого теста я попробовал очень простой (и классический) скрипт, который тестирует доступные драйверы:

import os
import pygame

disp_no = os.getenv('DISPLAY')
print("I'm running under {}".format(disp_no))

drivers = ['directfb', 'fbcon', 'svgalib']

found = False
for driver in drivers:
    if not os.getenv('SDL_VIDEODRIVER'):
        os.putenv('SDL_VIDEODRIVER', driver)
        os.environ["SDL_FBDEV"] = "/dev/fb0"
    try:
        pygame.display.init()
        print('OK with',driver)
    except pygame.error:
        print('Driver: {0} failed.'.format(driver))
        continue
    found = True
    break

if not found:
   raise Exception('No suitable video driver found!')

Вотрезультаты моих тестов:

  1. из сеанса ssh: не найден подходящий видеодрайвер
  2. из сеанса ssh в качестве пользователя root: ОК с directfb
  3. из консоли tty(с клавиатурой, подключенной к raspi): ОК с directfb

Мой вопрос: почему ситуация 1 приводит к сбою. Что мне не хватает и что мне делать?

Обратите внимание, что разрешения для / dev / fb0 и всех / dev / tty ?? установлены так, что я могу читать / писать, не будучи root. Также обратите внимание, что у меня не работает X-сервер.

...