这是参考的技术手册
首先说明板子是mini2440,2009-01-02,
我的PC是Fedora 8
交叉编译工具是arm-linux-4.3.3
参考的技术手册是
我完全按照手册上的内容做的,相信这个手册大家也有人看过,我看本论坛上也有帖子移植成功,步骤和这个手册上应该是差不多的
mini2440给的配套光盘里有两种文件系统
root_qtopia_tp (带有触摸屏功能并且已经移植好qtopia) root_default(没有触摸屏功能)
我选用的是root_default ,我的想法是,在这两个文件系统的基础上进行改造,把技术手册上说的QtEmbedded-4.5.0-arm,libQtGui.so.4 libts-0.0.so.0 libQtCore.so.4 libQtNetwork.so.4,以及tslib
这些东东都放在了 root_default相应的位置中
/etc/init.d/rcS 中的内容如下:
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
/sbin/hwclock -s
#SCSI modules
#Input modules
#Charactor modules
/sbin/insmod /lib/mini2440_backlight.ko
/bin/mknod /dev/pts/0 c 136 0
/bin/ln -s /dev/v4l/video0 /dev/video0
/bin/ln -s /dev/fb/0 /dev/fb0
/bin/ln -s /dev/vc/0 /dev/tty1
/bin/ln -s /dev/sound/dsp /dev/dsp
/bin/ln -s /dev/sound/mixer /dev/mixer
/bin/ln -s /dev/scsi/host0/bus0/target0/lun0/part1 /dev/sda1
/bin/mount -t proc none /proc
/bin/mount -t tmpfs none /tmp
/bin/mount -t tmpfs none /var
/bin/mkdir -p /var/lib
/bin/mkdir -p /var/run
/bin/mkdir -p /var/log
/etc/rc.d/init.d/netd start
echo " " > /dev/vc/0
echo "Starting networking..." > /dev/vc/0
usleep 300000
/etc/rc.d/init.d/httpd start
echo " " > /dev/vc/0
echo "Starting web server..." > /dev/vc/0
usleep 300000
/etc/rc.d/init.d/leds start
echo " " > /dev/vc/0
echo "Starting leds service..." > /dev/vc/0
echo " "
usleep 300000
#/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 202.207.246.12 up
(这是我设置的板子的IP)
/sbin/madplay /media/shanghaitan.mp3 &
/bin/ishow /media/note.jpg
/bin/hostname -F /etc/sysconfig/HOSTNAME
/bin/qt4 &
其中出了最后一行/bin/qt4 & 和/sbin/ifconfig eth0 202.207.246.12 up 与原设置不同,其他的都相同,而这个qt4是位于/bin下的一个脚本,内容如下
#!/bin/sh
export set QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
export set T_ROOT=/tslib
export set PATH=$QTDIR/bin:$PATH
export set TSLIB_CONSOLEDEVICE=none
export set TSLIB_FBDEVICE=/dev/fb0
export set TSLIB_TSDEVICE=/dev/input/event0
export set TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export set TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export set TSLIB_CALIBFILE=/etc/pointercal
export set QWS_MOUSE_PROTO=tslib:/dev/input/event0
export set LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
if [ -f /etc/pointercal ] ; then
/smartHouse -qws
# > /dev/null 2>/dev/null
else
/bin/ts_calibrate
# $QPEDIR/bin/mousecalibration
/smartHouse -qws
# > /dev/null 2>/dev/null
fi
而 smartHouse 是位于/ 下的一个用QT Creator 编译生成的可执行文件,这个文件是没有问题的,我在另一个搭建好环境的板子中完全可以运行
接着我按照使用手册上的步骤设置好了nfs环境,将板子于主机连接好开始挂接网络文件系统,挂接成功,打印启动信息的最后一行为:
Please press Enter to activate this console. /bin/qt4: /bin/qt4: 16: /smartHouse: not found
此时我可以进行控制,但是/bin/qt4: /bin/qt4: 16: /smartHouse: not found
是什么意思,也就是说我的/smartHouse 总是无法执行,并且当我在控制台下运行
[root@FriendlyARM /]# ./smartHouse 的时候,又显示-sh: ./smartHouse: not found
很奇怪这是为什么,我的QT 环境是不是没有搭建好呢?怎么会显示无法找到这个文件呢?
请各位给我指点迷津,我怀疑是不是因为这个 root_default没有触摸屏的驱动程序,还是说我在Fedora 8下无法编译出可以在这款板子下的QT 环境,因为用户手册上有这么一句:
注 意 : 要 正 确 安 装 使 用 Qt/Embedded , 请 务 必 按 照 前 面 的 介 绍 完 全 安 装Redhat9.0/Redhat7.2,并且不要使用其他发行版 Linux,诸如 Fedora 之类。
交叉编译器选择推荐:arm-linux-gcc-3.3.2
实在有点晕
跪求答案!!!