用于OK6410的虚拟机安装,u-boot编译,linux内核的编译,qt4的编程编译安装指南

周末花了两天的时间把OK6410的环境弄完,也搞清楚到底要装什么。
所有的程序在OK6410的光盘里都能找到,对于太简单的就不提了,比如用jlink裸机调试和DNW的使用和虚拟机的安装之类。
重点在于虚拟机和程序编程编译。

------------------------------------------------------
首先,linux环境选择ubuntu12,理由是这个环境比较新且很稳定,可以支持到2017年。
其次,qt选择qt4.7.1,理由是qt2.2.0实在太老了,已经停止了更新,而且发展前途也不大;qt4.4.3是属于手机开发平台,也是很老了,而且目前已经停止了更新;qt4.7属于最新的系统,而且目前一直在更新,比较适用于可移植的嵌入式。另外OK6410和TQ2440都支持,所以选择这个版本。缺点是没有PDA界面,但由于开发的属于单页面,所以无所谓。
最后,交叉编译器选择arm-linux-gcc4.3.2,理由是这个编译器良好支持qt4.7.1

------------------------------------------------------

编译环境配置
1.虚拟机环境
选择vwave8和ubuntu12,编程用source insight3
1)ubuntu12安装后,通过右上角的菜单进行系统更新,大概几百M。
2)更改配置使得可以用root用户登录
如果新装的系统还没有设置root密码可以在这个界面输入:sudo passwd root,回车后按提示输入两次root的密码(注意,输入时是不会提示*号的,直接输入即可)。
3)安装source insight3进行源码分析,然后建立虚拟文件夹。
若/mnt/hgfs下无目录情况解决:
apt-get install open-vm-dkms,一路按enter键通过。
然后mount -t vmhgfs .host:/  /mnt/hgfs,这样/mnt/hgfs下便有了与windows的共享目录。
为了每次开机自动挂载共享目录,在/etc/init.d/open-vm-tools末尾增加一行:
sudo mount -t vmhgfs .host:/  /mnt/hgfs
(host:/处2个空格)
ps:虚拟文件夹可以在linux下直接编译

------------------------------------------------------
2.gcc4.3.2安装
1)从飞凌光盘里找到gcc4.3.2
#tar zxvf arm-linux-gcc-4.3.2.tgz -C /
编译器将自动解压到/usr/local/arm。
2)把交叉编译器路径添加到系统环境变量中,以后可以直接在终端窗口中输入arm-linx-gcc 命
令来编译程序。在终端中执行gedit /etc/profile
添加以下四行到该文件中:
export PATH=/usr/local/arm/4.3.2/bin:$PATH
export TOOLCHAIN=/usr/local/arm/4.3.2
export TB_CC_PREFIX=arm-linuxexport
PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi
保存,退出。
重启系统后,在终端里面执行arm-linux-gcc -v进行查看
3)简单的编译
交叉编译arm-linux-gcc -o hello hello.c
如果看pc的运行效果,则用gcc hello.c
PS:
很多软件包是需要专门的版本的gcc进行编译,这需要查看make文件。
有的时候你用其他的编译器虽然也能编译成功,但运行的时候会出现这样或者那样的问题。
安装其他的gcc也可安装1,2步骤进行,但不要进行第3步,等以后需要这个gcc进行编译,输入gcc的绝对目录进行编译即可。

------------------------------------------------------

3.编译u-boot和linux
在4.3.2均可正常编译
1)编译u-boot
将uboot 源码压缩包‘uboot1.1.6_FORLINX_6410.tgz’拷贝到Ubuntu 的/forlinx
目录下,解压缩并编译,操作过程如下所示:
#tar zxf uboot1.1.6_FORLINX_6410.tgz
#cd uboot1.1.6 (进入uboot 源码的目录)
#make forlinx_nand_ram256_config (配置适用于256M 内存开发板的config)
#make clean (删除以前编译的文件)
#make (编译)
2)编译 Linux-3.0.1
a)将压缩包‘FORLINX_linux-3.0.1.tar.gz’ 拷贝到你的工作目录下,解压缩:
#tar zxf FORLINX_linux-3.0.1.tar.gz
b)安装‘libncurses5’,可以采用以下命令行来安装(这个步骤需要pc可以连接互联网):
#apt-get install libncurses5-dev
如果执行命令后无法找到libncurses5-dev 安装包,那就需要先执行#apt-get update,再执行#apt-get install libncurses5-dev
c)配置内核
#make menuconfig
编译内核,
#make zImage
编译结束后将在内核源码目录的arch/arm/boot中得到Linux内核映像文件:zImage

------------------------------------------------------

4.tslib编译
tslib是qt触摸屏校准的时候使用的
交叉编译环境arm-linux-gcc-4.4.1
1)首先安装autoconf,automake,libtool包
apt-get install autoconf automake libtool
2) 设置临时的环境变量
    export PATH=/usr/local/arm/4.4.1/bin/:$PATH
    export TOOLCHAIN=/usr/local/arm/4.4.1/
    export TB_CC_PREFIX=arm-linux-
    export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
3)运行脚本
   #./autogen.sh
   #echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
4)配置安装参数
   #./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib/build -host=arm-linux  --cache-file=arm-linux.cache 2>&1 | tee conf_log
5)编译
  #make 2>&1 | tee make_log
  #make install
6)#cd build/etc
  #gedit ts.conf
  去掉module_raw input前面的#号和空格,注意:module_raw input前面不能有空格,否则运行测试软件时会提示 Segmentation fault
7)修改ts.conf
看一下主机目录 /usr/local/arm/下面是否已经有了tslib ,如果有记得修改ts.conf,如果没有把build 文件夹拷贝到/usr/local/arm下,把build改名为tslib, 编译qt-extended-4.4.3时需要。
8)开发板修改和测试
把这个tslib放到网络文件系统目录中的/usr/local下面。
在开发板上进入到tslib/bin里面,运行./ts_calibrate  看一下屏幕上是否出现校准程序 ,如果出现则表示tslib编译成功完成.
在开发板上运行时需要设置环境变量,运行编译好的Qtopia4时也需要环境变量,为了在每次启动开发板自动设置环境变量可以把以下的内容放到 /forlinx/root/etc/profile文件中
配置环境变量:该环境变量是运行tslib测试程序和运行Qtopia时必须添加的环境变量,在开发板上添加
 export TSLIB_ROOT=/usr/local/tslib
 export TSLIB_TSDEVICE=/dev/input/event1
 export TSLIB_TSEVENTTYPE=H3600
 export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
 export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
 export TSLIB_CALIBFILE=/etc/pointercal
 export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
 export TSLIB_CONSOLEDEVICE=none
 export TSLIB_FBDEVICE=/dev/fb0
 export QWS_MOUSE_PROTO=Tslib:/dev/input/event1
 #export QWS_MOUSE_PROTO=TPanel:/dev/input/event1
 #export QWS_MOUSE_PROTO="Tslib:/dev/input/event1 MouseMan:/dev/input/mice"
 #export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice
 export QTDIR=/opt/Qtopia
 export QPEDIR=/opt/Qtopia
 export PATH=$QTDIR/bin:$PATH
 export QT_PLUGIN_PATH=$QTDIR/plugins:$QTDIR/qt_plugins/
 export QT_QWS_FONTDIR=$QPEDIR/lib/fonts/
 export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/usr/local/tslib/lib:$LD_LIBRARY_PATH
PS:这个稍微有点麻烦简单来说,就是首先配置好,然后编译,一方面放到arm里面用于编译,另一面用于开发板里面,执行软件的时候使用。至于最后的配置,是否是必须的,暂时还不确定。

------------------------------------------------------

4.qt4.7.1的安装
交叉编译环境4.3.2
如果没有g++,请用软件中心搜索安装g++
安装库文件apt-get install lix11-dev libxext-dev libxtst-dev
1)用飞凌提供的qt4.7.1,解压缩后,在文件夹内执行./build-all。大概一个小时后在opt文件夹里生产编译器。
安装的目录里面有可以直接运行的demo。通过opt里面的qmake进行qt程序的编译
2)设置QT的编译环境,如果没有设置的话,每次都需要/opt/qt-4.7.1/bin/qmake 来编译程序,默认安装了qt-sdk-linux-x86-opensource-2010.05.1.bin后默认用的qmake是用来编译linux下程序用的,而不是嵌入式linux下的,需要重新设置环境变量,打开/etc/profile文件,最后添加
export PATH=$PATH:/opt/qt-4.7.1/bin
这样的话qmake -v可以看到当前qmake为/opt/qt-4.7.1下面的.
3)将opt文件夹拷入开发板root目录里,使其支持qt4。通过串口输入qt4 &执行qt4的demo文件。通过修改开发板root/etc/init.d/rcS的内容,将最后改为./bin/q4&

------------------------------------------------------
5.qt的编程
通过ubuntu在线安装qt creator,通过qt creator进行编程,然后在pc机上运行。
1)窗口程序源码
main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
        QApplication a(argc,argv);
        QLabel *label=new QLabel("hello!!!");
        label->setGeometry(10,10,200,80);
        label->setVisible(true);
        label->show();
        return a.exec();
}
2)保存到/home/liu/hello/下
打开终端,cd /home/liu/hello切换到hello目录
#qmake -project,此时生成了hello.pro文件
#qmake,此时生成了Makefile文件
#make,此时生成了hello可执行文件
#file /home/liu/hello/hello,查看可执行文件的运行环境,出现for GNU/Linux 2.6.14字样,说明可以运行在linux2.16.14内核版本的嵌入式linux系统上
3)拷贝hello到开发板qt4的/bin目录下,赋予可执行文件权限chmod 777 hello
./hello -qws &
-qws表示是服务器文件,否则默认客户端
&表示后台运行
后两项可选

------------------------------------------------------

6.开发板的简单配置
1)配置网口ifconfig eth0 ip,ifconfig up
2)http可直接访问开发板,telnet可以直接访问开发板(用户名root,密码空),ftp可直接访问开发板
PS:可通过在开发板输入qt4 &切换

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值