embeded/raspberry pi2015. 6. 20. 09:04

주말이니 상큼하게 라즈베리? ㅋㅋ

+ b와 2b에서 확인완료






요약본

$ sudo vi /boot/config.txt

dtoverlay=lirc-rpi

$ sudo reboot

$ sudo apt-get install lirc

$ sudo vi /etc/lirc/hardware.conf

LIRCD_ARGS="--uinput"

LOAD_MODULES=true

DRIVER="default"

DEVICE="/dev/lirc0"

MODULES="lirc_rpi"

LIRCD_CONF=""

LIRCMD_CONF=""

$ sudo service lirc stop

$ irrecord -d /dev/lirc0 ~/lircd.conf

$ sudo cp lircd.conf /etc/lirc/lircd.conf

$ sudo service lirc start 


[링크 : http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/]


lircd.conf 파일이 있긴한데.. 멀 써야 하지?

[링크 : http://lirc.sourceforge.net/remotes/]



-------------------

Step 1. config.txt의 내용에서 

# Uncomment this to enable the lirc-rpi module

dtoverlay=lirc-rpi 


Step 2. irw 해서 명령어가 실행안됨 -> lirc 미설치

$ sudo apt-get install lirc 


Step 3. hardware 파일수정

$sudo vi /etc/lirc/hardware.conf

# /etc/lirc/hardware.conf

#

# Arguments which will be used when launching lircd

LIRCD_ARGS=""


#Don't start lircmd even if there seems to be a good config file

#START_LIRCMD=false


#Don't start irexec, even if a good config file seems to exist.

#START_IREXEC=false


#Try to load appropriate kernel modules

LOAD_MODULES=true


# Run "lircd --driver=help" for a list of supported drivers.

DRIVER="UNCONFIGURED"

# usually /dev/lirc0 is the correct setting for systems using udev

DEVICE=""

MODULES=""


# Default configuration files for your hardware if any

LIRCD_CONF=""

LIRCMD_CONF="" 

을 다음과 같이

# /etc/lirc/hardware.conf

#

# Arguments which will be used when launching lircd

LIRCD_ARGS="--uinput"


#Don't start lircmd even if there seems to be a good config file

#START_LIRCMD=false


#Don't start irexec, even if a good config file seems to exist.

#START_IREXEC=false


#Try to load appropriate kernel modules

LOAD_MODULES=true


# Run "lircd --driver=help" for a list of supported drivers.

DRIVER="default"

# usually /dev/lirc0 is the correct setting for systems using udev

DEVICE="/dev/lirc0"

MODULES="lirc_rpi"


# Default configuration files for your hardware if any

LIRCD_CONF=""

LIRCMD_CONF=""


일단.. 설정한거 같으니.. 실행해보는데.. 당연히(?) 안된다.

$ sudo service lirc restart

[ ok ] No valid /etc/lirc/lircd.conf has been found..

[ ok ] Remote control support has been disabled..

[ ok ] Reconfigure LIRC or manually replace /etc/lirc/lircd.conf to enable.. 


Step 4. 혹시 모르니 lircd 데몬 종료

$ sudo service lirc restart 


Step 5. 리모컨의 특성을 설정해주어야 하는데 그게 바로 lircd.conf

$ irrecord -d /dev/lirc0 ~/lircd.conf

irrecord -  application for recording IR-codes for usage with lirc


Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)


This program will record the signals from your remote control

and create a config file for lircd.



A proper config file for lircd is maybe the most vital part of this

package, so you should invest some time to create a working config

file. Although I put a good deal of effort in this program it is often

not possible to automatically recognize all features of a remote

control. Often short-comings of the receiver hardware make it nearly

impossible. If you have problems to create a config file READ THE

DOCUMENTATION of this package, especially section "Adding new remote

controls" for how to get help.


If there already is a remote control of the same brand available at

http://www.lirc.org/remotes/ you might also want to try using such a

remote as a template. The config files already contain all

parameters of the protocol used by remotes of a certain brand and

knowing these parameters makes the job of this program much

easier. There are also template files for the most common protocols

available in the remotes/generic/ directory of the source

distribution of this package. You can use a template files by

providing the path of the file as command line parameter.


Please send the finished config files to <lirc@bartelmus.de> so that I

can make them available to others. Don't forget to put all information

that you can get about the remote control in the header of the file.


Press RETURN to continue.



Now start pressing buttons on your remote control.


It is very important that you press many different buttons and hold them

down for approximately one second. Each button should generate at least one

dot but in no case more than ten dots of output.

Don't stop pressing buttons until two lines of dots (2x80) have been

generated.


Press RETURN now to start recording.

................................................................................

Found const length: 108417

Please keep on pressing buttons like described above.

................................................................................

Space/pulse encoded remote control found.

Signal length is 67.

Found possible header: 4543 4506

Found trail pulse: 614

Found repeat code: 618 490

Signals are space encoded.

Signal length is 32

Now enter the names for the buttons.


Please enter the name for the next button (press <ENTER> to finish recording)


Checking for toggle bit mask.

Please press an arbitrary button repeatedly as fast as possible.

Make sure you keep pressing the SAME button and that you DON'T HOLD

the button down!.

If you can't see any dots appear, then wait a bit between button presses.


Press RETURN to continue.

..............................

No toggle bit mask found.

Successfully written config file.


엔터만 치고 star recording 에서 아무키나 눌러주면 되는데

처음에는 반복을 인식하는데

두번째는 반복 인식을 안해서 미친듯이 눌러줘야 한다 ㅠㅠ

아무튼 다 하고 나면 다음과 같은 lircd.conf 파일 생성

# Please make this file available to others

# by sending it to <lirc@bartelmus.de>

#

# this config file was automatically generated

# using lirc-0.9.0-pre1(default) on Fri Jun 19 23:54:38 2015

#

# contributed by

#

# brand:                       /home/pi/lircd.conf

# model no. of remote control:

# devices being controlled by this remote:

#


begin remote


  name  /home/pi/lircd.conf

  bits           32

  flags SPACE_ENC|CONST_LENGTH|REPEAT_HEADER

  eps            30

  aeps          100


  header       4543  4506

  one           607  1621

  zero          607   508

  ptrail        614

  repeat        618   490

  gap          108417

  toggle_bit_mask 0x0


      begin codes

      end codes


end remote 


Step 6. /etc/lirc/lircd.conf로 복사해주고 서비스 시작

$ sudo cp lircd.conf /etc/lirc/lircd.conf

$ sudo service lirc start

[ ok ] Loading LIRC modules:.

[ ok ] Starting remote control daemon(s) : LIRC :. 




irrecord로 녹화하기 위해서는 키를 입력해야 하는데 지정된 녀석만 일단은 쓸 수 있다.

Now enter the names for the buttons.


Please enter the name for the next button (press <ENTER> to finish recording)

KEY_CHUP

'KEY_CHUP' is not in name space (use --disable-namespace to disable checks)

Use 'irrecord --list-namespace' to see a full list of valid button names

Please try again. 


사용가능한 키 이름은 아래와 같다.

$ irrecord --list-namespace

KEY_0

KEY_102ND

KEY_1

KEY_2

KEY_3

KEY_4

KEY_5

KEY_6

KEY_7

KEY_8

KEY_9

KEY_A

KEY_AB

KEY_ADDRESSBOOK

KEY_AGAIN

KEY_ALTERASE

KEY_ANGLE

KEY_APOSTROPHE

KEY_ARCHIVE

KEY_AUDIO

KEY_AUX

KEY_B

KEY_BACK

KEY_BACKSLASH

KEY_BACKSPACE

KEY_BASSBOOST

KEY_BATTERY

KEY_BLUE

KEY_BLUETOOTH

KEY_BOOKMARKS

KEY_BREAK

KEY_BRIGHTNESS_CYCLE

KEY_BRIGHTNESSDOWN

KEY_BRIGHTNESSUP

KEY_BRIGHTNESS_ZERO

KEY_BRL_DOT10

KEY_BRL_DOT1

KEY_BRL_DOT2

KEY_BRL_DOT3

KEY_BRL_DOT4

KEY_BRL_DOT5

KEY_BRL_DOT6

KEY_BRL_DOT7

KEY_BRL_DOT8

KEY_BRL_DOT9

KEY_C

KEY_CALC

KEY_CALENDAR

KEY_CAMERA

KEY_CANCEL

KEY_CAPSLOCK

KEY_CD

KEY_CHANNEL

KEY_CHANNELDOWN

KEY_CHANNELUP

KEY_CHAT

KEY_CLEAR

KEY_CLOSE

KEY_CLOSECD

KEY_COFFEE

KEY_COMMA

KEY_COMPOSE

KEY_COMPUTER

KEY_CONFIG

KEY_CONNECT

KEY_CONTEXT_MENU

KEY_COPY

KEY_CUT

KEY_CYCLEWINDOWS

KEY_D

KEY_DASHBOARD

KEY_DATABASE

KEY_DEL_EOL

KEY_DEL_EOS

KEY_DELETE

KEY_DELETEFILE

KEY_DEL_LINE

KEY_DIGITS

KEY_DIRECTION

KEY_DIRECTORY

KEY_DISPLAY_OFF

KEY_DISPLAYTOGGLE

KEY_DOCUMENTS

KEY_DOLLAR

KEY_DOT

KEY_DOWN

KEY_DVD

KEY_E

KEY_EDIT

KEY_EDITOR

KEY_EJECTCD

KEY_EJECTCLOSECD

KEY_EMAIL

KEY_END

KEY_ENTER

KEY_EPG

KEY_EQUAL

KEY_ESC

KEY_EURO

KEY_EXIT

KEY_F10

KEY_F11

KEY_F12

KEY_F13

KEY_F14

KEY_F15

KEY_F1

KEY_F16

KEY_F17

KEY_F18

KEY_F19

KEY_F20

KEY_F21

KEY_F22

KEY_F23

KEY_F24

KEY_F2

KEY_F

KEY_F3

KEY_F4

KEY_F5

KEY_F6

KEY_F7

KEY_F8

KEY_F9

KEY_FASTFORWARD

KEY_FAVORITES

KEY_FILE

KEY_FINANCE

KEY_FIND

KEY_FIRST

KEY_FN

KEY_FN_1

KEY_FN_2

KEY_FN_B

KEY_FN_D

KEY_FN_E

KEY_FN_ESC

KEY_FN_F

KEY_FN_F10

KEY_FN_F1

KEY_FN_F11

KEY_FN_F12

KEY_FN_F2

KEY_FN_F3

KEY_FN_F4

KEY_FN_F5

KEY_FN_F6

KEY_FN_F7

KEY_FN_F8

KEY_FN_F9

KEY_FN_S

KEY_FORWARD

KEY_FORWARDMAIL

KEY_FRAMEBACK

KEY_FRAMEFORWARD

KEY_FRONT

KEY_G

KEY_GAMES

KEY_GOTO

KEY_GRAPHICSEDITOR

KEY_GRAVE

KEY_GREEN

KEY_H

KEY_HANGEUL

KEY_HANJA

KEY_HELP

KEY_HENKAN

KEY_HIRAGANA

KEY_HOME

KEY_HOMEPAGE

KEY_HP

KEY_I

KEY_INFO

KEY_INSERT

KEY_INS_LINE

KEY_ISO

KEY_J

KEY_K

KEY_KATAKANA

KEY_KATAKANAHIRAGANA

KEY_KBDILLUMDOWN

KEY_KBDILLUMTOGGLE

KEY_KBDILLUMUP

KEY_KEYBOARD

KEY_KP0

KEY_KP1

KEY_KP2

KEY_KP3

KEY_KP4

KEY_KP5

KEY_KP6

KEY_KP7

KEY_KP8

KEY_KP9

KEY_KPASTERISK

KEY_KPCOMMA

KEY_KPDOT

KEY_KPENTER

KEY_KPEQUAL

KEY_KPJPCOMMA

KEY_KPLEFTPAREN

KEY_KPMINUS

KEY_KPPLUS

KEY_KPPLUSMINUS

KEY_KPRIGHTPAREN

KEY_KPSLASH

KEY_L

KEY_LANGUAGE

KEY_LAST

KEY_LEFT

KEY_LEFTALT

KEY_LEFTBRACE

KEY_LEFTCTRL

KEY_LEFTMETA

KEY_LEFTSHIFT

KEY_LINEFEED

KEY_LIST

KEY_LOGOFF

KEY_M

KEY_MACRO

KEY_MAIL

KEY_MAX

KEY_MEDIA

KEY_MEDIA_REPEAT

KEY_MEMO

KEY_MENU

KEY_MESSENGER

KEY_MHP

KEY_MINUS

KEY_MODE

KEY_MOVE

KEY_MP3

KEY_MSDOS

KEY_MUHENKAN

KEY_MUTE

KEY_N

KEY_NEW

KEY_NEWS

KEY_NEXT

KEY_NEXTSONG

KEY_NUMERIC_0

KEY_NUMERIC_1

KEY_NUMERIC_2

KEY_NUMERIC_3

KEY_NUMERIC_4

KEY_NUMERIC_5

KEY_NUMERIC_6

KEY_NUMERIC_7

KEY_NUMERIC_8

KEY_NUMERIC_9

KEY_NUMERIC_POUND

KEY_NUMERIC_STAR

KEY_NUMLOCK

KEY_O

KEY_OK

KEY_OPEN

KEY_OPTION

KEY_P

KEY_PAGEDOWN

KEY_PAGEUP

KEY_PASTE

KEY_PAUSE

KEY_PAUSECD

KEY_PC

KEY_PHONE

KEY_PLAY

KEY_PLAYCD

KEY_PLAYER

KEY_PLAYPAUSE

KEY_POWER

KEY_POWER2

KEY_PRESENTATION

KEY_PREVIOUS

KEY_PREVIOUSSONG

KEY_PRINT

KEY_PROG1

KEY_PROG2

KEY_PROG3

KEY_PROG4

KEY_PROGRAM

KEY_PROPS

KEY_PVR

KEY_Q

KEY_QUESTION

KEY_R

KEY_RADIO

KEY_RECORD

KEY_RED

KEY_REDO

KEY_REFRESH

KEY_REPLY

KEY_RESERVED

KEY_RESTART

KEY_REWIND

KEY_RFKILL

KEY_RIGHT

KEY_RIGHTALT

KEY_RIGHTBRACE

KEY_RIGHTCTRL

KEY_RIGHTMETA

KEY_RIGHTSHIFT

KEY_RO

KEY_S

KEY_SAT

KEY_SAT2

KEY_SAVE

KEY_SCALE

KEY_SCREEN

KEY_SCROLLDOWN

KEY_SCROLLLOCK

KEY_SCROLLUP

KEY_SEARCH

KEY_SELECT

KEY_SEMICOLON

KEY_SEND

KEY_SENDFILE

KEY_SETUP

KEY_SHOP

KEY_SHUFFLE

KEY_SLASH

KEY_SLEEP

KEY_SLOW

KEY_SOUND

KEY_SPACE

KEY_SPELLCHECK

KEY_SPORT

KEY_SPREADSHEET

KEY_STOP

KEY_STOPCD

KEY_SUBTITLE

KEY_SUSPEND

KEY_SWITCHVIDEOMODE

KEY_SYSRQ

KEY_T

KEY_TAB

KEY_TAPE

KEY_TEEN

KEY_TEXT

KEY_TIME

KEY_TITLE

KEY_TUNER

KEY_TV

KEY_TV2

KEY_TWEN

KEY_U

KEY_UNDO

KEY_UNKNOWN

KEY_UP

KEY_UWB

KEY_V

KEY_VCR

KEY_VCR2

KEY_VENDOR

KEY_VIDEO

KEY_VIDEO_NEXT

KEY_VIDEOPHONE

KEY_VIDEO_PREV

KEY_VOICEMAIL

KEY_VOLUMEDOWN

KEY_VOLUMEUP

KEY_W

KEY_WAKEUP

KEY_WIMAX

KEY_WLAN

KEY_WORDPROCESSOR

KEY_WWW

KEY_X

KEY_XFER

KEY_Y

KEY_YELLOW

KEY_YEN

KEY_Z

KEY_ZENKAKUHANKAKU

KEY_ZOOM

KEY_ZOOMIN

KEY_ZOOMOUT

KEY_ZOOMRESET

BTN_0

BTN_1

BTN_2

BTN_3

BTN_4

BTN_5

BTN_6

BTN_7

BTN_8

BTN_9

BTN_A

BTN_B

BTN_BACK

BTN_BASE

BTN_BASE2

BTN_BASE3

BTN_BASE4

BTN_BASE5

BTN_BASE6

BTN_C

BTN_DEAD

BTN_DIGI

BTN_EXTRA

BTN_FORWARD

BTN_GAMEPAD

BTN_GEAR_DOWN

BTN_GEAR_UP

BTN_JOYSTICK

BTN_LEFT

BTN_MIDDLE

BTN_MISC

BTN_MODE

BTN_MOUSE

BTN_PINKIE

BTN_RIGHT

BTN_SELECT

BTN_SIDE

BTN_START

BTN_STYLUS

BTN_STYLUS2

BTN_TASK

BTN_THUMB

BTN_THUMB2

BTN_THUMBL

BTN_THUMBR

BTN_TL

BTN_TL2

BTN_TOOL_AIRBRUSH

BTN_TOOL_BRUSH

BTN_TOOL_DOUBLETAP

BTN_TOOL_FINGER

BTN_TOOL_LENS

BTN_TOOL_MOUSE

BTN_TOOL_PEN

BTN_TOOL_PENCIL

BTN_TOOL_QUADTAP

BTN_TOOL_RUBBER

BTN_TOOL_TRIPLETAP

BTN_TOP

BTN_TOP2

BTN_TOUCH

BTN_TR

BTN_TR2

BTN_TRIGGER

BTN_WHEEL

BTN_X

BTN_Y

BTN_Z 


irw는 키를 읽어 오는건데 lircd.conf에 저장된 내용만 인식한다.

아무튼.. 아래와 같은 포맷으로 출력이 나온다.

$ irw

000000000000e210 00 KEY_RIGHT /home/pi/lircd.conf

000000000000e210 01 KEY_RIGHT /home/pi/lircd.conf

000000000000e210 02 KEY_RIGHT /home/pi/lircd.conf

000000000000e218 00 KEY_LEFT /home/pi/lircd.conf

000000000000e208 00 KEY_OK /home/pi/lircd.conf

000000000000e208 01 KEY_OK /home/pi/lircd.conf

000000000000e208 02 KEY_OK /home/pi/lircd.conf

000000000000e218 00 KEY_LEFT /home/pi/lircd.conf

000000000000e218 01 KEY_LEFT /home/pi/lircd.conf

000000000000e218 02 KEY_LEFT /home/pi/lircd.conf 



Posted by 구차니