Как избежать ошибок ядра на Linux при рисовании в фреймбуфере - PullRequest
0 голосов
/ 18 июня 2020

Я написал программу просмотра изображений для интерфейса cli.

Он открывает устройство кадрового буфера, декодирует изображение и записывает необработанные пиксели в кадровый буфер.

Он записывается в c# (точка net core), где я могу легко скрыть курсор и опустить клавиши, чтобы их не интерпретировал терминал.

Все работает нормально, но если пользователь переключает терминал (Ctrl + Alt + Fn), появляется много сообщений об ошибках ядра .

Что я могу сделать, чтобы правильно управлять переключением VT?

Я нашел эти функции, чтобы установить KDSETMODE и KDSKBMODE:

[DllImport("libc.so.6", EntryPoint = "open")]
public static extern int Open(string fileName, int mode);

[DllImport("libc.so.6", EntryPoint = "ioctl", SetLastError = true)]
private extern static int Ioctl(int fd, int request, int data);

[DllImport("libc.so.6", EntryPoint = "read", SetLastError = true)]
internal static extern int Read(int handle, byte[] data, int length);

Но я действительно не знать, как их использовать, обязательно устанавливать эти параметры?

Спасибо.


Если кто-то застрял с этим, см. эту статью

...