0、基本环境概述:
1 Gcc编译器的环境 : gcc4.6.4 2 Ubuntu版本 :ubuntu14.04 3 Uboot版本 :uboot2013.01 4 内核版本 :Kernel-linux-3.14.0 5 nfs :NFS(网络文件系统)为开发板和linux主机之间的通讯 6 tftp :tftp服务器用来实现开发板和linux主机之间文件的下载和上传 7 硬件平台 :Cortex-A9(fs4412)、ZigBee,STM32,电脑主机(win7 x64) 8 软件环境: 9 Keil、Ubuntu、 10 代码管理工具等 11 MobaXtrem、(Putty、xshell) SecureCRT、Git、 Source Insight 4.0: 12 /*******************************************************************/ 13 蓝牙环境搭建 14 WiFi环境搭建 15 ZigBee环境搭建 16 /*******************************************************************/
1、一些必要的库的安装
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 //(整个这一行所需要安装的包必须执行安装) 2 sudo apt-get update //更新源:当包安装不成功的时候可以尝试执行 3 sudo apt-get -f install //更新依赖:当更新源之后还是安装不成功时可以尝试 4 sudo apt-get install //包名
2、交叉编译环境搭建
2.1、解压工具链压缩包 (http://gcc.gnu.org/ 下载地址)
1 $ cd ~ 2 $ mkdir toolchain 3 $ cd toolchain 4 //将下载的交叉编译工具/gcc-4.6.4.tar.xz拷贝到toolchain目录下并解压 5 $ tar xvf gcc-4.6.4.tar.xz gcc-4.4.6.tar.xz gcc-4.5.1.tar.xz
2.2、环境变量的添加
1 //修改文件/etc/bash.bashrc添加如下内容 2 sudo vi /etc/bash.bashrc 3 export PATH=$PATH:/home/fengjunhui/toolchain/gcc-4.6.4/bin
2.3、重启配置文件
1 $ source /etc/bash.bashrc
2.4、查看环境变量:
1 fengjunhui@ubuntu:~$ echo $PATH 2 /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、工具链的测试
1 $ arm-none-linux-gnueabi-gcc –v 2 Using built-in specs. 3 COLLECT_GCC=arm-none-linux-gnueabi-gcc 4 最后两行: 5 Thread model: posix 6 gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002)
扩展:
1 // Ubuntu14.04 Ubuntu16.04. 64位系统的安装需要先安装如下两个包: 2 /bash/... path/arm-none-linux-gnueabi-gcc not fount 3 sudo apt-get install lib32z1 lib32ncurses5
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目录下的配置文件
1.3、修改配置文件,
1 sudo vi /etc/default/tftpd-hpa 2 # /etc/default/tftpd-hpa 3 #用户名 4 TFTP_USERNAME="tftp" 5 #你的tftp服务器所在的路径 6 TFTP_DIRECTORY="/home/linux/tftpboot" 7 #tftp服务器的网关和端口号 8 TFTP_ADDRESS="0.0.0.0:69" 9 #tftp 文件服务器的可供选择的权限, get file put file list file 10 TFTP_OPTIONS="-l -c -s"
1.4、创建tftp服务器所在的路径:
1 mkdir /home/linux/tftpboot -p //和配置文件的名字和路径必须保持一致 2 chmod 777 tftpboot //修改tftp服务器文件夹的权限
1.5、重启tftp服务器:
1 linux@ubuntu:~$ sudo service tftpd-hpa restart 2 tftpd-hpa stop/waiting 3 tftpd-hpa start/running, process 6439 4 /* 5 板子启动加载内核的时候经常遇到TTTTTTT..... 6 判断:网络不通 7 ping不通,网络配置有关 8 tftp服务器没有启动 9 */
1.6、本地回环测试
1 tftp 127.0.0.1 2 tftp>get main.c //下载文件从tftpboot目录下 (保证tftpboot目录下有你要下载的文件) 3 tftp>put while.c //上传文件到tftpboot目录下 (保证当前目录有你要上传的文件) 4 tftp>q //退出 5 //查看当前文件目录,可以看到从tftpboot目录下载的main.c文件,打开tftpboot目录,可以看到while.c文件。
1.7、本地回环可能遇到的问题
1 //可能遇到的问题参考: 2 tftp>get file 3 Transfertimed out. 4 //原因: tftpd服务没有启动,重启tftp服务器:sudo service tftpd-hpa restart 5 tftp>get file 6 Errorcode 2: Only absolute filenames allowed 7 //原因:在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa 8 tftp>put file 9 Errorcode 1: File not found 10 //原因:当前目录下指定的文件file不存在;或tftpd启动参数中没有指定-c选项,允许上传文件
4、nfs环境搭建
1 nfs:网络文件系统 /nfsroot=... 2 内核起来的时候,在最后会加载文件系统,(根据你的参数去加载文件系统) 3 4 ramdisk yaffs..... ext2 5 /****1、安装 *********************/ 6 sudo apt-get update //更新一下源 7 sudo apt-get -f install //更新一下依赖 8 sudo apt-get install nfs-kernel-server //如果不存在,就在线下载并安装 9 /****2、修改nfs配置文件:***********/ 10 mkdir ~/source 11 cp rootfs.tar.gz . 12 tar xvf rootfs.tar.gz 13 14 在这个目录下有这两个文件 15 linux@ubuntu:~/source$ pwd 16 /home/linux/source 17 linux@ubuntu:~/source$ ls 18 rootfs rootfs.tar.xz 19 20 sudo vim /etc/exports 21 添加如下内容: 22 /home/linux/source/rootfs *(rw,sync,no_subtree_check,no_root_squash) 23 路径==>nfs路径===>nfs又是什么? 一个路径*四个参数 24 其中: 25 /home/linux/source/rootfs:共享的目录; 26 *:不限定客户端; 27 rw:共享目录可读可写; 28 sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; 29 no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率; 30 no_root_squash:来访的root用户保持root帐号权限; 31 32 /*****3、重启nfs服务器*******************/ 33 sudo /etc/init.d/nfs-kernel-server restart
5、网络环境搭建
图形化配置静态IP,(建议采用这种方式进行学习)