最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

AT91SAM9260开发环境搭建大全(tftp_nfs_编译器安装等)

来源:动视网 责编:小OO 时间:2025-09-25 17:58:36
文档

AT91SAM9260开发环境搭建大全(tftp_nfs_编译器安装等)

================(可以在ubuntu11.10中成功进行安装配置)=============1、tftp服务器的安装注意:如果在apt-getinstall过程中,出现找不到一大堆的东西,一般是源有问题。到新立得下面操作,标记安装,一般就可以,还不行的话,换个源。在新立得下如果卸载出现什么子进程的什么什么东东。要到/var/lib/dpkg/info/下删除相应的tftp-hpa和tftpd_hpa文件。然后到/var/cache/apt/archives下删除相应的tftp-
推荐度:
导读================(可以在ubuntu11.10中成功进行安装配置)=============1、tftp服务器的安装注意:如果在apt-getinstall过程中,出现找不到一大堆的东西,一般是源有问题。到新立得下面操作,标记安装,一般就可以,还不行的话,换个源。在新立得下如果卸载出现什么子进程的什么什么东东。要到/var/lib/dpkg/info/下删除相应的tftp-hpa和tftpd_hpa文件。然后到/var/cache/apt/archives下删除相应的tftp-
================( 可以在ubuntu11.10中成功进行安装配置)=============

1、tftp服务器的安装

注意:

如果在apt-get install过程中,出现找不到一大堆的东西,一般是源有问题。到新立得下面操作,标记安装,一般就可以,还不行的话,换个源。在新立得下如果卸载出现什么子进程的什么什么东东。要到/var/lib/dpkg/info/下删除相应的tftp-hpa和tftpd_hpa文件。然后到/var/cache/apt/archives下删除相应的tftp-hpa和tftpd_hpa文件。                                      

在ubuntu11.10中,在终端中输入如下命令进行安装:(使用root用户)

1.apt-get install tftp-hpa tftpd-hpa(或者在新立得中标记安装)前者为客户程序,后者为服务程序

2. mkdir /home/tang/tmp  (可根据需要建立相应的目录,此目录为tftp的共享目录)

chmod  777 /home/tang/tmp

cd /home/tang/tmp

vi test.txt

随便输入数据保存

cd /home/tang  

vi test1.txt   (需要用root权限进行创建,否则无法进行保存退出)

随便输入数据保存

3.vi /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/tang/tmp" //这里是你的tftpd-hpa的服务目录,这个想建立在哪里都行

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"        //这里是选项,-c是可以上传文件的参数,-s是指定tftpd-hpa服务目录,上面已经指定

4. service tftpd-hpa restart 启动服务,这里要注意,采用的服务形式。而不是采用超级服务xinetd启动tftpd的方式。在网上有人说用tftpd-hpa和tftp- hpa再加上在/etc/xinetd.d下编写tftp服务文件的方式,经过我的反复测试,并不能用service xinetd restart来启动tftpd服务。至于用较老的版本tftpd和tftp再加上xinetd能否成功,我没有测试过。既然新版本能成功,我也就不再测试了。

5.测试

cd /home/tang  root

tftp 127.0.0.1

tftp>get test.txt (if not root ,will warning permission denied)

tftp>put test1.txt

tftp>quit

$ls

会看见test.txt

cd tmp

ls

test.txt,test1.txt都存在

如果成功,会没有任何提示,而且基本上看不见任何延时。注意严格按照以上操作,不要动xinetd的配置。只需要修改/etc/default/tfptd-hpa即可。

安装过程整理总结:

1、前期按照其他方法来进行安装配置,但是系统提示tftp无法进行文件传输。

2、卸载掉原来安装的版本,重新上面的安装方法进行安装配置

3、在安装过程中可以不安装守护进程xinetd,配置完成后可以在本机下进行测试。

[备注:]

验证tftp是否生效(先在本机下进行测试)

上传文件:

切换到/home/用户/ 下并创建test.txt文件

tftp 127.0.0.1

tftp> put test.txt

tftp>quit

 

此时/home/tang/tmp目录下应该有test.txt文件了

下载文件:

到其他的目录下(当前目录不要与创建文件的目录一样)

tftp 127.0.0.1

tftp> get test.txt

tftp>quit

就可以把test.txt下载到当前目录

与开发板的文件传输过程:

tftp服务器的使用:

1>在主机(也就是服务器端)开启tftp服务器

service tftpd-hpa restart 启动服务(由于没有安装守护程序,可直接重启服务器)

2>打开终端,用minicom进入到uclinux

3>修改AT91SAM9260开发板的IP地址跟主机在同一个网段

ifconfig eth0 192.168.9.100

4>进入其中的一个下载目录:如/mnt

5>在开发板的终端中 

输入:tftp 192.168.9.103(假设我这台主机的IP是这个)

注意这里的ARM开发板板要跟主机在同一个网段,若ARM板不是跟主机在同一个网段,则会出现无法登录的情况,修改方法是:在ARM(9260)上输入ifconfig eth0 192.168.9.*(这里假设主机的网关是192.168.9.1)若成功登录则会有如下的提示:tftp >

6>输入:get <你要下载的文件名> //注意这个文件名必须是在tftp的工作目录下,如前面我设置为

/home/tang/tmp

7>如果下载成功则会提示用了多少秒

8>接下来我们就可以直接运行这个文件了(有时候会出现不能运行的情况,如badcommand等,此时可以用以下的命令:chmod 777 文件名)。 

====================在ubuntu11.10中可以成功安装===============

2、安装NFS

嵌入式开发时,nfs(网络文件系统)可以实现主机和开发板共享文件

(1)安装所需软件包

apt-get install nfs-common nfs-kernel-server portmap

(2)配置

vim /etc/exports

增加下面这一行内容:

/home/alextang *(rw,sync,no_root_squash)   #(注意:在共享目录后面要留有一个空格!) 

ps:/home/alextang: 表示共享的目录(同时需要在/home目录下新建alextang做为共享目录)

  * :允许所有的网段访问,也可以设置成某一个ip段,如192.168.0.*

  rw :读写权限

  sync:资料同步写入内在和硬盘

  no_root_squash:nfs 允许客户端共享目录所有者权限

(3)启动服务

/etc/init.d/nfs-kernel-server restart  --重启nfs服务器

/etc/init.d/nfs-kernel-server status   --查看nfs状态

也可以使用:netstat -a | grep nfs 查看

 

查看nfs的设置:

showmount -e 192.168.1.130

检验一下设置是否有问题

(4)测试NFS

在本机环境下进行NFS测试:

在/mnt下创建nfs目录

 sudo mkdir /mnt/nfs 

将主机/home/alextang目录挂载到/mnt/nfs下                       

sudo mount -t nfs 127.0.0.1:/home/alextang /mnt/nfs

查看/mnt/nfs目录下所有的文件,跟/home/alextang目录下的文件一样

 ls -l /mnt/nfs/  

卸载:

 sudo umount /mnt/nfs/

在开发板进行NFS测试可能会出现的一些问题:

1、提示NFS服务器的权限拒绝时,可能是主机的/etc/exports文件的网段设置与mount的网段不一致,或者是文件中的共享目录设置与mount的目录不一致。

2、启动目标板并连通网络后,首先查看kernel自身是否支持nfs,

cat /proc/filesystems

查看其中是否有nfs一行,若没有则表示内核不支持nfs,就需要重新编译和烧录内核;有则OK,接下来就可以直接mount操作。

3、提示NFS服务器没有回应,超时,应该在mount 命令后面添加nolock,命令格式:

mount  -o nolock 192.168.9.103:/home/alextang /mnt

原因是连接到旧版本的NFS服务器时需要用到禁止文件锁。也有可能是因为在其他的终端中已经mount了别的目录,需要将已挂载的目录umount。

4、主机防火墙有设置时,也可能导致目标板无法正常访问。(一般ubuntu系统会默认把防火墙关掉,如果打开的话就得先关掉防火墙后再测试。

【备注:】

通过NFS挂接远程主机的文件系统时,使用一些不同的选现可以使得mount比较简单易用。这些选项可以在mount命令中使用,也可以在/etc/fstab和autofs中设定。 

以下是NFS mount常用的一些选现: 

hard or soft -- 指定当程序无法通过NFS连接使用服务器输出的文件系统上的文件时,是否需要等待服务器重新在线。如果是soft情况,它将报错。如果指定hard,用户 无法不能终止程序等待NFS通讯恢复,除非同时指定了intr选项。如果指定了soft,用户可以设置附加选项timeo=指定了错误报告之前的秒数。 

intr -- 当服务器宕机或者无法到达时,允许中断NFS请求。 

nfsvers=2或者nfsvers=3 -- 指定使用那个版本的NFS协议。 

nolock -- 禁用文件锁。这个设置在连接到一个旧版本的NFS服务器时偶尔会用到。 

noexec -- 防止执行被挂接的系统上的二进制文件。这在系统通过NFS挂接一个包含有不兼容的二进制文件的非linux系统时是很有用的。 

nosuid -- 禁用"设置用户标志位"(set-user-identifier)或者"设置组标志位"(set-group-identifier)。这样防止远程用户运行setuid程序获得更高权限。 

rsize=8192和wsize=8192 -- 通过设定大的同时传输的数据块大小(bytes),以提高NFS读写的速度。改变这些值时要当心,一些旧的linux内核和网卡在大的块大小不能正常工作。 

tcp -- 指定NFS使用TCP协议mount,替换UDP。 

成功把测试文件传到NFS服务器的共享目录后,从开发板终端将开发板共享目录挂载到某个目录下,就可以进行相关的测试:

1、进行串口测试:

./uart_test

然后出现选择端口的命令Select a port to test (0-6) 

输入一个数字如:0。选择好端口后,就可以进行串口的测试

即在开发板终端中输入字符会自动返回显示出来

===================================== ======================================

此处以下以后再进行详细过程整理总结

====================================================== =====================

嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 11.10)

在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文具体说明了嵌入式交叉编译环境的建立过程和具体的操作步骤,希望能够对各位朋友搭建对应的交叉编译环境有所帮助。

一、所需软硬件环境

■ 主机环境

建立交叉编译工具链的主机环境:

Ubuntu 11.10,gcc-4.3.2

■ Ubuntu 11.10软件环境

保证你的 Ubuntu 11.10 安装了如下的软件:

Bison flex build-essential patch libncurses5-dev

安装这些软件包:

sudo apt-get install Bison flex build-essential patch libncurese5-dev

或直接下载下列deb软件包

bison_13a2.3.dfsg-4build1_i386.deb

build-essential_11.4_i386.deb

flex_2.5.33-10build1_i386.deb

libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb

m4_1.4.8-1build1_i386.deb

patch_2.5.9-5_i386.deb

然后 sudo dpkg –i *.deb 安装这些软件包。

■ 相关软件包

本方案所选软件包如下:

gcc-3.4.5.tar.gz

glibc-2.3.6.tar.gz 

linux-2.6.26.5.tar.gz 

crosstool-0.43.tar.gz 

binutils-2.15.tar.gz 

glibc-linuxthreads-2.3.3.tar.gz 

linux-libc-headers-2.6.12.0.tar.bz2

二、具体工作步骤

1、修改系统配置

1.1、Ubuntu 8.10 默认安装的 gcc 版本为4.3.2,这个版本对于语法要求较高,编译会出错,目前不宜选用,于是选择了 gcc-4.1.1 ,但并不需要卸载 gcc-4.3.2。

(1)第一种方法:直接在终端输入安装gcc-4.1

sudo apt-get install gcc-4.1

(2)第二种方法:下载下列软件包:

gcc-4.1_4.1.2-23ubuntu3_i386.deb

gcc-4.1-base_4.1.2-23ubuntu3_i386.deb

cpp-4.1_4.1.2-23ubuntu3_i386.deb

然后sudo dpkg –i *.deb

安装就可以了

sudo rm /usr/bin/gcc (删除GCC,它只是个到gcc-4.3.2的软链接文件)

sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的软链接)

1.2、修改sh版本

如果运行

ls -la /bin/sh

看到链接的是 dash ,则请运行以下命令

sudo dpkg-reconfigure dash

选择 no 以删除 dash 

此处如果不改好的话,编译时会出现错误

2.解压软件包,并进入该目录,查看重要的脚本文件。

$cd downloads 

$tar –zxvf crosstool-0.43.tar.gz 

$cd crosstool-0.43

在此目录下可以看到有很多.sh脚本和.dat配置文件,每一个支持的处理器都有它所相应的脚本。假如选用demo-arm-softfloat.sh 就是建立目标为支持软浮点的arm交叉编译工具链。 

3.修改demo-arm-softfloat.sh

$vim demo-arm-softfloat.sh

修改下面两句

TARBALLS_DIR=$HOME/downloads //表示下载的源码的存放目录

RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录

为:

TARBALLS_DIR=/home/linux/downloads(源码存放目录)

RESULT_TOP=/home/linux/crosstools(生成工具链目录)

4.修改 gcc-3.4.5-glibc-2.3.6.dat

$ vim gcc-3.4.5-glibc-2.3.6.dat

修改内容为:

BINUTILS_DIR=binutils-2.15

GCC_DIR=gcc-3.4.5

GLIBC_DIR=glibc-2.3.6

LINUX_DIR=linux-2.6.26.5

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6

5.$ ./ demo-arm-softfloat.sh 

这个过程较长(半个小时左右)

6.修改环境变量

修改环境变量有多种方法我们介绍两种

(1)第一种方法:在当前用户目录的.bashrc中添加如下内容

$export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

(2)第二种方法:或直接修改/home/linux/.bashrc

cd /home/linux

vim .bashrc

添加如下内容:

PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

然后

source .bashrc

7.执行如下命令

$ arm-softfloat-linux-gnu-gcc -v

显示

Reading specs from /home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/gcc/arm-softfloat-linux-gnu/3.4.5/specs

Configured with: /home/david/downloads/crosstool-0.43/build/arm-softfloat-linux-gnu/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-softfloat-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu --with-float=soft --with-headers=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/include --with-local-prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long

Thread model: posix

gcc version 3.4.5

ok交叉编译环境创建成功!

8.恢复我们修改的系统配置:

恢复gcc为4.3

sudo rm /usr/bin/gcc 

sudo ln -s /usr/bin/gcc-4.3 /usr/bin/gcc

重新安装dash

sudo dpkg-reconfigure dash

选择 yes 以重新安装 dash

000000000000000000000000000000000000000000000000000

内核编译的安装

000000000000000000000000000000000000000000000000000

开发板附带的安装过程参考:

如果还没有安装armv5-linux-gcc这个编译器,按如下方法安装。

从光盘中拷贝armv5-linux-gcc.tar.bz2 文件到linux PC 的/opt/timesys/toolchains文件夹下面,用如下命令进安装。

[root@localhost opt]$ tar –jxvf armv5-linux-gcc.tar.bz2

这时在/opt/timesys/toolchains这个文件夹下面可看到文件,这里面就是安装的编译器

1.1.编译Linux内核

从光盘中拷贝linux-2.6.19.tar.bz2文件PC机某个目录下面并解压,然后进入内核源码的根目录。

[root@localhost 9260s]$ ls

linux-2.6.19.tar.bz2

[root@localhost 9260s]$ tar -xjvf linux-2.6.19

[root@localhost 9260s]$ ls

linux-2.6.19      linux-2.6.19.tar.bz2

[root@localhost 9260s]$ cd linux-2.6.19

[root@localhost linux-2.6.19]$ make menuconfig

按照开发板附带的安装Linux编译文件,执行以下步骤后发现,执行make menuconfig命令后,提示如下错误信息:

 HOSTCC  scripts/kconfig/lxdialog/checklist.o 

In file included from scripts/kconfig/lxdialog/checklist.c:24:0: 

scripts/kconfig/lxdialog/dialog.h:32:20: 致命错误: curses.h:没有那个文件或目录 

编译中断。 

make[1]: *** [scripts/kconfig/lxdialog/checklist.o] 错误 1 

make: *** [menuconfig] 错误 2 

解决办法:ubuntu系统中缺少一个套件 ncurses devel ,把此套件安装下即可

$ sudo apt-get install libncurses5-dev

然后可以进行编译内核的配置。

[注:]

配置文件的保存可以采用默认的名字,编译时会自动选择默认的名字。也可以在Makefile中进行更改,gedit xxx.cfg 进行查看内核的配置,文件中的内容与用Make menuconfig打开的界面内容选项对应。

0000000000000000000000000000000000000000000000

 一、交叉编译环境 arm-linux-gcc-2.95.3 的建立

1.下载cross-2.95.3.tar.bz2 

2.建目录,复制,解压

# cd /usr/local

# mkdir arm

# cd arm

复制cross-2.95.3.tar.bz2 到当前目录

# tar jxvf cross-2.95.3.tar.bz2

3.导出/usr/local/arm/2.95.3/bin 到环境变量

在/etc/profile 最后添加  PATH=$PATH:/usr/local/arm/2.95.3/bin 

二、交叉编译环境 arm-linux-gcc-3.4.1的建立

书中介绍的crosstool制作工具的链的方法很好,但是很浪费时间,因为编译一次要数个小时,很是麻烦,也不适合初学这,这里的方法是书中3.2节提 到的第一种方法,很简单,但是正如书中所说,不是自己定制的受到局限不是很理想,但对我们的开发这已经足够用了。建议大家还是先选用这种方法

1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下。

  arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下:

http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

2.解压 arm-linux-gcc-3.4.1.tar.bz2

  #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2

  解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下

  # cd usr/local/

  #cp -rv arm /usr/local/

  现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了

3.  修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一)

  方法一:修改/etc/bash.bashrc文件

     #vim /etc/bash.bashrc

            在最后加上:

   export PATH=$PATH:/usr/local/arm/3.4.1/bin export PATH     (注意:“=”前后不能有空格)

    (如果不能编辑,先修改相关文件的权限使用chmod命令。)

方法二:修改/etc/profile文件:

# vim /etc/profile 

增加路径设置,在末尾添加如下,保存/etc/profile文件:

export PATH=$PATH:/usr/local/arm/3.4.1/bin

  方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin

  注:(这只能在当前的终端下才是有效的!)

4. 立即使新的环境变量生效,不用重启电脑:

 对应方法一:#source /root/.bashrc

 对应方法二:# source /etc/profile

5. 检查是否将路径加入到PATH:

   # echo $PATH

  显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。

 6.测试是否安装成功

  # arm-linux-gcc -v

上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息:

 Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs

 Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc- 3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu

 --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm

 -linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable

 -nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable- languages=c,c++ --enable-shared --enable-c99 --enable-long-long

 Thread model: posix

 gcc version 3.4.1

7.编译Hello World程序,测试交叉工具链

   写下下面的Hello World程序,保存为 hello.c

#include

int main()

{

printf("Hello World!\\n");

return 0;

}

   执行下面的命令:

# arm-linux-gcc -o hello hello.c

    源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!

接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。

有时会有如下的警告:

warning: no newline at end of file

英文的意思就是说文末没有换行符。Unix文档的回车换行符是一个字符\\n,Windows的是分别的两个\\n\\r,所以你在Windows下编辑的最后一个字符是\\r不是\\n,所以编译器以为有错误。在文件最后补一个新行即可。

源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!

接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。

想要在PC机linux上运行,只需执行如下命令:

gcc hello.c -o hello

    ./hello

显示打印结果

至此嵌入式的开发环境搭建完毕

文档

AT91SAM9260开发环境搭建大全(tftp_nfs_编译器安装等)

================(可以在ubuntu11.10中成功进行安装配置)=============1、tftp服务器的安装注意:如果在apt-getinstall过程中,出现找不到一大堆的东西,一般是源有问题。到新立得下面操作,标记安装,一般就可以,还不行的话,换个源。在新立得下如果卸载出现什么子进程的什么什么东东。要到/var/lib/dpkg/info/下删除相应的tftp-hpa和tftpd_hpa文件。然后到/var/cache/apt/archives下删除相应的tftp-
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top