PSM(4)

명칭
psm - PS/2 마우스 방식의 pointing device용 드라이버

서식
options "PSM_HOOKAPM" options "PSM_RESETAFTERSUSPEND" options "KBD_RESETDELAY=N" options "KBD_MAXWAIT=N" options "PSM_DEBUG=N" options "KBDIO_DEBUG=N" device psm0 at isa? tty irq 12

해설
psm 드라이버는 PS/2 방식의 pointing device에 대한 서포트를 행합니다. 현재, 시스템에는 다만 하나의 psm 디바이스 노드를 둘 수가 있습니다. PS/2 마우스 포트는 키보드 콘트롤러의 보조 포토에 배치되고 있으므로, 키보드 콘트롤러용의 드라이버이다 atkbdc 도 함께 커널에 짜넣어지지 않으면 안됩니다. 또한 현시점에서는 irq 번호를 변경할 수 없기 때문에 주의해 주세요.

기본적인 PS/2 방식의 pointing device에는 2 개 또는 3 개의 버튼이 있습니다. 안에는 롤러 또는 휠이나 버튼이 몇이나 추가되고 있다 디바이스도 있습니다.

  디바이스 분해가능
통상 PS/2 방식의 pointing device는 몇 단계인가의 분해가능, 즉, 이동에 대한 감도를 가지고 있습니다. 이러한 분해가능은 일반적으로, 1 인치 근처 25, 50, 100, 200 펄스 되고 있습니다. 디바이스에 따라서는보다 세밀한 분해가능을 가지고 있는 것도 있습니다. 현재의 분해가능은 실행시로 변경할 수 있습니다. psm 드라이버에서는, 유저는 미리 드라이버 플래그를 이용해 분해가능을 설정한다 (드라이버의 설정 (을)를 참조) 인가, 또는 다음에 ioctl(2) 명령의 MOUSE_SETMODE (IOCTL (을)를 참조) (을)를 이용해 분해가능을 변경할 수가 있습니다.

  통지 레이트
디바이스가 호스트 시스템에 이동과 버튼 상태의 보고를 행한다 빈도, 즉 통지 레이트의 설정도 변경 가능합니다. 일반적으로 말해 PS/2 방식의 pointing device는 매초 10, 20, 40, 60, 80, 100, 200 회 의 보고를 송신할 수가 있습니다. 60 회 또는 100 회 매초의 통지 레이트가 다수의 디바이스에 대한 기본값이라고 생각됩니다. 아무 이동도 없고, 한편 어느 버튼도 그 상태를 변경하고 있지 않을 때는, 그 디바이스는 호스트 시스템에 아무것도 통지하지 않는다고 하는 것에 주의해 주세요. 통지 레이트는 ioctl 콜을 이용해 변경할 수 있습니다.

  동작 레벨
psm 드라이버에는 3 단계의 동작 레벨이 있습니다. 현재의 동작 레벨은 ioctl 콜을 이용해 설정할 수 있습니다.

레벨 0 에서는 기본적인 서포트가 행해집니다. 즉, 디바이스 드라이버는 접속된 디바이스의 수평 방향과 수직 방향의 이동 및 최고 3 개까지의 버튼 상태를 보고합니다. 이동과 버튼 상태는 일련의 고정장 데이터 패킷 ( 데이터 패킷 형식 참조) 에 encode 됩니다. 레벨 0 은 디폴트의 동작 레벨이며, 유저 프로그램 하지만 드라이버를 오픈했을 때, 처음은 이 레벨에 있습니다.

동작 레벨 1, 즉 「확장」레벨에서는, 만약 존재한다면 롤러 (또는 휠), 및 최고 11 개까지의 버튼이 서포트됩니다. 롤러에 의한 이동은 Z 축으로 따른 이동으로서 보고됩니다. 이 레벨에서는 8 바이트의 데이터 패킷이 유저 프로그램에 보내집니다.

동작 레벨 2 에서는, pointing device로부터의 데이터는 그대로 유저 프로그램 에게 건네집니다. 최신의 PS/2 방식의 pointing device는 자주 고유의 데이터 형식을 이용하고 있습니다. 그 때문에, 유저 프로그램에서는 이 레벨로 드라이버를 조작할 경우에 특수한 디바이스로부터의 데이터 형식에 관한 지식에 정통하고 있는 것이 요구됩니다. 이 레벨을 「네이티브」레벨이라고 합니다.

  데이터 패킷 형식
psm 드라이버로부터 인도해지는 데이터 패킷은 동작 레벨에 따라서 다른 형식 (이)가 되어 있습니다.

PS/2 마우스 방식의 pointing device로부터의 데이터 패킷은, 동작 레벨 0 에서는 3 바이트 있습니다:

Byte 1
    bit 7
        1 은 수직 이동 카운트의 산술 넘치고를 나타냅니다.
    bit 6
        1 은 수평 이동 카운트의 산술 넘치고를 나타냅니다.
    bit 5
        수직 이동 카운트가 부의 경우에 세트 됩니다.
    bit 4
        수평 이동 카운트가 부의 경우에 세트 됩니다.
    bit 3
        항상 1 입니다.
    bit 2
        안버튼 상태; 압하되고 있으면 세트 됩니다. 안버튼이 없는 디바이스 그럼, 이 비트는 항상 0 입니다.
    bit 1
        오른쪽 버튼 상태; 압하되고 있으면 세트 됩니다.
    bit 0
        왼쪽 버튼 상태; 압하되고 있으면 세트 됩니다.
Byte 2
    2 의 보수에서의 수평 이동 카운트; -256 (으)로부터 255 까지. 부호 비트는 제 1 바이트에 있는 것에 주의해 주세요.
Byte 3
    2 의 보수에서의 수직 이동 카운트; -256 (으)로부터 255 까지. 부호 비트는 제 1 바이트에 있는 것에 주의해 주세요.

레벨 1 에서는, mouse(4) 에 정의되고 있는 표준 형식이다 MOUSE_PROTO_SYSMOUSE 형식이 이용됩니다.

레벨 2, 즉 네이티브 레벨에서는, 데이터 패킷의 길이와 형식에는 표준이 없습니다.

  가속
psm 드라이버는 pointing device의 이동을 어느 정도 「가속」할 수가 있습니다. 디바이스를 빠르게 움직이는 만큼, 포인터는 화면상을 보다 먼 곳까지 이동합니다. 드라이버에는 가속의 효과를 지배하는 내부 변수가 있습니다. 그 변수의 값은 드라이버 플래그를 이용할까 또는 ioctl 콜을 이용해 변경할 수 있습니다.

  디바이스 번호
psm 의 마이나데바이스 번호는 차식에 의해 생성됩니다.

    minor = (`unit' << 1) | `non-blocking'

여기서, 「unit」란 디바이스 번호 (통상 0)입니다. 그리고 「비블로킹」비트가 세트 되는 것은 「프로세스 블록을 행하는 것으로 마우스 입력이 있을 때까지 웨이트 하지 않고 , 즉시 복귀한다」일을 나타내기 때문에(위해)입니다. 「비블로킹」비트는 XFree86 에 대해서는 세트 되지 않으면 안되어, 그 때문에 XFree86 에 대해 통상 이용되는 마이나데바이스 번호는 1 입니다. 디바이스 노드명에 대해서는 관련 파일 (을)를 참조해 주세요.

드라이버의 설정

  커널 설정 옵션
psm 드라이버를 제어하기 위해 이하와 같은 커널 설정 옵션이 있습니다. 이것들 옵션은 커널 설정 파일 (config(8) (을)를 참조) 로 설정할 수 있습니다.

PSM_HOOKAPM
    랲탑 컴퓨터안에는, 시스템이 전력 절약 모드로부터 「resume」한 직후, 어떤 (뜻)이유인가 짜넣어진 PS/2 pointing device가 조작 불능이 되어 있는 것이 있습니다. 무엇보다, 결국은 사용 가능하게는 됩니다. 입출력 조작을 실행해 디바이스를 자극하면 디바이스를 빨리 눈을 뜨게 한다 일이 생기는 것 같다고 하는 보고가 있습니다. 이 옵션은, 일련의 코드를 psm 드라이버에 추가해 APM 「resume」이벤트를 훅 해, 디바이스에 무해인 입출력 조작을 베풉니다.

PSM_RESETAFTERSUSPEND
    이 옵션에 의해 상술의 문제에 대해 좀 더 강력한 동작을 더합니다. 이 옵션을 지정하면(자), APM resume 이벤트의 뒤 psm 드라이버는 디바이스를 리셋트 합니다. 이 옵션을 사용하려면 PSM_HOOKAPM 옵션도 또 함께 지정해 주세요.

KBD_RESETDELAY=X, KBD_MAXWAIT=Y
    psm 드라이버는 기동의 과정에서 pointing device를 리셋트 하려고 합니다. 가끔 리셋트 후에 디바이스가 응답할 때까지 시간이 걸리는 일이 있습니다. 이러한 옵션에 의해 드라이버가 어느 정도의 시간 기다려야할 것인가를 제어합니다. 드라이버는 최고로 X * Y 밀리 세컨드의 사이 웨이트 합니다. 드라이버가 유저의 pointing device를 검출할 수 없는 것처럼 보이는 경우에는, 유저는 이러한 값을 증가시키고 싶다고 생각할지도 모릅니다. 기본값은 X 에 대해서는 200 밀리 세컨드로 Y 에 대해서는 5 입니다.

PSM_DEBUG=N, KBDIO_DEBUG=N
    이것은 디버그 레벨을 N (으)로 설정합니다. 디폴트의 디버그 레벨은 0 입니다. 디버그 로그에 대해서는 진단 (을)를 참조해 주세요.

  드라이버 플래그
psm 드라이버는 이하와 같은 플래그를 받아들입니다. 커널 설정 파일안인가 또는 기동시의 유저 설정 메뉴 ( boot(8) (을)를 참조) 그리고 이러한 플래그를 설정해 주세요.

bit 0..3 RESOLUTION
    이 플래그는 pointing device의 분해가능을 지정합니다. 0 에서 4 까지 나오지 않으면 안됩니다. 이 값이 크면 큰 만큼, 디바이스는 분해가능이 높아집니다. 이 필드에 의해 지정되는 실제의 분해가능은 디바이스의 모델에 의해 다릅니다. 일반적인 분해가능은 이하와 같습니다.

    1 (low)
        25 펄스마다 인치 (ppi)
    2 (medium low)
        50 ppi
    3 (medium high)
        100 ppi
    4 (high)
        200 ppi

    이 플래그를 0 대로 해 두면, (그것이 무엇으로 어) 디바이스의 디폴트의 분해가능이 됩니다.

bit 4..7 ACCELERATION
    이 플래그는 가속 효과의 정도를 가감(상태)합니다. 이 플래그의 값이 작으면 작을수록, 이동의 감도는 오릅니다. 허용 되는 최소치는 1 이며, 이 값으로 가장 감도가 높은 설정이 됩니다. 이 플래그를 0 으로 설정하면 완전하게 가속 효과를 무효로 합니다.

bit 8 NOCHECKSYNC
    psm 드라이버는 데이터 패킷의 제 1 바이트의 검출을 그 바이트의 비트 패턴을 검사하는 것으로써 행하려고 합니다. 이 방식은 대체로의 PS/2 pointing device에서는 맛있게 갑니다. 그러나 기존의 디바이스와 그다지 호환성이 없는 디바이스안에는 이 방식과 호환없는 것이 있을지도 모릅니다. 만약, 당신의 pointing device가 기대 대로는 기능하고 있지 않다고 생각되어 한편 커널이 빈번하게

        psmintr: out of sync (xxxx ! = yyyy).

    (와)과 같은 메세지를 콘솔에 표시하는 경우에는, 동기 검사를 무효로 하기 위해 이 플래그를 세트 해 효과가 있는지 어떤지를 조사해 주세요.

bit 9 NOIDPROBE
    이 플래그가 지정되면(자), psm 드라이버는 pointing device의 모델을 조사하려고 하거나 모델 고유의 초기화를 하지 않습니다. 그 경우, 디바이스는 표준적인 PS/2 마우스와 같이 행동할 것입니다. 휠이나 추가된 버튼과 같이 특별한 기능은 psm 드라이버에는 인식되지 않을 것입니다.

bit 10 NORESET
    이 플래그가 세트 되고 있으면, 디바이스를 초기화할 경우에 psm 드라이버는 pointing device를 리셋트 하지 않습니다. 만약 FreeBSD 커널이 다른 OS 의 기동한 후에 일어섰다면, pointing device는 이전의 OS 의 설정을 계승하게 됩니다. 그러나, psm 드라이버에는 그 설정을 알기 때문에(위해) 방법이 없기 때문에, 디바이스와 드라이버는 올바르게 동작하지 않을지도 모릅니다. 이 플래그는 정상적인 환경하에서는 결코 필요하다고는 안 될 것입니다.

bit 11 FORCETAP
    패드 디바이스안에는, 디바이스의 표면을 유저가 「가볍게 두드린다(탭 한다)」라고, 마치 4 번째의 버튼이 밀렸는지와 같이 보고하는 것이 있습니다 ( 경고 참조) 이 플래그에 의해 psm 드라이버는 디바이스가 이와 같이 행동하면(자) 가정합니다. 이 플래그가 없으면, 본드라이버는 ALPS GlidePoint 모델 에 대해서만 이러한 행동을 가정합니다.

bit 12 IGNOREPORTERROR
    이 플래그에 의해, PS/2 마우스 포트를 검사할 경우에 psm 드라이버는 약간의 에러 상태를 무시합니다. 이것은 정상적인 환경하에서는 결코 필요하게는 안 될 것입니다.

IOCTL
마우스 드라이버에는 몇개의 ioctl(2) 명령이 있습니다. 이러한 명령와 관련하는 구조체 및 정수는 <machine/mouse.h> 에 정의되고 있습니다. 명령의 일반적인 해설은 mouse(4) 에게 줄 수 있고 있습니다. 이 섹션에서는 psm 드라이버에 고유의 기능에 대해 해설합니다.

MOUSE_GETLEVEL int *level
MOUSE_SETLEVEL int *level
    이러한 명령로 psm 드라이버의 동작 레벨을 조작합니다.

MOUSE_GETHWINFO mousehw_t *hw
    이것은 접속된 디바이스의 하드웨어 정보를 이하의 구조체로 돌려줍니다.

        typedef struct mousehw {
            int buttons;    /* 버튼의 수 */
            int iftype;     /* I/F 의 종류 */
            int type;       /* 마우스/트랙볼/패드... */
            int model;      /* I/F 에 고유의 모델 ID */
            int hwid;       /* I/F 에 고유의 하드웨어 ID */
        } mousehw_t;

    buttons 필드는 디바이스에 있는 버튼의 수를 보관 유지합니다. 현재 psm 드라이버는 Logitech 제의 3 버튼 마우스를 검출해 그처럼 보고할 수가 있습니다. 다른 메이커제의 3 버튼 마우스에 대해서는 올바르게 보고될지 어떨지는 모릅니다. 그러나, 버튼의 수가 올바르게 검출되어도 되지 않아도 드라이버의 운용에는 영향을 주지 않습니다.

    iftype 필드는 항상 MOUSE_IF_PS2 입니다.

    type 필드는 다음과 같은 디바이스의 종류를 나타냅니다. 즉 MOUSE_MOUSE, MOUSE_TRACKBALL, MOUSE_STICK, MOUSE_PAD, MOUSE_UNKNOW 입니다. 유저는 이 필드에 너무 의지해서는 안됩니다. 그렇다고 하는 것은, 드라이버는 반드시 항상 디바이스의 종류를 식별할 수 있는 것은 아니기 때문입니다. 실제의 곳디바이스의 종류를 식별할 수 있는 것은 드뭅니다.

    model 필드는 동작 레벨 0 에서는 항상 MOUSE_MODEL_GENERIC 입니다. 이것은 보다 고차의 동작 레벨에서는 MOUSE_MODEL_GENERIC 가마타는 MOUSE_MODEL_XXX 중 어떤 것이나 1 개가 될지도 모릅니다. 이 경우에도 psm 드라이버가 이 필드에 적절한 값을 세트 할지 어떨지는 모릅니다.

    hwid 필드는 디바이스에 의해 돌려주어진 ID 의 값입니다. 일반적인 ID 는 이하와 같습니다.

    0   마우스 (Microsoft, Logitech 및 다른 다수의 메이커)
    2   Microsoft Ballpoint mouse
    3   Microsoft IntelliMouse

MOUSE_GETMODE mousemode_t *mode
    이 명령에 의해 마우스 드라이버의 현재의 동작 파라미터를 얻습니다.

        typedef struct mousemode {
            int protocol;    /* MOUSE_PROTO_XXX */
            int rate;        /* 통지 레이트 (매초), 불명때는 -1 */
            int resolution;  /* MOUSE_RES_XXX, 불명때는 -1 */
            int accelfactor; /* 가속 인자 */
            int level;       /* 드라이버의 동작 레벨 */
            int packetsize;  /* 데이터 패킷의 길이 */
            unsigned char syncmask[2]; /* 동기 비트 */
        } mousemode_t;

    protocol 필드는 동작 레벨 0 으로 2 에서는 MOUSE_PROTO_PS2 입니다. 동작 레벨 1 에서는, MOUSE_PROTO_SYSMOUSE 입니다.

    rate 필드는 상태를 통지하는 빈도 (1 초당에 보고하는 회수)로, 이 빈도로 디바이스는 호스트 컴퓨터에 이동의 보고를 보냅니다. 서포트되고 있는 일반적인 값은, 10, 20, 40, 60, 80, 100, 200 입니다. 안에는 다른 임의의 값도 수용 하는 마우스도 있겠지요.

    resolution 필드는 pointing device의 분해가능으로, 정수 MOUSE_RES_XXX 안의 어느쪽이든 하나의 값인가 또는 있는 정의 값입니다. 이 값이 큰 만큼, 마우스는 분해가능이 세밀하게 됩니다. 정수 MOUSE_RES_XXX 에 의해 지정되는 실제의 분해가능은 마우스의 모델에 따라서 다릅니다. 일반적인 분해가능은 다음과 같습니다:

    MOUSE_RES_LOW
        25 ppi
    MOUSE_RES_MEDIUMLOW
        50 ppi
    MOUSE_RES_MEDIUMHIGH
        100 ppi
    MOUSE_RES_HIGH
        200 ppi

    accelfactor 필드는 가속 기능 (가속 (을)를 참조) (을)를 관리하기 때문에(위해)의 값을 보관 유지합니다. 이 값은 0 이나 정이 아니면 안됩니다. 만약 이 값이 0 이면, 가속은 무효가 됩니다.

    packetsize 필드는 데이터 패킷의 길이를 나타냅니다. 이것은 동작 레벨이나 pointing device의 모델에 의해 바뀝니다.

    level 0
        3 바이트
    level 1
        8 바이트
    level 2
        디바이스의 모델로 정해집니다

    배열이다 syncmask 필드는 데이터 패킷의 제 1 바이트를 검출하기 때문에(위해)의 비트 마스크와 비트 패턴을 보관 유지합니다. syncmask[0] 필드는 각 바이트와 AND 를 취하기 위한 비트 마스크입니다. 그 결과가 syncmask[1] 필드에 동일한 경우에는, 아마 그 바이트는 데이터 패킷의 제 1 바이트 일 것이다 생각됩니다. 주의 해야 할것은, 이 검출 방법은 100% 신뢰할 수 있는 것이 아니고, 그 때문에, 단지 참고가 되는 수단에 지나지 않는다고 봐야 할 일입니다.

MOUSE_SETMODE mousemode_t *mode
    이 명령은 마우스 드라이버의 현재의 동작 파라미터를 mode 필드로 지정된 대로 변경합니다. rate, resolution, level, accelfactor 의 각 필드만을 변경할 수 있습니다. 그 외의 필드에 값을 세트 해도 에러를 생성하지않고 효과도 없습니다.

    어느 필드의 현재의 설정을 변경하고 싶지 않은 경우에는, 그 필드에 -1 를 넣어 주세요. resolution 필드와 rate 필드에는 0 을 넣을 수도 있어 이 경우에는 그 필드의 기본값 하지만 설정됩니다.

MOUSE_READDATA mousedata_t *data
MOUSE_READSTATE mousedata_t *state
    이러한 명령에 대해서는, 현재 psm 드라이버는 서포트하고 있지 않습니다.

MOUSE_GETSTATE mousestatus_t *status
    이 명령은 mouse(4) 에 기술되고 있도록(듯이) 버튼의 현재 상태와 이동 카운트를 돌려줍니다.

관련 파일
/dev/psm0
    「비블로킹」형 디바이스 노드
/dev/bpsm0
    devfs 에서의 「블로킹」형 디바이스 노드.

사용예
    options "PSM_HOOKAPM"
    device psm0 at isa?  tty irq 12

「resume」이벤트 후에 pointing device를 자극하기 위한 옵션의 코드와 함께 psm 드라이버를 커널에 짜넣습니다.

    device psm0 at isa?  tty flags 0x024 irq 12

디바이스 분해가능을 높게 (4) 세트 해, 가속 인자를 2 에 세트 합니다.

진단

디버그 레벨 0 에서는, 기동 과정에서의 이하와 같은 행 이외에는 대부분 정보는 로그 되지 않습니다:

    psm0: device ID X

여기서 X (은)는 발견된 pointing device로부터 돌려주어진 디바이스 ID 코드입니다. 기존의 ID 에 대해서는 MOUSE_GETINFO (을)를 참조해 주세요.

디버그 레벨 1 에서는 드라이버가 보조 포트 (마우스 포토) (을)를 검사하고 있는 동안에 의해 많은 정보가 로그 됩니다. 메세지는 LOG_DEBUG 의 level 로 LOG_KERN 를 facility 로서 (syslogd(8) (을)를 참조) 로그 됩니다.

    psm0: current command byte:xxxx
    kbdio: TEST_AUX_PORT status:0000
    kbdio: RESET_AUX return code:00fa
    kbdio: RESET_AUX status:00aa
    kbdio: RESET_AUX ID:0000
    [...]
    psm: status 00 02 64
    psm0 irq 12 on isa
    psm0: model AAAA, device ID X, N buttons
    psm0: config:00000www, flags:0000uuuu, packet size:M
    psm0: syncmask:xx, syncbits:yy

제 1 행 째는 보조 포트가 검사되기 직전의 키보드 콘트롤러의 명령 바이트의 값을 나타냅니다. 이것은 통상은, 4D, 45, 47, 65 의 어느쪽이든으로, 통전시에 메인보드 BIOS 가 키보드 콘트롤러를 초기화한 방법에 의해 정해집니다.

제 2 행 째는 보조 포트 인터페이스에 대해서 키보드 콘트롤러가 테스트한 결과를 나타내, 0 으로 에러가 없는 일을 나타냅니다. 그렇지만, 비록 시스템에 포트가 존재하지 않아도 에러가 없으면 보고하는 콘트롤러도 안에는 있는 것에 주의해 주세요.

제 3 행 째부터 제 5 행 째까지는 pointing device의 리셋트 상태를 나타냅니다. 기능하고 있는 디바이스이면 FA AA <ID> 라고 하는 순서에 줄선 데이터 (을)를 돌려줄 것입니다. 이 ID 코드는 위에서 해설한 것입니다.

제 7 행 째는 현재의 하드웨어의 설정을 나타냅니다. 이러한 바이트는 다음과 같이 포맷 됩니다:

Byte 1
    bit 7
        예약이 끝난 상태.
    bit 6
        0 - 스트림 모드, 1 - 리모트 모드. 스트림 모드에서는, pointing device는 그 상태가 바뀔 때에 디바이스 상태를 보냅니다. 리모트 모드에서는, 호스트 컴퓨터는 디바이스 상태가 보내지도록(듯이) 요구하지 않으면 안됩니다. psm 드라이버는 디바이스를 스트림 모드로 합니다.
    bit 5
        pointing device가 현재 유효하면 세트 됩니다. 유효하지 않으면 0 입니다.
    bit 4
        0 - 1:1 슬캘링, 1 - 2:1 슬캘링. 1:1 슬캘링이 디폴트입니다.
    bit 3
        예약이 끝난 상태.
    bit 2
        왼쪽 버튼 상태; 압하되고 있으면 세트.
    bit 1
        안버튼 상태; 압하되고 있으면 세트.
    bit 0
        오른쪽 버튼 상태; 압하되고 있으면 세트.
Byte 2
    bit 7
        예약이 끝난 상태.
    bit 6..0
        분해가능 코드: 0 에서 3 까지. 분해가능 코드에 대응하는 실제의 분해가능은 디바이스에 의해 다릅니다.
Byte 3
    상태 통지 레이트 (1 초당에 보고하는 회수)로, 이 빈도로 디바이스는 이동 보고를 호스트 컴퓨터에 보냅니다.

psm 드라이버가 유저 프로그램에 의해 오픈될 때까지는 pointing device는 유효하게 안 되는 것에 주의해 주세요.

나머지의 행에 대해서는 디바이스 ID 코드, 검출된 버튼의 수, 및 내부 변수를 표시합니다.

디버그 레벨 2 에서는, 훨씬 많은 상세한 정보가 로그 됩니다.

경고
많은 패드 디바이스는, 유저가 패드의 표면을 「가볍게 두드렸다(탭 했다)」때에, 마치 제 1 (왼쪽) 버튼이 압하되었는지와 같이 행동합니다. 이것에 대해, ALPS GlidePoint 의 패드 모델안에는, 가볍게 두드리는(tapping) 동작을 제 4 번째의 버튼의 이벤트로서 처리하는 것이 있습니다.

MouseSystems 제의 PS/2 마우스안에는, 올바르게 기능시키기 위해서(때문에) 고분해가능 모드로 할 필요가 있는 것이 있습니다. 드라이버 플래그를 이용해 분해가능을 설정해 주세요.

일단 데이터 스트림의 동기가 어긋났을 경우에는, 패킷의 제 1 바이트에 다시 동기 하는 것을 프로텍션하는 방법은 없습니다. 그렇지만, X 서버가 moused(1) (을)를 이용해 마우스에 액세스 하고 있지 않는 경우에는, 유저가 XFree86 서버를 사용중에 문제가 생겨도, 가상 단말로 전환하고 나서 X 서버로 돌아오면 X 서버를 마우스와 동기 시킬 수가 있을지도 모릅니다. 마우스를 이동시키지 않고 몇개의 버튼을 클릭하면 역시 효과가 있을지도 모릅니다.

버그
ioctl 명령의 MOUSEIOCREAD (은)는 삭제되었습니다. 어쨌든, 이것은 기능하고 있지 않았습니다.

관련 항목
ioctl(2), syslog(3), atkbdc(4), mouse(4), mse(4), sysmouse(4), moused(8), syslogd(8)

저자
psm 드라이버는 매우 많은 사람들에 의해 된 일에 근거하고 있습니다. 이러한 사람들중에서 소수의 분들을 두면 Eric Forsberg, Sandi Donno, Rick Macklem, Andrew Herbert, Charles Hannum, Shoji Yuen, Kazutaka Yokota 하지만 있습니다.

이 메뉴얼 페이지는 Kazutaka Yokota <yokota@FreeBSD.org> 하지만 썼습니다.