日期:2014-05-16  浏览次数:20361 次

zedboard--qt在zedboard的运行(十四)

      在实验十三中在pc机上安装好了qt,现在要在zedboard板上运行qt,这个其实和opencv其实是差不多的,这个实验主要参考了超群天晴和懒兔子的博客。

      下载qt-everywhere-opensource-src-4.7.3.tar.gz,这里下载源码和Xilinx公司提供的Zynq的Qt配置文件qmake.conf,感谢别人的分享,这个的版本是4.7.3。

      解压  tar -xvzf  qt-everywhere-opensource-src-4.7.3.tar.gz  -C

      将qmake.conf复制到qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-gnueabi-g++目录下,使用命令

./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -little-endian -opensource -host-little-endian -confirm-license -nomake demos -nomake examples 
      进行配置,配置完成后进行编译:  make 
      编译结束后再使用命令 :   make install
      安装,默认是会安装到:    /usr/local/Trolltech/QtEmbedded-4.7.3-arm/,之前opencv的是安装在install下,这个目录是可以指定的。
      Xilinx交叉编译器中的基础C++库复制到安装目录的lib目录下:
cp -P /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* /usr/local/Trolltech/QtEmbedded-4.7.3-arm/lib
      这样就完成了Zynq的Qt Embedded for Linux的安装。
     
      和Opencv一样,这里也要制作运行库。
      以Digilent出厂默认的Demo系统为例,该系统的rootfs是通过在内存中虚拟出一个8M-Byte大小的空间并加载固定的镜像文件来实现的,这个rootfs十分小巧,但缺点是空间不足。数十兆的QT支持库无法装入这个小镜像里,即使可以也会占用大量内存。因此只要将其做成镜像的形式,就可以保存在SD卡中,通过mount指令装载,节省了内存资源。(懒兔子)
       在解压的文件夹下,我新建了一个build文件夹,用来存放这个运行库,进入这个build文件夹,执行下面命令
       dd if=/dev/zero of=qt_lib.img bs=1M count=80     名字qt_lib.img
       mkfs.ext4 -F qt_lib.img
       chmod go+w qt_lib.img
       mount qt_lib.img -o loop /mnt
       cp -rf /usr/local/Trolltech/QtEmbedded-4.7.3-arm/* /mnt       注意安装目录
       chmod go-w qt_lib.img
       umount /mnt
       至此,运行库制作完毕,你用ls来查看以下就可以看到有qt_lib.img,至于这个库的挂载和Opencv的一样了,见前面的实验
      
       由于hdmi转vga接口还没到,只能下一步再测试,下一步任务就是usb图像采集和qt显示(完全基于zedboard),这个也就是测试了。还有一个任务就是实现软件开机自动动态加载qt_lib.img和opencv_lib.img(opencv的库),免得要自己手动加载。