BeagleBone Black LED 제어하기

BeagleBone Black LED 제어하기는 보드가 살아 있는지 빠르게 확인할 수 있는 제일 쉬운 테스트 중 하나다. 그냥 켜고 끄는 수준 같아 보여도, 실제로는 디바이스 파일과 sysfs를 만지는 기본을 익히는 작업이다.

처음엔 echo로 trigger를 바꾸는 방법도 있지만, 여기서는 C로 직접 제어하는 흐름을 봤다. 그러면 open, write, close 같은 기본 파일 동작도 같이 익힐 수 있다.

무엇을 하는가

이 예제는 BeagleBone Black의 USER LED를 brightness나 trigger로 제어하는 내용을 다룬다. 디렉토리는 보통 /sys/class/leds 아래에 있고, 거기서 해당 LED 노드를 찾아서 접근한다.

이 글은 BeagleBone 리눅스 빌드하기와 같이 보면 더 좋다. 시스템이 올라와 있어야 LED도 제어할 수 있으니까.

코드 흐름

  1. 입력 인자를 확인한다.
  2. 제어할 LED 디렉토리를 만든다.
  3. brightness 또는 trigger 경로를 고른다.
  4. open으로 디바이스 파일을 연다.
  5. write로 값을 넣고 닫는다.

경로 문자열은 snprintf로 조립하면 편하다. 디바이스 파일을 직접 열어서 값을 쓰는 구조라서, 파일 I/O 감각을 익히기에도 좋다.

실습할 때 보는 포인트

LED가 안 바뀌면 경로부터 다시 봐야 한다. BeagleBone 계열은 /sys/class/leds 아래 이름이 보드마다 조금 다를 수 있다. 그리고 trigger가 걸려 있으면 brightness가 바로 안 먹는 경우도 있다. 이럴 때는 trigger를 먼저 꺼야 한다.

네트워크나 부팅이 잘 되는지도 보고 싶다면 비글본 블랙 TFTP 부팅하기도 같이 보면 연결이 된다.

주의할 점

권한이 없으면 파일을 열지 못한다. 그리고 led trigger가 다른 값으로 잡혀 있으면 원하는 대로 안 움직인다. 이건 코드 문제가 아니라 시스템 상태 문제인 경우가 많다.

정리

BeagleBone Black LED 제어하기는 작지만 꽤 중요한 예제다. 보드가 정상인지 확인하고, sysfs로 파일 제어하는 구조를 익히는 데 좋다.

실행 체크

LED 제어는 단순해 보여도 보드 상태를 빠르게 보는 데 꽤 유용하다. sysfs 경로가 맞는지 확인하고, trigger가 걸려 있지 않은지 보는 것만으로도 문제를 꽤 많이 줄일 수 있다.

여기서 LED가 잘 움직이면 기본 파일 I/O도 잘 이해한 거다. 다음에는 TFTP나 NFS처럼 보드가 실제로 동작하는 흐름으로 넘어가면 된다.

  • sysfs 경로 확인
  • trigger 상태 확인
  • 다음은 부팅 흐름 보기

LED가 바로 반응하면 파일 경로와 sysfs 제어가 맞다는 뜻이다. 이런 단순한 예제에서 막히면 보드 문제인지 코드 문제인지 구분이 쉬워진다. 그래서 이 예제는 생각보다 유용하다.

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.