USB 마우스 설정 팁
1.2.1. BIOS 설정 ¶BIOS 설정은 필요 없다. USB legacy support가 필요하다는 소문이 있지만, 그 설정은 USB 드라이버가 없지만 키보드나 마우스가 절실히 필요한 상황에서 입력 장치를 사용할 수 있게 해주는 설정일 뿐이다. "fsck를 할까요? (y/n)"이라고 컴퓨터가 물어볼 때 USB 키보드가 인식이 안되고 있으면 난감할 것이다. 그럴 때 필요하긴 하지만, 마우스 지원을 위해 꼭 필요한 옵션은 아니다.
1.2.2. 커널 설정 (2.6.9) ¶
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. 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. 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] 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 내용을 읽어보시면 어떤 모듈 이름이 사용될지를 확인하실 수 있습니다.
|











![[http]](/imgs/http.png)