raw mouse commands

David Belohrad david.belohrad na cern.ch
Středa Prosinec 21 18:40:40 CET 2005


Zdravim,
potreboval bych oscanovat komunikaci po ps/2. Ze smeru od mysi do
pocitace to neni problem. Ovsem co me zajima je opacny smer, tedy
kdyz PC posila neco po PS/2 (napriklad nastaveni resolution na mysi).
Chtel bych napsat maly program, ktery tam posila alespon neco (optimalni
by bylo napr. set_mouse_resolution nebo tak neco). A tak bych se rad zeptal:

a) existuje nejaky program ktery primo komunikuje s mysi (primo ji
posila prikazy)? Zkousel jsem gpm, ovsem na osciloskopu jsem neobjevil
ani naznak nejakych operaci. Studoval jsem kernelovske drivery, ale je
to prilis komplikovane na to co bych s tim rad delal.

b) napsal jsem kratky program ktery by teoreticky mel mit primy pristup
na kontroler ps/2

#include <stdio.h>
#include <fcntl.h>
#include <sys/io.h>

int main (void)
{
        int fd;
        fd_set readyset;
        int pending;
        unsigned char buff[10];

        fd = ioperm (0x60,1,1);
        printf ("%d\n",fd);
        fd = ioperm (0x64,1,1);
        printf ("%d\n",fd);

        while (1)
        {
            // write next one to ps/2 mouse - but wait for bit 0 at 0x64
to be zero
            while ( (inb(0x64) & 0x01) );
            // output buffer is ready, let's write down - next command
means write
            // next data to the auxiliary mouse device
            outb (0x64, 0xd4);
            // and data - mouse status request
            outb (0x60, 0xe9);
            printf ("a\n");

        }

        return 0;
}

Ten ovsem konci segfaultem na prvni outb instrukci. Proc nefunguje?

diky


david




Další informace o konferenci Linux