LINUX.ORG.RU

framebuffer и консоль


0

2

Есть КПК на MIPS, ядро 2.6.32.27, у него есть /dev/fb0.
Для рисования я этот fb0 mmap-ю, для ввода использую /dev/input/event1.

Проблема - рисуется всё как надо и ввод есть, но вот только ввод идёт и в терминал, вырисовывая буквы поверх нарисованного мною.
И курсор ещё мигает.

Как это всё отключить?

Пробовал ioctl(stdio,KDSETMODE,KD_GRAPHICS); ничего не меняет.
Другие идеи не нагугливаются.
Возможность возврата в консоль нужна.



void setup_console(int t)
{
    struct termios our_termios;
    static struct termios old_termios;

    if(t) {
        tcgetattr(0, &old_termios);
        memcpy(&our_termios, &old_termios, sizeof(struct termios));
        our_termios.c_lflag &= !(ECHO | ICANON);
        tcsetattr(0, TCSANOW, &our_termios);
    } else
        tcsetattr(0, TCSANOW, &old_termios);

}



    /* hide cursor */
    printf("\033[?25l");
    fflush(stdout);

    setup_console(1);
                                
    show_image();

    setup_console(0);

    printf("\033[?25h");
    fflush(stdout);

bakugan
()
Ответ на: комментарий от mmarkk

Или еще лучше консоль перенавесить в последовательный порт. но возможен вариант зависания write() при попытке записи туда если из порта никто не читает.

mmarkk
()
Ответ на: комментарий от mmarkk

bakugan: Работает, спасибо.
Осталась одна загвоздка - все вбитые кнопки оказываются в терминале по выходу.
Это исправимо?

mmarkk: Не много даёт.
if(f=open(«/sys/class/vtconsole/vtcon0/bind»,O_WRONLY)) {c=0;write(f,&c,1);close(f);}
Отключает как надо, но почемуто на с=1 не реагирует.


Artlav
() автор топика
Ответ на: комментарий от mmarkk

>>но возможен вариант зависания write() при попытке записи туда если из порта никто не читает

ну так отрубать flow control

exception13 ★★★★★
()
Ответ на: комментарий от Artlav

Не уверен, но мне кажется, что надо write(f, «1\n», 2);

mmarkk
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.