lv17 安防监控项目实战 1

1 项目概要图:

对项目有分层意识、数据流向意识 

2 基本环境概述

Gcc编译器的环境      : gcc4.6.4 
Ubuntu版本   		  :ubuntu14.04 或ubuntu16.04
Uboot版本			  :uboot2013.01
内核版本		      :Kernel-3.14.0
nfs 	     :NFS(网络文件系统)为开发板和linux主机之间的通讯
tftp    	 :tftp服务器用来实现开发板和linux主机之间文件的下载和上传
硬件平台	 :Cortex-A9(fs4412)、ZigBee,STM32,电脑主机(x86  x64)
软件环境:
Keil、Ubuntu、  
代码管理工具等
超级终端、(Putty、xshell) SecureCRT、Git、 Source Insight 3.5、4.0:
/*******************************************************************/
蓝牙环境搭建
WiFi环境搭建
ZigBee环境搭建
/*******************************************************************/

2.1 一些必要的库的安装: 

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext  texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk subversion libz-dev         (整个这一行所需要安装的包必须执行安装)
sudo apt-get update              更新源:当包安装不成功的时候可以尝试执行
sudo apt-get -f install         更新依赖:当更新源之后还是安装不成功时可以尝试
sudo apt-get install 包名   

2.2 交叉编译环境搭建:

解压工具链压缩包  (http://gcc.gnu.org/  下载地址)

$  cd  ~
$ mkdir toolchain
$ cd  toolchain
将下载的交叉编译工具/gcc-4.6.4.tar.xz拷贝到toolchain目录下并解压
$ tar  xvf  gcc-4.6.4.tar.xz   gcc-4.4.6.tar.xz  gcc-4.5.1.tar.xz

环境变量的添加

修改文件/etc/bash.bashrc添加如下内容 
sudo vi  /etc/bash.bashrc
export  PATH=$PATH:/home/fengjunhui/toolchain/gcc-4.6.4/bin
 2.3、重启配置文件
$ source  /etc/bash.bashrc

查看环境变量:

fengjunhui@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/fengjunhui:/home/fengjunhui/toolchain/gcc-4.6.4/bin

工具链的测试:

$ arm-none-linux-gnueabi-gcc  –v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
最后两行:
Thread model: posix
gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002) 

扩展:

Ubuntu14.04 Ubuntu16.04. 64位系统的安装需要先安装如下两个包:
	/bash/...  path/arm-none-linux-gnueabi-gcc  not fount
	sudo apt-get install lib32z1  lib32ncurses5

2.3 tftp环境搭建

uImage === 内核  设备树 exynos4412-fs4412.dtb  exynos4412-origen.dtb
uImage、设备树文件都可以通过tftp从Ubuntu所在的tftp服务器端来加载。
	板子	: 客户端
	Ubuntu	: 服务器端   C-S
1.1、检查tftp服务器是否存在: dpkg -s tftpd-hpa
1.2、未安装:sudo apt-get install tftpd-hpa tftp-hpa
		通过安装时的打印信息,来确定在etc目录下的配置文件

修改配置文件

sudo vi /etc/default/tftpd-hpa
	  # /etc/default/tftpd-hpa
	  #用户名
	  TFTP_USERNAME="tftp"
	  #你的tftp服务器所在的路径
	  TFTP_DIRECTORY="/home/linux/tftpboot"
	  #tftp服务器的网关和端口号
	  TFTP_ADDRESS="0.0.0.0:69"
	  #tftp 文件服务器的可供选择的权限, get file\ put file \ list file
      TFTP_OPTIONS="-l -c -s"  

创建tftp服务器所在的路径

mkdir  /home/linux/tftpboot -p    //和配置文件的名字和路径必须保持一致
chmod 777  tftpboot     		  //修改tftp服务器文件夹的权限

重启tftp服务器:

linux@ubuntu:~$ sudo service tftpd-hpa restart
		tftpd-hpa stop/waiting
		tftpd-hpa start/running, process 6439

		板子启动加载内核的时候经常遇到TTTTTTT..... 
			判断:网络不通
				ping不通,网络配置有关
				tftp服务器没有启动

本地回环测试

tftp  127.0.0.1
tftp>get main.c //下载文件从tftpboot目录下 (保证tftpboot目录下有你要下载的文件)
tftp>put while.c  //上传文件到tftpboot目录下  (保证当前目录有你要上传的文件)
tftp>q            //退出 
      查看当前文件目录,可以看到从tftpboot目录下载的main.c文件,打开tftpboot目录,可以看到while.c文件。

本地回环可能遇到的问题

可能遇到的问题参考:
tftp>get file
Transfertimed out.
原因: tftpd服务没有启动,重启tftp服务器:sudo service tftpd-hpa restart 
tftp>get file
Errorcode 2: Only absolute filenames allowed
原因:在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
tftp>put file
Errorcode 1: File not found
原因:当前目录下指定的文件file不存在;或tftpd启动参数中没有指定-c选项,允许上传文件

2.4 nfs环境搭建

nfs:网络文件系统  /nfsroot=...             
	内核起来的时候,在最后会加载文件系统,(根据你的参数去加载文件系统)
	
	ramdisk  yaffs..... ext2 
	1、安装 
        sudo apt-get update       //更新一下源
	    sudo apt-get -f install   //更新一下依赖
        sudo apt-get install nfs-kernel-server   //如果不存在,就在线下载并安装
	2、修改nfs配置文件:
		mkdir ~/source
		cp rootfs.tar.gz .
		tar xvf rootfs.tar.gz
		
		在这个目录下有这两个文件
		linux@ubuntu:~/source$ pwd
		/home/linux/source
		linux@ubuntu:~/source$ ls
		rootfs  rootfs.tar.xz
        sudo vim /etc/exports
		添加如下内容:
		/home/linux/source/rootfs  *(rw,sync,no_subtree_check,no_root_squash) 
			路径==>nfs路径===>nfs又是什么?  一个路径*四个参数
		其中:
		/home/linux/source/rootfs:共享的目录;
		*:不限定客户端;
		rw:共享目录可读可写;
		sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
		no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
		no_root_squash:来访的root用户保持root帐号权限;
		
	3、重启nfs服务器
		sudo /etc/init.d/nfs-kernel-server restart  

2.5 网络环境搭建

图形化配置静态IP,(建议采用这种方式进行)

无线局域网适配器 无线网络连接: (提供大家上网)
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::e937:86f:d0a6:a442%11
IPv4 地址 . . . . . . . . . . . . : 192.168.31.137
子网掩码  . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.31.1

 

3 Uboot引导盘制作

(注:uboot的移植过程不作为项目中的一个重点,只要能加载内核就好。)
5.1、将sd卡加载到windows下,识别SD卡之后,将SD卡格式化。(注意此时Ubuntu不要连接)。
5.2、将SD卡在Ubuntu中识别:  节点: /dev/sdb 

/dev/mmcblk0  ---->sudo ./mkuboot.sh ----> sudo mv  /dev/mmcblk0  /dev/sdb

fengjunhui@ubuntu:~/uboot$ cd sdfuse_q_2013/

fengjunhui@ubuntu:~/uboot/sdfuse_q_2013$ ls
add_padding    add_sign.c  Makefile       sd_fusing_exynos4x12.sh
add_padding.c  chksum      mkuboot.sh     u-boot-fs4412.bin
add_sign       chksum.c   
制作uboot引导:
fengjunhui@ubuntu:~/uboot/sdfuse_q_2013$ sudo ./mkuboot.sh 
[sudo] password for fengjunhui: 
Fuse FS4412 trustzone uboot file into SD card
/dev/sdb reader is identified.
u-boot-fs4412.bin fusing...
1029+1 records in
1029+1 records out
527104 bytes (527 kB) copied, 3.49821 s, 151 kB/s
u-boot-fs4412.bin image has been fused successfully.
Eject SD card

SecureCRT串口配置:putty  xshell

 

板子上电:

Checking Boot Mode ... EMMC4.41

Net:   dm9000

Hit any key to stop autoboot:  0

FS4412 #  (能进入到这里代表通电正常)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

4IOT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值