物联网项目实战一(Linux环境搭建、物联网仓储项目实战安排) | 您所在的位置:网站首页 › Linux34项目实训 › 物联网项目实战一(Linux环境搭建、物联网仓储项目实战安排) |
Linux环境搭建
0、基本环境概述: Gcc编译器的环境 : gcc4.6.4 VMware® Workstation :ubuntu12.04 或ubuntu10.04 Uboot版本 :uboot2013.01 内核版本 :Kernel3.14 nfs :NFS(网络文件系统)为开发板和linux主机之间的通讯 tftp :tftp服务器用来实现开发板和linux主机之间文件的下载和上传 硬件平台: Cortex-A9(fs4412)、ZigBee、M0,电脑主机 软件环境: Keil、Ubuntu 代码管理工具等 超级终端、(Putty、xshell) SecureCRT、Git、 Source Insight 3.5: /*******************************************************************/ 蓝牙环境搭建 WiFi环境搭建 ZigBee环境搭建 /*******************************************************************/
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.1、解压工具链压缩包 (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 2.2、环境变量的添加 修改文件/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 2.4、查看环境变量: 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 2.5、工具链的测试 $ 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)
3、tftp环境搭建 tftp环境搭建 tftp :tftp服务器用来实现开发板和linux主机之间文件的下载和上传 3.1、检查tftp服务器是否存在: dpkg -s tftpd-hpa 3.2、未安装:sudo apt-get install tftpd-hpa tftp-hpa 3.3、 修改文件,并开启tftp服务 sudo vi /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" #tftp服务器路径 TFTP_DIRECTORY="/home/fengjunhui/tftpboot" #tftp文件服务器网管和端口号 TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s" 3.4、创建ftpboot文件目录,并重启tftp服务器 mkdir /home/fengjunhui/tftpboot chmod a+w tftpboot // 注意一定要修改权限 fengjunhui@ubuntu:~/source$ sudo service tftpd-hpa restart tftpd-hpa stop/waiting tftpd-hpa start/running, process 32649 TTTTTT...... sudo service tftpd-hpa restart (重启tftp服务器)
3.5、本地回环测试 tftp 127.0.0.1 tftp>get main.c //下载文件从TFTP目录下 tftp>put while.c //上传文件从TFTP目录下 tftp>q 查看当前文件目录,可以看到从TFTP文件目录中下载的main.c文件,打开TFTP文件,可以看到while.c文件 4、nfs环境搭建 4.1、将 uImage拷贝到/home/fengjunhui/tftpboot目录下(用来存放设备树和镜像) 4.2、将 rootfs.tar.xz拷贝到/home/fengjunhui/source(根文件系统)下并解压 4.3、将 exynos4412-fs4412.dtb拷贝到/home/fengjunhui/tftpboot目录下 4.4、 修改虚拟机nfs配置文件/etc/exports,添加如下内容并重启nfs服务 sudo vi /etc/exports /home/fengjunhui/source/rootfs *(rw,sync,no_subtree_check,no_root_squash) 4.5、重新启动nfs服务(网线,网口) sudo apt-get update //如果无法连接,就更新目录 sudo apt-get install nfs-kernel-server //如果不存在,就在线下载并安装 sudo /etc/init.d/nfs-kernel-server restart //重启网络服务 fengjunhui@ubuntu:~/source$ sudo /etc/init.d/nfs-kernel-server restart * Stopping NFS kernel daemon [ OK ] * Unexporting directories for NFS kernel daemon... [ OK ] * Exporting directories for NFS kernel daemon... [ OK ] * Starting NFS kernel daemon 5、 网络环境搭建 图形化配置静态IP 如果这种静态IP不会配置的话,参考吴老师的网络配置教程(或者百度) http://www.makeru.com.cn/1010 6、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
5.3、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
5.4、SecureCRT串口配置:putty xshell 5.5、板子上电: Checking Boot Mode ... EMMC4.41 Net: dm9000 Hit any key to stop autoboot: 0 FS4412 # (能进入到这里) 6、uboot环境变量设置 输入printenv set serverip 192.168.1.200 set ipaddr 192.168.1.100 set gatewayip 192.168.1.1 setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 - 42000000 setenv bootargs root=/dev/nfs nfsroot=192.168.1.200:/home/fengjunhui/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.1.100 (C --- S ) Client Server setenv bootargs(传递给内核的启动参数) root=/dev/nfs(根文件挂载方式) 192.168.1.200:/home/fengjunhui/source/rootfs rw console(制定打印信息的终端)=ttySAC2,115200(内核向串口输入信息) init=/linuxrc(指定内核运行第一个程序(缺省则从/sbin/init启动)) ip=192.168.1.100(指定本机ip) (超级终端显示如下图) saveenv(保存到emmc中)一定要保存呐!!!
查看环境变量信息: FS4412 # pri gatewayip=192.168.1.1 baudrate=115200 bootargs=root=/dev/nfs nfsroot=192.168.1.200:/home/fengjunhui/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.1.100 bootcmd=tftp 41000000 uImage;tftp 42000000 exynos4412-fs4412.dtb;bootm 41000000 - 42000000 bootdelay=3 ethact=dm9000 ethaddr=11:22:33:44:55:66 gatewayip=192.168.1.1 ipaddr=192.168.1.100 netmask=255.255.255.0 serverip=192.168.1.200 stderr=serial stdin=serial stdout=serial
Environment size: 474/16380 bytes
测试引导镜像启动: fengjunhui@ubuntu:~/tftpboot$ ls examples.desktop exynos4412-fs4412.dtb uImage (保证无误) FS4412 # boot dm9000 i/o: 0x5000000, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 11:22:33:44:55:66 operating at 100M full duplex mode Using dm9000 device TFTP from server 192.168.1.200; our IP address is 192.168.1.100 Filename 'uImage'. Load address: 0x41000000 Loading: T ################################################################# 380.9 KiB/s done Bytes transferred = 3705424 (388a50 hex) ....... VFS: Mounted root (nfs filesystem) on device 0:10. [ 3.550000] devtmpfs: mounted [ 3.550000] Freeing unused kernel memory: 240K (c0677000 - c06b3000) [root@farsight ]# ok,成功进入文件系统。 好,到这里咱们基本的环境配置就OK了。 物联网仓储项目概要图第一天 能根据课程独立的建立属于自己的知识体系框架 第二天 能理解项目的实战安排,并初步搭建起项目所需的嵌入式环境 第三天 能对项目的分层体系能力和功能框架有自己的分析能力,并培养这种意识 第四天 能对物联网仓储的软硬件有一个较好的理解,并自己制定通信的结构体 阶段性提交视频内容: 视频录制:简述项目的分层体系框架,简述功能的分析过程,简述通信的结构体制定过程,简述要实现的物联网仓储项目 视频格式提交要求: 格式:mp4格式 名字要求:阶段1-你的名字-视频的主题-年月日.mp4
示例: 阶段1-张三丰-day14-分层体系和功能分析-20170804.mp4 第五天 完成主框架的搭建 第六天 完成boa服务器的移植 阶段性提交视频内容: 视频录制:简述搭建的物联网仓储项目框架、完成boa服务器移植,演示html和cgi的跳转 视频格式提交要求: 示例: 阶段2-乔峰-day56-仓储项目框架搭建和boa移植-20170806.mp4 第七天 完成cgi、html的移植 第八天 完成web点灯 阶段性提交视频内容: 视频录制:完成cgi、html部分的移植,网页上真实控制a9的led灯的演示视频 视频格式提交要求: 示例: 阶段3-张无忌-day78-web点灯-20170808.mp4 第九天 完成将模拟的数据上传到web网页 第十天 完成视频流服务器的移植 阶段性提交视频内容: 视频录制:通过视频流服务器来拍摄完成模拟数据上传到网页的演示视频 视频格式提交要求: 示例: 阶段4-张无忌-day910-视频流服务器拍摄模拟数据上传网页-20170810.mp4 第十一天 完成m0传感器数据采集 第十二天 完成A9控制m0硬件 阶段性提交视频内容: 视频录制:完成m0的传感器数据的采集,同时将m0的数据传输到串口上和A9端、同时从串口端和A9端控制M0上的硬件 视频格式提交要求: 示例: 阶段5-令狐冲-day1112-M0-A9-M0-20170812.mp4 第十三天 完成传感器真实数据上传 第十四天 完成网页控制硬件 阶段性提交视频内容: 视频录制:完成真实数据上传到网页,并通过网页控制m0上硬件 视频格式提交要求: 示例: 阶段6-令狐冲-day1314数据上传网页网页控制硬件-20170814.mp4 第十五天 提交doc文档: 独立完成物联网仓储项目的总结,可以从框架搭建、通信结构体设计、进程间通信、线程间通信、项目分工、项目联调、项目收获等部分来阐述,注重总结提升的过程。 |
CopyRight 2018-2019 实验室设备网 版权所有 |