Доступ к разным сеансам tty - PullRequest
2 голосов
/ 11 ноября 2019

Немного контекста вокруг моего вопроса. Я рендеринг непосредственно на /dev/fb1, который подключен к ЖК-дисплею. Этот ЖК-дисплей также работает /dev/tty0. Я могу отрендерить до /dev/fb1, но мигающий курсор консоли явно мешает работе. Таким образом я пытаюсь установить его в графический режим.

const auto ttyfd = open("/dev/tty0", O_RDWR);
if(ttyfd < 0) {
    log->error("Error opening /dev/tty0: {} (errno={})", utils::error_to_string(errno), errno);
    throw std::runtime_error{"Error opening tty"};
}

if(ioctl(ttyfd, KDSETMODE, KD_GRAPHICS)) {
    log->error("Error setting /dev/tty into graphics mode: {} (errno={})", utils::error_to_string(errno), errno);
    throw std::runtime_error{"Error setting tty to graphics mode"};
}

Когда я запускаю это из сеанса SSH, он не работает, потому что /dev/tty0 не принадлежит моему сеансу, и поэтому я получаю permission deniedв open. Запуск моего приложения с правами root дает ожидаемый результат.

Есть ли способ достичь того же результата без необходимости запускать мое приложение с правами root?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...