도와주세요!!
QT4 데모 프로그램을 부팅시 자동으로 실행되게 할려고 아래와 같이 하였습니다.
/etc/rc.d/rc.local 파일의 마지막 라인에 아래와 같이 추가하였습니다.
/qt4/qt-arm/demos/mainwindow/mainwindow -qws
그리고, /etc/profile 파일의 마지막 라인에 아래와 같이 추가하였습니다.
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/qt4/tslib-arm/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE
그리고, 보드를 재부팅하면
INIT: Entering runlevel: 3
/qt4/qt-arm/demos/mainwindow/mainwindow: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directory
Starting system logger: [60G[ [0;32mOK[0;39m ]
Starting INET services: [60G[ [0;32mOK[0;39m ]
eth0 Link mode : 100 Mb/s Duplex mode.
Welcomme to FALinux (www.falinux.com)
Linux Kernel 2.6.21-falinux
falinux login:
이렇게 되면서 프로그램이 자동으로 실행되지 않았습니다.
이 상태에서 root 로 로그인 한 다음, 아래와 같이 입력하여
/qt4/qt-arm/demos/mainwindow/mainwindow -qws
이렇게 치고 실행하면 프로그램이 제대로 구동이 되었습니다.
왜 공유 파일이 로그인 전에는 안 열리고 로그인 이후에는 열리는지 이유를 알지 못해 질문을 드리게 되었습니다.
이 문제에 대해 자세히 알려주시면 정말 감사하겠습니다.
좋은 정보 감사합니다. 전EZ-S2410보드를 사용하고 있는데 QT4에서 터치를 이용할 수가 없습니다.
그래서 죄송합니다만 tslib 설치시와 qt4 설치시에 적용되어지는 ./configure 시 어떠한 옵션을 하셨는지
올려주시면 안될까요?
감사합니다.
다음과 같이 해 보세요..
1. 부트로더에서
EZBOOT> set
Select >> 10
10. auto execute full name :
new value : /qt4/qt-arm/demos/mainwindow/mainwindow -qws
Select >> s
Select >> q
EZBOOT> rst
2. /etc/rc.d/rc.local에서 실행은 공유라이브러리를 불러오기 전에 실행됩니다. 따라서 공유라이브러리를 참조할 경우 에러가 발생할 수도 있습니다. 따라서 위와 같이 하시면 될거라 생각이 됩니다.
3. 만약 위와 같이 해는데도 문제가 발생한다면.. /etc/initttab에서 맨 마지막 부분에 형식을 맞추어서 추가를 한번 해 보세요..
그럼 좋은 하루 되세요..
arm 용 qt 설치하기 에서 qt4 설치할때 저는 아래와 같이 설치 했었어요..
./configure -prefix /qt4/qt-arm -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -qt-mouse-tslib -I/qt4/tslib-arm/include -L/qt4/tslib-arm/lib -no-nis -no-cups -qt-freetype -depths 16,24,32
그런데, 멀티미디어 & 그래픽 강좌의 - QT - QT4.3.3 설치 방법 에는 아래와 같이 되어 있었어요..
./configure -prefix /qt4/qt-arm -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16,24,32
차이점은 중간에 -qt-mouse-tslib -I/qt4/tslib-arm/include -L/qt4/tslib-arm/lib 이 부분이 터치패널을 사용할수 있게 하는 부분인거 같은데, 빠져 있었던걸로 알고 있습니다.
그리고,
QT에서 터치 스크린을 이용 에서는
http://forum.falinux.com/zbxe/?mid=graphic&document_srl=451945&listStyle=&cpage=
여기에는
./configure -prefix /qt4/qt-arm -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -qt-mouse-tslib -I/qt4/tslib-arm/include -L/qt4/tslib-arm/lib -no-nis -no-cups -qt-freetype -depths 16,24,32
이렇게 되어 있었습니다.
etc/initttab 파일을 열어 보니깐 맨 아래쪽에 아래와 같이 되어 있었습니다.
#Example how to run portslave
#
#T0:23:respawn:+/usr/sbin/portslave 0
#T1:23:respawn:+/usr/sbin/portslave 1
#T2:23:respawn:+/usr/sbin/portslave 2
#T3:23:respawn:+/usr/sbin/portslave 3
# USER
A0:12345:wait:/etc/rc.d/auto_exec
그리고, /etc/rc.d/auto_exec 파일을 열어 보니깐 아래와 같이 되어 있었습니다.
#!/bin/sh
# www.falinux.com
# auto execute
EXEC=$(cmd_parsing exec $(cat /proc/cmdline))
if [ "$EXEC" != "" ]; then
if [ -f "$EXEC" ]; then
echo "auto execute __________________"
sh $EXEC
fi
fi
그리고, 부트로더에서
EZBOOT> set
Select >> 10
10. auto execute full name :
new value : /qt4/qt-arm/demos/mainwindow/mainwindow -qws
Select >> s
Select >> q
EZBOOT> rst
하고 나서, 부팅을 하니깐, 아래와 같이 나왔습니다.
INIT: version 2.86 booting
INIT: Entering runlevel: 3
Starting system logger: [60G[ [0;32mOK[0;39m ]
Starting INET services: [60G[ [0;32mOK[0;39m ]
auto execute __________________/qt4/qt-arm/demos/mainwindow/mainwindow: /qt4/qt-arm/demos/mainwindow/mainwindow: cannot execute binary fileeth0 Link mode : 100 Mb/s Duplex mode.
Welcomme to FALinux (www.falinux.com)
Linux Kernel 2.6.21-falinux
falinux login:
그리고, 자동으로 프로그램이 실행되지 않아서
/etc/rc.d/auto_exec 파일을 아래와 같이 수정하여서 실행해 보았습니다.
#!/bin/sh
# www.falinux.com
# auto execute
EXEC=$(cmd_parsing exec $(cat /proc/cmdline))
if [ "$EXEC" != "" ]; then
if [ -f "$EXEC" ]; then
/qt4/qt-arm/demos/mainwindow/mainwindow -qws&
fi
fi
그리고 나서 다시 부팅하니깐
INIT: version 2.86 booting
INIT: Entering runlevel: 3
Starting system logger: [60G[ [0;32mOK[0;39m ]
Starting INET services: [60G[ [0;32mOK[0;39m ]
/qt4/qt-arm/demos/mainwindow/mainwindow: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directoryeth0 Link mode : 100 Mb/s Duplex mode.
Welcomme to FALinux (www.falinux.com)
Linux Kernel 2.6.21-falinux
falinux login:
이렇게 나왔습니다.
그런데,
EZBOOT> set
Select >> 10
10. auto execute full name :
new value : /qt4/qt-arm/demos/mainwindow/mainwindow -qws
Select >> s
Select >> q
EZBOOT> rst
를 통해서
#!/bin/sh
# www.falinux.com
# auto execute
EXEC=$(cmd_parsing exec $(cat /proc/cmdline))
if [ "$EXEC" != "" ]; then
if [ -f "$EXEC" ]; then
echo "auto execute __________________"
sh $EXEC
fi
fi
이 부분이 제대로 실행되지 않는 이유를 잘 모르겠습니다.
/qt4/qt-arm/demos/mainwindow/mainwindow -qws
-qws 옵션이 사라진 것이죠
이런경우는 또다른 쉘스크립트를 만들어 사용하세요
auto execute full name : /root/run.sh
run.sh 의 내용
#!/bin/sh
/qt4/qt-arm/demos/mainwindow/mainwindow -qws
#end
문제를 해결 했습니다. 해결 방법은 아래와 같이 하였습니다.
/etc/rc.d/rc.local 파일의 마지막 라인에 아래와 같이 추가하였습니다.
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/qt4/tslib-arm/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE
export LD_LIBRARY_PATH="/usr/lib:/lib"
export QWS_DISPLAY="LinuxFb:mmWidth250:mmHeight221:0"
/qt4/qt-arm/demos/mainwindow/mainwindow -qws&
동적 라이브러리 경로 환경 변수를 실행부분 위에 써주니깐, 잘 구동되었습니다.
그런데, 이때 주의하실 점이 있습니다.
지금 제가 /etc/rc.d/rc.local 파일의 마지막 라인에 추가한 환경변수 값은
콘솔창에서 로그인이 되는 순간 다 사라져 버렸습니다.
그래서, 로그인 한 이후에도 설정이 그대로 유지될려고 하면 아래와 같이
/etc/profile 파일의 마지막 라인에 한번더 환경변수를 설정해 주어야 되었습니다.
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/qt4/tslib-arm/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE
export LD_LIBRARY_PATH="/usr/lib:/lib"
export QWS_DISPLAY="LinuxFb:mmWidth250:mmHeight221:0"