本文共 3177 字,大约阅读时间需要 10 分钟。
文章来源:
一.硬件平台
1.主机: PC机,1G Memory 3G Cpu。2.目标机: jk2410 arm9。二.软件平台1.Ubuntu 7.04 (主机操作系统,VMware)2.gcc3.3.6(主机编译器)3.eldk4.1(交叉编译器)4.qtopia-opensource-4.2.3.tar.gz(包含Qt,Qtopia core)三.移植过程1.拷贝编译目标需要的文件"configure : -xplatform linux-arm-g++"export QTOPIA_DEPOT_PATH=/home/leibian/qtopia_arm/qtopia-opensource-4.2.3/cd src/libraries/qtopiabase/cp custom-linux-cassiopeia-g++.h custom-linux-arm-g++.hcp custom-linux-cassiopeia-g++.cpp custom-linux-arm-g++.cpp2.修改cd $QTOPIA_DEPOT_PATHa)支持触摸屏vi qtopiacore/qconfig-qpe.h#define QT_QWS_IPAQ#define QT_QWS_IPAQ_RAWb) 修改时区信息, 否则qtipia运行时候会到“/usr/share/zoneinfo/”读取vi src/libraries/qtopia/qtimezone.cpp将114行的 /usr/share/zoneinfo/ 改为/qtopia-mount-folder-on-board/etc/zoneinfo ,保存退出。vi src/settings/systemtime/settime.cpp将318行的 /usr/share/zoneinfo/ 改为/qtopia-mount-folder-on-board/etc/zoneinfo ,保存退出。3.configuremkdir /home/leibian/qtopia_arm/build_4.2export QPEDIR=/home/leibian/qtopia_arm/build_4.2cd $QPEDIRecho "yes" | ../qtopia-opensource-4.2.3/configure -edition phone -xplatform linux-arm-g++ -arch arm -no-qvfb -release -displaysize 240x320 -no-modem -quicklaunch -defaultbuttons phone -image /home/leibian/qtopia_arm/nfs/ -prefix /home/leibian/qtopia_arm/nfs/ -no-bluetooth -no-drm -no-drm -no-infrared -extra-qt-config "-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg" -extra-qtopiacore-config '-depths 16 -qt-mouse-linuxtp -no-mouse-pc -no-mouse-bus -no-mouse-yopy -no-mouse-vr41xx -no-mouse-tslib -no-mouse-qvfb' > log_cfg 2>&14.makemake > log 2>&15.installmake install IMAGE=/home/leibian/qtopia_arm/nfs/拷贝zoneinfomkdir /home/leibian/qtopia_arm/nfs/etccp -avf $QTOPIA_DEPOT_PATH/etc/zoneinfo /home/leibian/qtopia_arm/nfs/etc6.run(using nfs)export PATH=/qtopia-mount-folder-on-board/bin:$PATHexport LD_LIBRARY_PATH=/qtopia-mount-folder-on-board/lib:$LD_LIBRARY_PATHexport QWS_MOUSE_PROTO=LinuxTP:/dev/touchscreen/0export QWS_DISPLAY="LinuxFb:mmWidth35:mmHeight45:0"qpe&等待出现画面之后,校正触摸屏qcop service send Launcher "execute(QString)" "calibrate"四.常见问题a)V4L2_PIX_FMT_SBGGR8:vi arm-linux/include/linux/videodev2.h在 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4') /* 8 8-bit color */ 之后添加/* see http://www.siliconimaging.com/RGB%20Bayer.htm */#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */vi arm-linux/sys_include/linux/videodev2.hedit it same as arm-linux/include/linux/videodev2.hb)PAGE_SIZE and PAGE_MASKvi arm-linux/sys-include/asm/page.h把语句#ifdef __KERNEL__移动到定义15 /* PAGE_SHIFT determines the page size */16 #define PAGE_SHIFT 1217 #define PAGE_SIZE (1UL << PAGE_SHIFT)18 #define PAGE_MASK (~(PAGE_SIZE-1))后面vi arm-linux/include/asm/page.hedit it same as abovec)触摸屏不工作检查export QWS_MOUSE_PROTO=LinuxTP:/dev/touchscreen/0d)显示字体和图标小检查export QWS_DISPLAY="LinuxFb:mmWidth35:mmHeight45:0"e)nfs mout failedmount -t nfs xx xx -o nolockf)nfs timeoutmout -t nfs xx xx -o nolock,rsize=1024,wsize=1024,timeo=15************************************************************************************************
setenv bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.18.10:/nfsroot ip=192.168.18.110:::255.255.255.0::eth0
转载地址:http://vysqi.baihongyu.com/