강좌 & 팁
임베디드 보드를 사용하다가 보면 Input에 연결된 정보를 볼 경우가 있는데 가끔씩 하다보니 생각이 잘 나지 않아서 정리 차원에서
글을 올립니다.
1. INPUT 디바이스 정보 보기
[root@falinux ~]$ cd /proc/
[root@falinux proc]$ cd bus/
[root@falinux bus]$ ls
input usb
위의 파일 중 input 디렉토리로 들어갑니다.
[root@falinux bus]$ cd input/
[root@falinux input]$ ls
devices handlers
두개의 파일 중 연결된 input 디바이스 정보를 보기 위해서는 device 를 열어보면 됩니다.
---------------------------------------------------------------------------------
[root@falinux input]$ cat devices
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="falinux-gpio-keys"
P: Phys=falinux_gpio-keys/input0
S: Sysfs=/devices/platform/falinux-gpio-keys/input/input0
U: Uniq=
H: Handlers=kbd event0 evbug
B: EV=3
B: KEY=7fffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="S3C TouchScreen"
P: Phys=input(ts)
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=mouse0 event1 evbug
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
----------------------------------------------------------------------------------
현재 연결된 Input 디바이스는 2개입니다.
하나는 key 입력이고, 다른 하나는 TouchScreen 입니다. N: Name 을 보시면 됩니다.
여기서 봐야할 중요한 것은 이 Input 디바이스가 어떤 Handlers 에 연결되어 있는가입니다.
H: Handlers 를 보시면 됩니다.
즉, 2번째인 S3C TouchScreen 의 경우에는 Handlers가 mouse0, event1 evbug 3가지의 디바이스 장치파일에 연결되어
있다는 것을 알 수 있습니다.
이것은 어플리케이이션 프로그램에서 디바이스 장치를 Open 할 장치명을 알려주는 것입니다.
S3C TouchScreen 는 input 디바이스의 event 를 사용하기 때문에 open 시 다음과 같이 해야 TouchScreen의 입력값을
읽을 수 있습니다.
dev = open( "/dev/input/event1", O_RDWR);
[참고]
어플리케이션에서 프로그램을 작성하여 테스트하기 전에 hexdump 라는 유틸을 사용하면 H/W 동작여부를 확인 할 수 있습니다.
Input 디바이스의 장치파일입니다.
[root@falinux input]$ ls -al /dev/input/
crwxrwxrwx 1 root root 13, 64 Apr 17 2008 event0
crwxrwxrwx 1 root root 13, 65 Apr 17 2008 event1
crwxrwxrwx 1 root root 13, 66 Apr 17 2008 event2
crwxrwxrwx 1 root root 13, 67 Apr 17 2008 event3
crwxrwxrwx 1 root root 13, 63 Apr 17 2008 misc
cr wxrwxrwx 1 root root 13, 32 Apr 17 2008 mouse0
crwxrwxrwx 1 root root 13, 128 Apr 17 2008 ts0
crwxrwxrwx 1 root root 13, 129 Apr 17 2008 ts1
crwxrwxrwx 1 root root 13, 130 Apr 17 2008 ts2
crwxrwxrwx 1 root root 13, 131 Apr 17 2008 ts3
[root@falinux input]$ hexdump /dev/input/event1
하시고 TouchScreen 을 누르면 Hex값으로 동작 여부를 확인 할 수 있습니다. ( 종료는 Ctrl + c 입니다 )
[root@falinux input]$ hexdump /dev/input/event0
하시고 저희 EZ-S3C6410 보드에 있는 두개의 Key를 누르면 아래와 같이 Hex값으로 동작 여부를 알수 있습니다.
0000000 0504 0000 967c 0001 0001 008b 0001 0000
0000010 0504 0000 96bb 0001 0000 0000 0000 0000
0000020 0504 0000 f1c9 0004 0001 008b 0000 0000
0000030 0504 0000 f202 0004 0000 0000 0000 0000
0000040 0504 0000 7020 000a 0001 009e 0001 0000
0000050 0504 0000 705c 000a 0000 0000 0000 0000
0000060 0504 0000 cb66 000d 0001 009e 0000 0000
0000070 0504 0000 cb98 000d 0000 0000 0000 0000
0000080 0505 0000 fa3c 0000 0001 008b 0001 0000
0000090 0505 0000 fa77 0000 0000 0000 0000 0000
00000a0 0505 0000 6b32 0003 0001 008b 0000 0000
00000b0 0505 0000 6b6a 0003 0000 0000 0000 0000
USB 마우스나 키보드를 연결하고 테스트해 보셔도 됩니다.
이때 [root@falinux ]$ cat /proc/bus/input/devices 하셨어 연결된 입력 장치의 정보를 보시고 하세요..