디바이스 드라이버
글 수 70
2013.11.21 15:48:29 (*.52.177.249)
15369
저번주 "커널에 있는 LED 제어하기" 부분에 이어 사용 방법은 아주 간단합니다.
/sys/class/leds/cpurun 가 정상적으로 생성이 되었다면 아래와 같은 방법으로 설정을 바꾸어 주면 됩니다.
저번주 글의 참고 부분을 다시 보면 아래와 같습니다.
-------
linux,default-trigger = "timer"; 에서 " " 부분을 아래와 중 하나를 선택하여 사용하면 됩니다.
none
nand-disk
mmc0
timer
oneshot
heartbeat
gpio
cpu0
cpu1
cpu2
cpu3
default-on
------
정상적으로 타겟보드가 부팅을 하고, 타겟보드의 파일시스템에서 /sys/class/leds/cpurun가 정상적으로 생성되었다면 현재 LED의 상태는 timer에 의하여 주기적으로 깜빡이는 것을 확인 할 수 있습니다.
만약, LED가 아무런 반응이 없다면 커널 및 dts 의 설정이 잘못된 것입니다.
모든 것이 정상적으로 동작을 한다면..... 다음과 같이 설정을 변경해 주면 됩니다.
작업 공간은 타겟보드입니다.
빨간색 사각형 부분이 현재 LED의 설정 상태를 나타냅니다.
( [xxxx] 로 되어있는 부분이 현재 설정되어 있는 것을 나타냅니다. )
heartbeat : 심장의 고동과 같이 두번 깜빡이고, 잠시 있다가 다시 두번 깜박이는 동작을 합니다.
$ echo heartbeat > trigger
cpu0 : cpu0의 동작에 의해 LED가 동작합니다. 이 모드로 설정할 경우 LED가 너무 빨리 동작합니다.
$ echo cpu0 > trigger
위와 같은 방법으로 다른 설정을 동작시킬 수 있습니다.
좋은 정보 감사합니다.
글을 보고 따라 하다 보니 궁금한 점이 생겨서 질문 드려요.. 여러개의 LED 도 동시에 컨트롤이 가능한가요?
예를 들어 DTS에서 기본 세팅으로는 trigger를 None 으로 세팅하고, 파일시스템에서 WHITE(RED+BLUE+GREEN)를 timer mode로 동시에 바꾸고 싶은데 delay 가 발생하는 경우가 생기고 있습니다.(delay_on/off 설정 변경) 혹시 RED,BLUE,GREEN LED를 한번의 trigger action으로 모드 변경이 가능한가요??