· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
USB 마우스 설정 팁

1. USB 마우스 설정 팁

1.1. 소개

이 글은 리눅스에서 USB 마우스를 설정하기 위한 팁이다.

1.2. 설정

1.2.1. BIOS 설정

BIOS 설정은 필요 없다. USB legacy support가 필요하다는 소문이 있지만, 그 설정은 USB 드라이버가 없지만 키보드나 마우스가 절실히 필요한 상황에서 입력 장치를 사용할 수 있게 해주는 설정일 뿐이다. "fsck를 할까요? (y/n)"이라고 컴퓨터가 물어볼 때 USB 키보드가 인식이 안되고 있으면 난감할 것이다. 그럴 때 필요하긴 하지만, 마우스 지원을 위해 꼭 필요한 옵션은 아니다.

1.2.2. 커널 설정 (2.6.9)


  • General setup -> Support for hot-pluggable devices
  • General setup -> Configure standard kernel features (for small systems)
  • Bus options (PCI, PCMCIA, EISA, MCA, ISA) -> PCI support

위와 같이 준비를 마치고 다음을 선택한다.

  1. Device Drivers -> Input device support -> Input devices -> Userland interfaces -> Mouse interface
  2. Device Drivers -> USB support -> Support for Host-side USB
  3. USB 컨트롤러에 맞는 host controller interface 선택
    • "lspci -v | grep HCI"로 컨트롤러 확인
      • EHCI HCD (USB 2.0) support
      • UHCI HCD (most Intel and VIA) support
      • OHCI HCD support
  4. 마우스 드라이버 선택
    • Device Drivers -> USB support -> USB Human Interface Device (full HID) support: 추천
      • Device Drivers -> USB support -> HID input layer support
    • Device Drivers -> USB support -> USB HID Boot Protocol drivers: 비추천
      • Device Drivers -> USB support -> USB HID Boot Protocol drivers -> USB HIDBP Mouse (simple Boot) support

마우스 드라이버를 두개 모두 선택하더라도 실질적으로는 하나만 사용된다. 확실하게 필요한 것 한가지만 선택하면 속 편하다. 입력장치 설정에서 X/Y 해상도를 입력하면 마우스의 감도가 변한다는 소문(?)이 있지만 커널 설정의 도움말에는 그런 말은 없다.

1.2.3. 장치 설정

마우스 장치 파일이 없을 경우 만들어주자. 배포판에 따라서는 /dev/input/mice 대신에 /dev/input 파일이 사용될 수도 있다.

# cd /dev && MAKEDEV usb && MAKEDEV input

다음과 같이 수동으로 할 수도 있다.

# mkdir /dev/input
# mknod /dev/input/mice c 13 63
# mknod /dev/input/mouse0 c 13 32

crw-rw---- 1 root root 13, 63 2004-01-01 09:31 mice
crw-rw---- 1 root root 13, 32 2004-01-01 09:31 mouse0
crw-rw---- 1 root root 13, 33 2004-01-01 09:31 mouse1
crw-rw---- 1 root root 13, 34 2004-01-01 09:31 mouse2
crw-rw---- 1 root root 13, 35 2004-01-01 09:31 mouse3

/dev/input/mice는 USB 마우스 전체를 대표하는 장치이고, /dev/input/mouse*는 USB 마우스 하나하나의 장치이다. 필요하다면 원하는 만큼 만들어주자.

1.2.3.1. 장치 시험

모듈 생성을 선택했다면 입력 장치(input), 마우스 장치(mousedev), USB 지원(usbcore), USB 호스트 컨트롤러, 마우스 드라이버(usbhid/hid/usbmouse) 등의 모듈을 modprobe로 올린다. 아래 모듈 예제 부분을 참고바람. (참고로 커널 2.6의 경우 input 모듈이 생기지 않을 수도 있다.)

root로 콘솔에서 "cat /dev/input/mice"를 실행한 후 마우스를 움직였을 때 콘솔 화면에 내용이 나타나면 성공이다. 확인이 끝나면 Ctrl-C를 누른다. 혹시 화면이 깨진다면 침착하게 "setterm -reset" 또는 "setterm -initialize"를 실행한다.

1.2.4. 프로그램 설정

1.2.4.1. X 설정

Section "InputDevice"
    Identifier "USB Mice"
    Driver "mouse"
    Option "Protocol" "IMPS/2"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5"
    Option "Buttons" "5"
EndSection

XFree86 4.x등의 경우 프로토콜은 IMPS/2로, 장치는 적절한 장치로 맞춘다. 버튼이 셋보다 많다면 ZAxisMapping, Buttons를 적절히 수정하고 xmodmap을 활용한다.

Section "ServerLayout"
    Identifier     "XFree86 Configured"
    Screen         "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Mouse1" "SendCoreEvents"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "PS/2"
    Option      "Device" "/dev/psaux"
    Option      "Buttons" "5"
    Option      "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option      "Protocol" "IMPS/2"
    Option      "Device" "/dev/input/mice"
    Option      "Buttons" "5"
    Option      "ZAxisMapping" "4 5"
EndSection

PS/2 마우스와 USB 마우스를 동시에 사용할 경우 한쪽은 CorePointer로, 다른 한쪽은 SendCoreEvents로 잡는다.

1.2.4.2. 콘솔 설정

# /usr/sbin/gpm -m /dev/input/mice -t imps2

프로토콜은 imps2로, 장치는 적절한 장치로 한다.

# /usr/sbin/gpm -m /dev/input/mice -t imps2 -M -m /dev/psaux -t ps2 -R imps2

콘솔만 사용하고 PS/2 마우스와 USB 마우스를 함께 사용할 경우 위와 같이 해준다. DeleteMe 혹시 X에서도 마우스 설정을 두번 해주고 gpm에서도 -R을 켜주면 X에서 PS/2 마우스가 두배 빠르게 움직이지 않나요?

1.3. 모듈 예제

1.3.1. Full HID 설정

Kernel 2.6
Module                  Size  Used by
uhci_hcd               32880  0
mousedev               10444  0
usbhid                 32768  0
usbcore               114784  4 uhci_hcd,usbhid

Kernel 2.4
Module                  Size  Used by    Not tainted
uhci                   25884   0 (unused)
mousedev                4308   0
hid                    21988   0 (unused)
usbcore                63756   1 [uhci hid]
input                   3648   0 [mousedev hid]

Kernel 2.2
Module                  Size  Used by
hid                    11820   0 (unused)
mousedev                3952   0 (unused)
input                   2908   0 [hid mousedev]
usb-uhci               20040   0 (unused)
usbcore                27908   0 [hid usb-uhci]

1.3.2. HIDBP 설정

Kernel 2.6
Module                  Size  Used by
usbmouse                5664  0
uhci_hcd               32880  0
mousedev               10444  0
usbcore               114784  4 usbmouse,uhci_hcd


Kernel 2.4
Module                  Size  Used by    Not tainted
usbmouse                2264   0 (unused)
uhci                   25884   0 (unused)
mousedev                4308   0
usbcore                63756   1 [usbmouse uhci]
input                   3648   0 [usbmouse mousedev]


Kernel 2.2
Module                  Size  Used by
mousedev                3952   0 (unused)
usbmouse                1708   0 (unused)
input                   2908   0 [mousedev usbmouse]
usb-uhci               20040   0 (unused)
usbcore                27908   0 [usbmouse usb-uhci]

1.4. 그래도 안되면

3. Q and A

Q : mousedev 를 모듈로 넣으려면 menuconfig 에서 어떤 옵션을 선택해야 하나요?(커널은 2.6.7 입니다.)

CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

처럼, 모듈이 아닌, 커널내에 들어가는 것 같은데. 저것을 임의로 m 으로 바꾸면 안되죠?(make menuconfig 에서는 못 찾겠습니다.) 이런것을 대조 해놓은 것은 없나요? (usbmouse 는 menuconfig 의 어느 항목 이런식으로 찾기 쉽게. )

A : 위의 섹션 1.2.2를 보시면 menuconfig에서 어떤 항목을 골라야 할지 대충 아실 수 있습니다.

Full HID 로 시도를 했는데, HIDBP 로 바꾸어서 성공했습니다. mousedev 는 모듈이 아닌 커널 내로 들어가는 것 같습니다. 모듈로딩에서 빼고 시도했습니다.
모듈 예제 부분을 보시면 아시겠지만 mousedev를 모듈로 만드셔도 충분히 잘 돌아갈 수 있습니다.
예. 그부분이 mousedev 을 올리려면 실패를 해서요. CONFIG_INPUT_MOUSEDEV=y 이 m (모듈) 로는 안되더라구요.그냥커널안으로..다른버전,커널로 해봐야 겠습니다.(젠투에서 하는데, 안되는 것인지 못하는 것인지..^^)
.config 파일을 임의로 편집하지 마시고, make menuconfig을 하셔서 정상적인 설정을 해주시기 바랍니다. 설정 항목 관련 help 내용을 읽어보시면 어떤 모듈 이름이 사용될지를 확인하실 수 있습니다.





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-10-21 15:41:52
Processing time 0.0120 sec