QNX移植PXA270 ——LCD问题请教!

按照文档说明,加了该加的东西,但在启动时报错,用sloginfo显示系统日志:
Download complete, calling image_scan…
Found image, calling image_setup…
image_setup complete, calling image_start…
Dcache: 1024x32 WB
Icache: 1024x32
pxa270 rev 4 208MHz

System page at phys:a0014000 user:fc404000 kern:fc404000
Starting next program at vfe0203a4
Welcome to QNX Neutrino 6.3 on the Intel DBPXA270 Development Platform
Starting Photon server…
Starting graphics driver…

Fatal error - check sloginfo.

sloginfo

Time Sev Major Minor Args
Jan 01 00:00:00 1 8 0 phfont_init
Jan 01 00:00:00 1 8 0 phfontXX started OK
Jan 01 00:00:00 1 8 0 FatalError
Jan 01 00:00:00 1 8 0 font directory error - unable to open directory file io-font
Jan 01 00:00:00 1 8 0 Unable to launch Photon Font Server main.
Jan 01 00:00:00 2 8 0 Unable to open font DLL

请高手指教,指点一下!

顶下,大家帮帮忙
不管对不对,给我指点个调试的方向也行

Photon相关的驱动(X86)大概是:
Photon -g -lphlogin2 “-Sphshutdown -l”
phfont -d /usr/photon/font_repository
fontsleuth -d /usr/photon/font_repository

看你的Log,应该是找不到字体库。你确定/usr/photon/font_repository在吗?
可以先不运行Photon,进入命令行后,再手动运行。先确定操作系统没有问题。再看为什么Photon不能正常运行。

/usr/photon/font_repository/tt2009m_.ttf
/usr/photon/font_repository/phcursor.phf
/usr/photon/font_repository/mappings
/usr/photon/font_repository/fontopts
/usr/photon/font_repository/fontkey

这些文件都加了,而且路径也是这样的。

ls

bin dev etc lib proc tmp usr

cd usr

ls

lib photon

cd photon

ls

bin font_repository palette

cd font_repository

ls

fontkey mappings tt2009m_.ttf
fontopts phcursor.phf

首先先不运行Photon,手动去运行,去为了发现什么呢??
操作系统其他驱动都没问题,串口,网络都能起来。[/img]

可以整个/usr/photon都放进去吗。我不确定你的裁减是正确的。
等一切正常,再慢慢把不需要的东西删掉。

经过几天调试,io-graphics起来了,关键还是phfont.so和font_repository里面的库要加全,
但是到现在为止,还是没有任何显示。看了文档,有几个问题想请教一下。
1:要启动到哪一步才有会显示。是io-graphics,还是pwm还是pterm??
PS:看下我的BSH
display_msg Starting Photon server…
Photon
waitfor /dev/photon 10
display_msg Starting graphics driver…
io-graphics -dpxa250 xres=640,yres=480,bitpp=16,photon,mode_opts=/etc/pxa250.conf -pphoton -N -F"-I" &
waitfor /dev/phfont 10

display_msg Starting Window Manager
pwm &
devc-pty &

#display_msg Starting Terminal
#pterm /proc/boot/ksh &

2:我启动pterm时报错,我不知道是不是这个导致我屏幕没反应

pterm /proc/boot/ksh &

[1] 8202

unknown symbol: PtWindowToFront

unknown symbol: PtWindowGetFrameSize
Could not resolve all symbols

还有 sloginfo和pisin一并帖出# pidin
pid tid name prio STATE Blocked
1 1 proc/boot/procnto 0f READY
1 2 proc/boot/procnto 255r RECEIVE 1
1 3 proc/boot/procnto 255r RECEIVE 1
1 4 proc/boot/procnto 10r RUNNING
1 5 proc/boot/procnto 10r RECEIVE 1
1 6 proc/boot/procnto 10r RECEIVE 1
1 7 proc/boot/procnto 10r RECEIVE 1
1 8 proc/boot/procnto 10r RECEIVE 1
1 9 proc/boot/procnto 10r RECEIVE 1
2 1 oot/devc-serpxa250 10r RECEIVE 1
3 1 proc/boot/slogger 10r RECEIVE 1
4 2 proc/boot/pipe 10r RECEIVE 1
4 3 proc/boot/pipe 10r RECEIVE 1
5 1 bin/Photon 24r RECEIVE 1
6 1 bin/io-graphics 12r RECEIVE 5
6 2 bin/io-graphics 10r RECEIVE 1
6 3 bin/io-graphics 12r REPLY 5
7 1 proc/boot/pwm 10r RECEIVE 1
8 1 proc/boot/devc-pty 10r RECEIVE 1
9 1 proc/boot/ksh 10r SIGSUSPEND
16394 1 proc/boot/pidin 10r REPLY 1

49162 1 proc/boot/pidin 10r REPLY 1

sloginfo

Time Sev Major Minor Args
Jan 01 00:00:00 1 8 0 phfont_init
Jan 01 00:00:00 1 8 0 phfontXX started OK
Jan 01 00:00:00 5 8 0 Attached /dev/io-graphics/pxa2500, id = 3

请大家给点意见,谢谢

io-graphics起来就能看到东西了,或说显卡起来了。当然,也许你看到的就是黑色什么也没有。
pwm和窗口有关。你在正常的QNX下kill掉它试试就知道它有什么用了。对你的问题不影响。
pterm只是个终端应用程序,就更无关了。

除了Photon,应该还要运行phfont和fontsleuth吧?!

display_msg start photon
Photon & 
waitfor /dev/photon 

display_msg start Font server
phfont -d /usr/photon/font_repository & 
waitfor /dev/phfont 
fontsleuth -d /usr/photon/font_repository & 

display_msg start io-graphics
io-graphics -dpxa250 xres=640,yres=480,bitpp=16,photon,mode_opts=/etc/pxa250.conf -pphoton -N -F"-I" & 
waitfor /dev/io-graphics 

display_msg start devi-hirun
devi-hirun kbd fd -d/dev/kbd ps2 mousedev & 

display_msg start pwm
pwm & 

pterm &

先谢谢nakeyfish!!
phfont是可以通过io-graphics去加载phfont.so去运行的,fontsleuth我确实没加
但以后我改成和你的一样了。
屏幕还是一点反应都没有?是不是正常的?我没加载应用程序。。

还有为什么我运行pterm就报错,错在哪里呢???

我该怎么样去测试我到底有没有正确把液晶跑起来了???

pidin

pid tid name prio STATE Blocked
1 1 proc/boot/procnto 0f READY
1 2 proc/boot/procnto 10r RECEIVE 1
1 3 proc/boot/procnto 255r RECEIVE 1
1 4 proc/boot/procnto 10r RUNNING
1 5 proc/boot/procnto 255r RECEIVE 1
1 6 proc/boot/procnto 10r RECEIVE 1
1 7 proc/boot/procnto 10r RECEIVE 1
1 8 proc/boot/procnto 10r RECEIVE 1
1 9 proc/boot/procnto 10r RECEIVE 1
2 1 oot/devc-serpxa250 10r RECEIVE 1
3 1 proc/boot/slogger 12r RECEIVE 1
4 2 proc/boot/pipe 10r RECEIVE 1
4 3 proc/boot/pipe 10r RECEIVE 1
5 1 bin/Photon 24r RECEIVE 1
6 1 /photon/bin/phfont 10r JOIN 2
6 2 /photon/bin/phfont 10r RECEIVE 1
7 1 oc/boot/fontsleuth 12r RECEIVE 1
7 2 oc/boot/fontsleuth 10r SIGWAITINFO
7 3 oc/boot/fontsleuth 6r RECEIVE 1
7 4 oc/boot/fontsleuth 12r RECEIVE 1
8 1 bin/io-graphics 12r RECEIVE 1
8 2 bin/io-graphics 12r REPLY 7
8 3 bin/io-graphics 12r REPLY 5
9 1 proc/boot/pwm 10r RECEIVE 1
10 1 proc/boot/devc-pty 10r RECEIVE 1
12 1 proc/boot/ksh 10r SIGSUSPEND
20491 1 proc/boot/pidin 10r REPLY 1

运行rebound看看.

感觉还是你的Photon起得不对。

因为Photon有显卡是没有关系的。就算没有显卡。Photon也能正常工作。如你可以用Phindows通过串口或网口来观察你的目标机(不带显卡),都是可以的。

因此,你说起pterm时报错,感觉就是你的Photon的库还是少东西了(比如说/etc/photon里的一些配置文件),还是路径设置的不对?!(我也说不清楚少了什么,如果可以,最好先什么都放进去,我相信一开始你很难了解每个文件有什么作用。)

至于是不是显卡的问题,我想还是要一个个排除。等你把pterm跑起来。也许一切都没问题了。

#env
_=/usr/bin/env
QNX_CONFIGURATION=/etc/qnx
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/photon/bin:/usr/photon/appbuilder:/opt/X11R6/bin:/usr/X11R6/bin:/usr/local/bin:/opt/bin:/opt/sbin
PHOTON=/dev/photon
ABLPATH=/usr/photon/translations
SHELL=/bin/sh
PHFONT=/dev/phfont
PHIG=2
HOSTNAME=localhost
PROCESSOR=x86
TMPDIR=/tmp
PHTK_PATH=/usr/photon
LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib:/usr/photon/lib:/usr/photon/dll:/usr/local/lib:/opt/X11R6/lib:/usr/X11R6/lib
PHWM=pwm
HOME=/root
DISPLAY=127.1:0
QNX_HOST=/
USER_NAME=/dev/photon
QNX_TARGET=/
PHINSTANCE=1
TERM=qansi-m
PHOTON_PATH=/usr/photon
ABLANG=en_US
PHOTON2_PATH=/usr/photon
FONTSLEUTH=/dev/fontsleuthctrl
PHSTART=1
SYSNAME=nto
LOGNAME=root

我的系统的PXA270的,所以没有显卡这硬件,我感觉也不是硬件的问题,问题应该就是库的缺失或是路径的不对。
现在我加了个应用程序进去,都是反应为PTbasic的库不对,但我不知道去哪里找,
unknown symbol: PtMeter
Could not resolve all symbols

\

rebound

ksh: rebound: not found

pterm

unknown symbol: PtWindowToFront
unknown symbol: PtWindowGetFrameSize
Could not resolve all symbols

rebound

unknown symbol: PtWindowToFront
unknown symbol: PtWindowGetFrameSize
unknown symbol: PtTimer
unknown symbol: ApName
Could not resolve all symbols

cd /usr/photon/lib

ls

. libAplib.so.1 libmedia.so.1 libphimg.so.1
… libPtPlugin.so.1 libph.so.1 libphoton.so.1
libAp.so.1 libextproc.so.1 libphexlib.so.1 libphrender.so.1

这些库都有吗?
#env出来的LD_LIBRARY_PATH的结果对吗

现在应该说碰到比较怪的问题,
我使用env命令也会出错

env

unknown symbol: puts
unknown symbol: putenv
Could not resolve all symbols
加上之前使用pterm、rebound的错误,感觉是一种类型的错误,并不象是库的问题,有人碰过这样的问题吗?帮下忙.

rebound

unknown symbol: PtWindowToFront
unknown symbol: PtWindowGetFrameSize
unknown symbol: PtTimer
unknown symbol: ApName
Could not resolve all symbols


\

pterm

unknown symbol: PtWindowToFront
unknown symbol: PtWindowGetFrameSize
Could not resolve all symbols

你的问题还真比较妖呀。

不如重新检查一下你的Image。按道理没有可以ls可以,env不行的。除了env,/usr/bin目录下其它的命令可以吗?还是都有问题。
最好把你的Image重新编译一下。检查里面的Shared Libraries,Binaries等的路径是不是正确的。

build file 的一部分
[type=link] /dev/console=/dev/ser1
[type=link] /tmp=/dev/shmem
libc.so.2

devg-xxxx.so
libffb.so.2
libdisputil.so.2
libgri.so.2
libfont.so.1
libphrender.so.2
libph.so
gri-photon.so

/lib/dll/phfont.so=/usr/qnx630/target/qnx6/armle/lib/dll/phfont.so
/lib/dll/font/ttfFFcore.so=/usr/qnx630/target/qnx6/armle/lib/dll/font/ttfFFcore.so
/lib/dll/font/PHFcore.so=/usr/qnx630/target/qnx6/armle/lib/dll/font/PHFcore.so
libFF-T2K.so
libFF-T2K-cache.so
libblkcache.so
libfontharnessutils.so
libfontutils.so
libm.so
libAp.so

[data=c]
Photon
io-graphics
[+raw] rebound
/usr/photon/font_repository
/usr/photon/palette/default.pal=/usr/photon/palette/default.pal

好象是缺 /usr/photon/lib/libAp.so.1

关于 puts,或者是没有 libc.so.2,或者是缺了 /usr/lib/ldqnx.so.2 的链接。
还有一种可能性是库的版本不对。(Host 环境乱掉了?)

现在我感觉photon是肯定起来了,io-graphics也起来的,关键就是在应用程序上,有些库没加全

pterm

unknown symbol: PtWindowToFront
unknown symbol: PtWindowGetFrameSize
Could not resolve all symbols

象这2个函数,我不知道是包含是哪个库中?,我查了下pterm所需的库,都加上去了

那个env报错是我不小心删掉了libc.so.2。,呵呵
现在就是pterm报错

pterm

unknown symbol: PtWindowToFront
unknown symbol: PtWindowGetFrameSize

能加的库都加了
libAp.so我加的是libAp.so.3
也加了