码迷,mamicode.com
首页 > 系统相关 > 详细

基于Linux的智能家居的设计(4)

时间:2015-07-25 20:00:18      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:智能家居   linux   

3  开发环境的搭建

 

本次课题使用的开发环境比较特殊,没有一个现成的集成开发环境,需要自己一步一步的搭建开发环境,开发环境的搭建的过程十分复杂,而且如果没有这个开发环境本次课题就无法进行。因此,在进行设计时,必须要进行开发环境的搭建。

3.1  虚拟机安装和系统安装

在PC机上安装VMware workstation 10.0虚拟机,将虚拟网络改为桥接模式,在虚拟机中安装Ubuntu12.04的系统,然后安装VM-tools。

在windows下面的创建共享目录G:/share,实现windows和Linux之间的文件相互拷贝,方便开发,只要将想要复制的文件(arm-linux-gcc-4.3.2)放在G:/share下面,在Linux的终端下面只要使用cp /mnt/hgfs/arm-linux-gcc-4.3.2/home就可以将文件复制到虚拟机中的/home文件夹下面。

3.2  安装arm-linux-gcc交叉编译器

具体的步骤如下:

⑴  在Ubuntu12.04下面打开终端(Ctrl+Alt+T快捷键)输入以下命令:

#cd /home      (进入home目录)

#mkdir /usr/local/arm  (创建/usr/local/arm目录)

#tar –zxvf arm-linux-gcc-4.3.2.tgz –C/  (将编译器arm-linux-gcc解压到/usr/local/arm)

⑵  添加环境变量的在终端输入命令:

#vim /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-linux

export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi

保存(wq),退出。

⑶  执行命令:source /etc/profile (让交叉编译器的环境变量生效)

测试交叉编译环境在终端输入arm-后按Table键是否会出现一堆关于arm-linux-之类的。或者使用arm-linux-gcc –v命令会出现交叉编译器相关的信息说明交叉编译环境已经安装成功了。

3.3  安装TFTP服务

TFTP 协议是简单文件传输协议,基于用户数据报(UDP) 协议,不需要考虑连接请求、连接终止与流量控制等特性,是一个实时性很强的通信协议[13]。TFTP 分为服务器端程序和客户端程序,在主机上通常同时配置有TFTP 服务端和客户端。

默认安装的Ubuntu系统没有包含TFTP 的服务端和客户端,可以通过命令行来下载安装,命令如下:

#apt-get install tftp (安装客户端)

#apt-get install tftpd (安装服务端)

#apt-get install xinetd (安装xinetd)

xinetd 是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。

在“/”目录下创建一个tftpboot,把属性改成777。

命令#chmod –R 777 /tftpboot

设置/etc/xinetd.d/tftp使用#vim /etc/xinetd.d/tftp进行配置

service tftp

{

socket_type = dgram

protocol = udp

wait =yes

user =root

server =/usr/sbin/in.tftpd

server_args = -s /tftpboot

disable = no

per_source =11

cps =100 2

flags =IPv4

}

#Service xinetd.d reload(重新加载xinetd 进程)

#ufw disable(禁用防火墙)

3.4  安装NFS服

NFS即Network FileSystem的缩写,功能是可以通过网络让不同的机器、不同的操作系统可以共享文件(share files)[14]。本课题将它看为一个文件系统服务器,可以让ARM板或者远程PC机上的客户端共享远程的文件服务器。用起来十分的方便,本次课题的NFS主机共享目录与客户端挂载结构图如图3-1所示:

技术分享

图3-1  NFS主机共享目录与客户端挂载结构图

具体的步骤如下:

⑴  准备NFS文件系统目录

⑵  启动nfs 服务之前,必须在Ubuntu12.04 上准备好NFS 共享目录。

例如,本课题采用Ubuntu的“/nfsroot”作为NFS 共享目录,就需要将FileSystem-Yaffs2.tar.gz 压缩文件拷贝到这个目录下,然后解压缩,得到根文件系统所需要的目录。

⑶  在Ubuntu12.04 上打开一个终端,输入以下命令:

#mkdir /nfsroot

⑷  将FileSystem-Yaffs2.tar.gz 文件拷贝到该目录下,解压:

#tar –zxf FileSystem-Yaffs2.tar.gz

⑸  设置主机IP

这里我们将Ubuntu的IP 设置为192.168.12.18,命令为:

#ifconfig eth0 192.168.12.18

#ifconfig eth0 up

⑹  配置NFS服务

在Ubuntu 上新建一个终端,依次输入以下命令:

#apt-get install portmap

#apt-get install nfs-kernel-server

#vim /etc/exports

在弹出的文本编辑器中编辑exports文件,在最后一行添加:

/nfsroot/FileSystem-Yaffs2192.168.12.*(rw,sync,no_root_squash)

这里的通配符表示在192.168.12.1~192.168.12.255之间的任何一个ipv4的地址,rw表示的是可读可写的权限,no_root_squansh的意思是登入NFS主机使用共享目录的用户,如果是root身份,那么对于这个共享目录来说,它就是具有root的权限。

⑺  启动NFS服务

#/etc/init.d/portmap restart

#/etc/init.d/nfs-kernel-server restart

3.5  将开发板挂载到文件系统上

成功挂载的效果应该是能够共享Linux下面的/nfsroot/FileSystem-Yaffs2目录下面的所有文件,ok6410开板上的目录与服务器上的目录一致,如图3-2、3-3所示:

技术分享

图3-2  客户端ok6410上的文件

技术分享

图3-3  服务器上的文件


3.6  搭建QT开发环境

在终端中输入apt-getinstall libqt4-dev libqt4-debug libqt4-guilibqt4-sql qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig即可安装qt相关的开发工具,然后建立交叉的qt开发环境。进行tslib库的移植步骤如下:

(1)  下载tslib-1.4.tar.gz

(2)  解压安装tslib

# tar -zxvf tslib-1.4.tar.gz

# cd tslib

# ./autogen.sh

echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

# ./configure --host=arm-linux--cache-file=arm-linux.cache --enable-inputapi=no -prefix=/usr/local/tslib

# make

# make install

(3)  修改ts.conf内容

# vi /usr/local/tslib/etc/ts.conf

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

然后将整个tslib文件夹,下载到开发板的对应路径下(/usr/local)。

(4)  开发板配置环境变量

export TSLIB_ROOT=/usr/local/tslib

export TSLIB_TSDEVICE=/dev/input/event0     //指定触屏设备

export TSLIB_CALIBFILE=/etc/pointercal   //指定触摸屏校准文件pintercal 的存放位置

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf    //指定 TSLIB 配置文件的位置

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts    //指定触摸屏插件所在路径

export TSLIB_FBDEVICE=/dev/fb0    //指定帧缓冲设备

export TSLIB_CONSOLEDEVICE=none    //设定控制台设备为none,否则默认为/dev/tty,这样可以避免出现“openconsoledevice: No such file or directory KDSETMODE: Bad file descriptor ”的错误

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

另外,要确保在/dev/input/目录下有event0设备文件,在/dev/目录下有fb0设备文件,如果没有,在执行下面./ts_calibrate 的时候,会报出“open *: No such file or directory ”的错误,这时,需要手动创建设备文件:

# mknod /dev/input/event0 c 13 64

# mknod /dev/fb0 c 29 0

(5)  执行测试命令

重启开发板,在/usr/local/tslib/bin 目录下,输入./ts_calibrate,出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。

3.7  安装Mysql数据库

使用#apt-getinstall mysql-server安装服务器

使用#apt-getinstall mysql-client 安装客户端

登录数据库使用命令:

#mysql –u root –p

输入密码:123456

如果成功的安装了Mysql数据库那么就会出现下面的如图3-4所示的结果:

技术分享

图3-4  安装成功数据库并成功登陆

加入链接库文件,使qt能连接到Mysql数据库。

使用#apt-getinstall libqt4-sql-mysql安装qt的mysql数据库驱动,这是会有文件 /usr/lib/i386-linux-gnu/qt4/plugins/sqldrivers/libqsqlmysql.so。

技术分享

图3-5  安装qt的mysql数据库驱动

接下来请看基于Linux的智能家居的设计(5)。




版权声明:本文为博主原创文章,未经博主允许不得转载。

基于Linux的智能家居的设计(4)

标签:智能家居   linux   

原文地址:http://blog.csdn.net/u011046042/article/details/47059013

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!