工程量还是蛮复杂的。这里针对自己的板子和自己的电脑。
1.选择合适的内核和bootloader
先找到开发板资料中的E:/开发板资料/AC2440 Linux/LQ035NC111_tc images 把这个里面的镜像文件内核uImage先烧进板子,前提是用u-boot。
E:/开发板资料/AC2440 Linux/utuLinuxfor2440V1.5.3中的s3c2440_recover.tar.bz2解压到虚拟机下,然后解压,出现utu2440-qtopia-1.7-touchscreen.tar.gz 把这个压缩包拷贝到外面的一个文件夹里 这里是根目录下/qtscreen 之后再解压,今后这个文件夹成为NFS文件夹
2.在虚拟机上配置NFS服务
进入虚拟机的任务栏中的系统->管理->服务器设置->NFS 目录/qtsceen 主机* 设置为读写 然后在第三栏用户访问中把第一个打钩
进入虚拟机的任务栏中的系统->管理->服务器设置->服务->把nfs和portmap两个服务打开
设置虚拟机的IP 用setup设置成和板子一个IP网段 如192.168.1.199 然后设置service network restart 如果都成功 在ifconfig看一下是不是这个ip
最后打开超级终端,网线把PC和开发板连接好,进入u-bootloader以后再把那一长串复制进去,回车,然后boot,回车
如果成功 就进去,触摸屏显示出QT的屏幕
如果在虚拟机任务栏中找不到图形界面的NFS配置菜单,也可以在shell中执行setup->系统服务中开启nfs和portmap服务,在防火墙设置中关闭所有防火墙
设置NFS共享目录 ,将根目录“/qtscreen”设置为共享目录的方法:
# vim /etc/exports
在其中输入:/qtscreen *(rw,sync,no_root_squash)
重新启动服务:/etc/rc.d/init.d/nfs restart 或 service nfs restart
3.配置NFS文件夹下的QT文件
先在NFS 即/qtsceen/usr中建立一个和/usr/local/Trolltech/QtopiaCore-4.3.0-arm/lib一样的路径 如/qtsceen/usr/local/Trolltech/QtopiaCore-4.3.0-arm/lib
将rcS文件拷贝至NFS文件夹/etc/init.d文件夹下,将原文件替换
在NFS文件夹/etc/profile文件中添加export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"
将/usr/local/Trolltech/QtopiaCore-4.3.0-arm/bin中的qmake文件重命名为qmake_arm放在/usr/bin下
在一个QT的C源文件文件下删除不需要的其他文件,然后执行qmake_arm -project ,qmake_arm 和 make 在虚拟机上执行编译生成的二进制文件时如果出现一句bash: ./tech_clk: cannot execute binary file
说明是在ARM板下执行的文件了,最后把这个可执行文件(如tech_clk)放到NFS文件夹下(如/qtsrceen)
打开开发板,进入u-boot后重新输入setenv bootargs 'console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.199:/qtscreen ip=192.168.1.15:192.168.1.1:192.168.1.1:255.255.255.0::eth0:off'
然后boot回车,进入开发板的linux系统,ls找到刚才编译好的文件,最后输入/tech_clk -qws
大功告成
如果屏幕的指针式反方向的,则需要把正确的lib库拷贝到/qtsceen/usr/local/Trolltech/QtopiaCore-4.3.0-arm/lib中
PS:其中
请写字板或者UltraEdit等软件打开,linux打开的话,也最好采用不自动换行的软件打开,保证以下内容格式不变化。
如果用记事本打开,有的电脑记事本的自动换行会把一下内容格式破坏,复制粘贴到串口终端会有问题。
注意这里的192.168.1.102是指的你pc端linux的ip地址,请根据实际情况修改。
使用utu-bootloader:
setenv bootargs 'console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.102:/utuLinux/s3c2440/s3c2440_recover ip=192.168.1.15:192.168.1.1:192.168.1.1:255.255.255.0::eth0:off'
使用vivi:
param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.102:/utuLinux/s3c2440/s3c2440_recover ip=192.168.1.12:192.168.1.1:192.168.1.1:255.255.255.0::eth0:off
setenv bootargs 'console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.199:/qtsrceen ip=192.168.1.15:192.168.1.1:192.168.1.1:255.255.255.0::eth0:off'
192.168.1.199 是虚拟机的IP
/qtscreen 是QT触摸屏文件解压后的文件夹