프로젝트 개발이 완료되고 시스템을 납품할 단계가 되면, 대부분이 임베디드 보드가 부팅될 때 자동으로 프로그램이 실행이 되도록 설정할 것입니다. 이를 위해 EZ-보드는 모두 두가지 방법을 제공합니다.
프로그램 자동 실행 설정 방법
  • /etc/rc.d/rc.local 파일의 내용을 수정
  • /app/app_script 파일을 생성하거나 수정

여기서 확인해야 될 점은 임베디드 보드에는 램디스크를 운영할 수 있다는 점입니다.

램디스크 사용시 프로그램 자동 실행

플래시를 이용하여 파일 시스템을 구성했다면 HDD에 파일을 복사하여 저장하듯 보드의 파일 시스템으로 파일과 환경을 설정하면 간단합니다.

램디스크를 사용한다면 램디스크를 위한 램디스크 이미지를 만들어야 합니다. 램디스크 이미지는 노턴 고스트 이미지를 생각하시면 이해가 쉽습니다. 부팅할 때 마다 깨끗한 램디스크에 실행파일과 필요 파일 및 환경설정이 복사되도록 구성하여 만들어야 합니다.

그러나 램디스크를 사용하신다고 반드시 실행 파일을 램디스크 이미지로 구성할 필요는 없습니다.

램디스크를 이용해도 플래시 메모리를 이용하여 비휘발성인 /app 디렉토리가 있기 때문입니다. 즉, 재 부팅해도 /app에 있는 파일은 그대로 존재합니다.

램디스크를 사용해도 비휘발성 영역이 /app 디렉토리 존재

그러므로 실행파일이나 실행에 필요한 파일을 /app에 복사해 놓으면 굳이 프로젝트 마다, 프로그램 마다 램 디스크 이미지를 만들 필요가 없습니다. 다시 말씀드려 /app에 프로그램을 복사해 놓고 부팅할 때 이 프로그램을 실행시키면 됩니다.

프로그램을 자동으로 실행하게 하는 방법은 rc.local의 내용에 추가하는 것입니다. rc.local은 부팅 중에 어떤 작업을 실행할 지에 대한 작업 목록입니다.

/etc/rc.d/rc.local

그러므로 이 파일 수정하면 되겟습니다만, 아쉽게도 이 파일은 램디스크 이미지에 들어가기 때문에 융통성이 없습니다. /app 에 프로젝트 별로 서로 다른 프로그램을 사용한다면 rc.local 가지고는 작업하기가 불편합니다. 왜냐하면 램디스크 이미지에 들어가는 rc.local은 내용을 수정할 수 없기 때문에 실행하는 프로그램의 이름이 바뀌면 함께 램 디스크 이미지도 변경해서 만들어 주어야 합니다.

그러나 다행이도 EZ-보드 대부분의 rc.local에는 아래와 같은 스크립트가 있습니다.

            :
if [ -f /app/app_script ]; then
    /app/app_script
fi
            :

만일 /app 디렉토리에 app_script 파일이 존재한다면 그 스크립트 파일을 실행한다라는 뜻입니다.

/app/app_script 파일이 있으면 실행

이 생각이 어느 분의 생각인지 모르지만 참 깜찍하고 깔끔하지 않습니까?

  1. 이제는 /app에 실행파일과 실행에 관계된 파일을 모아 놓고
  2. app_script 파일 안에 프로그램을 실행하는 내용을 넣기만 하면 끝

이라는 얘기가 되겠습니다.

yaffs 모드에서 프로그램 자동 실행

yaffs모드 이므로 /app 외에 적당한 곳에 실행파일을 복사해 놓고, 램디스크를 이용했을 때 처럼 /app/app_script에 내용을 수정하면 되겠습니다.

설정 예제

한 번 실제로 해보겠습니다. 예제인 만큼 실행파일을 실행하는 것 보다는 부팅하면,

**********************************
**********************************
**********************************
**********************************
**********************************

이렇게 문자열을 출력하는 것으로 대신하겠습니다.

1. 램디스크 모드? yaffs 모드?

셀에서 df 명령을 사용하시면 바로 아실 수 있습니다. 아래 그림에서처럼 램의 일부분이 파일 시스템으로 할다되어 있습니다. 보다 더 자세한 내용은 EZ-Board의 램 디스크 모드와 YAFFS 모드 변경하기를 참고하여 주십시오.

이제 app 디렉토리에 들어갈 app_script를 작성합니다. EZ-보드에는 vi 에디터가 없으므로 PC에서 스크립트를 작성해서 EZ-보드로 전송하겠습니다.

적당한 폴더에 app_script 로 저장합니다. 그리고 텔넷으로 EZ-보드와 연결한 후 /app 폴더로 이동합니다.

PC에서 작성한 스크립트를 보드로 복사하기 위해서 rz 명령을 수행합니다.

PC로부터 파일을 받았으면 파일의 이름을 app_script로 옳바르게 수정해 줍니다. 그리고 스크립트 파일로 실행할 수 있도록 777 모드로 변경해 줍니다.

즉,

]$ mv APP_SC~1 app_script
]$ chmod 777 app_script

자, 모든 준비가 끝났습니다. 이제 보드를 재부팅해 보겠습니다.

이렇게 부팅을 하면 app_script가 수행된 것을 보실 수 있습니다.