[linux-ileri] Re: VGA Controller Olmadan Klavye Kullanimi - Acil :)

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Murat Demirten (murat@debian.org)
Date: Fri 08 Oct 2004 - 21:39:48 EEST


Selam,

Sistem, vga controller olan setup uzerinde sorunsuz calisiyor. Vga
controller olmayan tarafa tasindiginda ise bahsettigim problem
olusmakta, official sayilabilecek 2.4.27 versiyonunu kullaniyorum.

Klavyeyi surekli raw modda aciyorum, programdan cikilinca normale
donuyor, gerci o kadar da onemli degil, programdan cikilinca zaten
reboot proseduru basliyor. Su an boot surecinin son adiminda acilis
scripti icinden calistirilan bir programim var ve vga controller
olmadiginda istenen sekilde calismiyor. VGA detect edilmediginde buyuk
olasilikla tum virtual terminal ozellikleri de inaktif olmakta. Bu
durumdayken keyboard input bufferi user space programlar icin
kullanilmaz hale mi geliyor? Bir virtual terminal uzerinden
baslatilmamis olan program, keyboard inputunu raw modda da alamiyor mu?
Epey onemli bir sorun olmaya basladi, fikir yurutmek isteyenlerin de
onerilerine acigim, belki bir yerden yakalariz, belki de cok basit bir
noktayi kaciriyorum.

Asagiya klavyeyi raw moda ceken fonksiyonu yaziyorum

int set_tty_raw(void)
{
    int i;
       
    i = tcgetattr (STDIN_FILENO, &termattr);
    if (i < 0)
    {
        printf("tcgetattr() returned %d for fildes=%d\n",i,STDIN_FILENO);
        perror ("");
        return -1;
    }
    save_termattr = termattr;
       
    termattr.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
    termattr.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
    termattr.c_cflag &= ~(CSIZE | PARENB);
    termattr.c_cflag |= CS8;
    termattr.c_oflag &= ~(OPOST);
       
    termattr.c_cc[VMIN] = 1;
    termattr.c_cc[VTIME] = 0;
       
    i = tcsetattr (STDIN_FILENO, TCSANOW, &termattr);
    if (i < 0)
    {
        printf("tcsetattr() returned %d for fildes=%d\n",i,STDIN_FILENO);
        perror("");
        return -1;
    }
       
    ttystate = RAW;
    ttysavefd = STDIN_FILENO;
       
    return 0;
}

Murat =?utf-8?q?Ko�������������������������������� wrote:

>Selam,
>
>
>
>>VGA controller'u olmayan bir kart var elimde. Ayni sistemin, uzerinde
>>vga controller konmus versiyonu da bulunmakta. Gelistirme surecini
>>elbette vga olanda yapiyorum :) sisteme bir lcd display bagli. Klavyeyi
>>raw modda acip select yapisi ile file descriptor 0 (STDIN)'i okuyorum.
>>Tusa basildigi anda istedigim islemi yaptirabiliyorum.
>>
>>Ancak, ayni sistemi vga controller olmayan kartta veya
>>CONFIG_VGA_CONSOLE=n olarak derledigim bir cekirdek ile actigimda,
>>select surekli uyaniyor, FD_ISSET ok donduruyor, read fonksiyonunu
>>cagiriyorum ancak read 0 donduruyor. Select surekli uyanmaya ve read de
>>0 dondurmeye devam ediyor surekli, burada takilip kaliyorum.
>>
>>Acaba VGA controller olmadiginda, bir processin standart inputuna ne
>>oluyor? VGA yokken, klavyede sadece inittab icinde belirttigim
>>ctrl-alt-del calisiyor, ancak keyboard input olarak kullanilamiyor.
>>
>>
>
>Kernel kaç? KBDSKBMODE ile raw mod mu yapıyorsunuz? daha sonra yine xlate
>yapıyor musunuz?
>
>Kod kısmını görmeden fazla birşey söyleyemeyiz.
>
>
>
>
>


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.