S3C2440 부팅시 자동실행을 위해 /app/app_script파일 내용수정
2009.10.06 18:43
저는 현재 yaffs모드를 사용하고 있습니다.
응용프로그램은 /root/digitalframe/ 에 있고
실행은 위폴더로 가서 ]$ digitalfram -qws 하면 실행됩니다.
참! 프로그램을 실행전에 터치스크린 좌표를 적용해줘야되는데요.(안그러면 상하좌표가 반대로 나옵니다.)
]$ source /qt4/tslib-arm/tslib.sh 이렇게 해줘야 터치스크린 좌표가 제대로 잡힙니다.
그래서 FAQ에있는 부팅시 자동실행을 읽어보고
/app/app_script라는 파일을 만들어서 안에 다음과 같이 작성하고 chmod 777로 바꿔서 재부팅했는데 응용 프로그램도 실행이 안되고 echo로 작성한 부분도 출력이 안됩니다.
다음은 app_script 내용입니다.
source /qt4/tslib-arm/tslib.sh
/root/digitalframe/digitalframe -qws
echo "source /qt4/tslib-arm/tslib.sh"
echo "/root/digitalframe/digitalframe -qws"
~
~
~
스크립트 작성을 잘못한거 같은데 어떻게 해야 되나요? 알려주세요~
댓글 7
-
장길석
2009.10.07 06:34
-
QtheKan
2009.10.07 21:59
vi /app/app_script 에서
#!/bin/bash
를 맨위에 써주고
./app_script로 실행이되는것을 확인했습니다.
기쁜마음에 재부팅했는데 자동 실행은 되지 않았습니다.
더 수정할 부분이 있나요?
-
오재경
2009.10.07 06:47
커널 2.6 을 사용하시고 그에 맞는 램디스크를 사용한다면
예전에(커널 2.4 )에서 사용하던 /app/app_script 가 사용되지 않습니다.
부트로더에서 set 메뉴로 들어가시면 "auto run execute" 라는 항목에서 실행될 파일을 적어주시면 됩니다.
반드시 전체이름(예: /app/app_script) 를 넣으셔야 합니다.
-
QtheKan
2009.10.07 22:18
커널은 2.6.21 을 사용하고 있습니다.
오재경님 조언대로 set에서 auto execute 를 살펴봤더니 아무 것도 입력되있지 않아서
/app/app_script로 지정을 해주고 저장하고 재부팅했습니다.
하이퍼 터미널로 부팅메시지를 확인해보니
yaffs: auto selecting yaffs1
VFS: Mounted root (yaffs2 filesystem) readonly.
Freeing init memory: 128K
INIT: version 2.86 booting
INIT: Entering runlevel: 3
/root/imageviewer/imageviewer: error while loading shared libraries: libts-0.0.s
o.0: cannot open shared object file: No such file or directory
Starting system logger: [ OK ]
Starting INET services: [ OK ]
auto execute __________________
/root/imageviewer/imageviewer: error while loadin
g shared libraries: libts-0.0.so.0: cannot open shared object file: No such file
or directory
Welcome to FALinux (www.falinux.com)
Linux Kernel 2.6.21-falinux
falinux login:위와 같이 공유라이브러리를 찾지 못한다그러고 로그인으로 넘어가져요.
장길석님 조언대로 app_script를 수정하고 ]$ ./app_script하면 재대로 실행되는데
자동 실행하면 에러가 뜨네요 어떻게 해결하나요?
-
QtheKan
2009.10.08 16:58
성공했습니다. 에러메시지가 공유라이브러리를 찾지 못해서 나는건데
root로 로그인하고 ./app_script를 하면 /usr/lib에 있는 공유라이브러리를 사용할 수 있지만
부팅중에는 /lib에 있는 라이브러리들만 사용 가능한것 같습니다.
해결은 /usr/lib에 있는 libts-0.0.so.0과 관련 링크파일들을 /lib로 복사해 주고
재부팅하니 자동 실행이 되더군요
도움말씀 감사합니다.^^
남은 기간동안은 어플리케이션 개발에 좀더 신경쓰도록 하겠습니다.
-
문경원
2009.10.07 17:01
yaffs로 했다고 하셨죠!.. 혹시 그렇게 하고 있다고 생각하는건 아닐까요?
1번) 부트로더에서 set명령을 친후 정!말! yaffs로 시작하고 있나 확인한다.
2번) app폴더의 위치를 확인한다.
만약 app폴더가 app/app에 있다면, 요건 /root/mkflashroot 스크립트를 실행하지 않아서 yaffs로 할때 제대로 동작하지 않은겁니다.
3번) /etc/rc.d/rc.local파일을 열어서
if [ -f /app/app_script ]; then
/app/app_script
fi이 부분이 있나 확인한다. 없으면 스크립트 마지막에 copy&paste 한다.
4번) 이렇게 해도 안되면 여기 다시 문의해 주세요~
-
QtheKan
2009.10.07 22:28
1번)사항을 확인했습니다.
2번)사항도 ]$ ls -al명령어로 /app폴더에
/app_script파일과 lost+found만 있는것을 확인했습니다.
3번)사항은 경로가 좀 달랐습니다.
/etc/rc.d/rc.local 경로에 있었습니다.
vi 로 없는것을 확인하고 적어주고 저장하고 해봐도 같은 결과입니다.




파일 맨 위에 아래의 문장을 넣어 보세요.
#!/bin/bash
그리고 그 자리에서 실행이 되는지 확인해 보십시오. /app/app_script 이렇게 말이죠.
실행이 되나요?