分类: 嵌入式
2011-03-14 09:27:37
接着来总结总结今天出现的一些问题,先来说说TFTP配置出来的一些问题吧,简单的归结如下:
当TFTP配置成功后,在PC机上测试可以实现上传与下载,说明是TFTP已经配置成功,是正常的,当目标板烧写了Uboot之后,设置了环境变量 ethaddr、ipaddr、serverip等,然后对主机进行ping操作,结果总是失败。但是主机ping目标板却是成功的,这是啥原因呢?
为了解决这个问题,我对TFTP服务器的配置成功与否产生质疑,结果重来了几次,最终以失败告终。紧接着在windows环境下用TFTP-server 测试,还是出现这种问题,失败。最后换了个uboot测试,还是没成功。郁闷啊郁闷!!!!这是何等的郁闷,没想到被这小小的TFTP给难住了。如果目标 板与主板没连通,我后面的实验就做不下去了,真是麻烦,心急如焚,虽说不能太急,但是由于已经花了半天的时间了,不能再浪费了。后来出去溜达了两圈,突然 间想到:NND,与目标板相连的是网线,其与PC相连的是有线以太网口,即eth0,而我现在连的是无线接口wlan0,这岂不是扯蛋嘛。于是乎,重新点 烯了希望,马上把wlan0无线断了,启用eth0的方式与目标板相连,并用ifconfig eth0 192.168.0.112配置主机IP。配置成功后,再次进行ping操作,果然,成功了!!!!!这个问题虽然有点白,不过确实让我花了很大时间去 找,哎,还好解决。
接着谈谈配置NFS网络存在的一些问题吧,问题如下:
当配置成功后,在本地进行测试,为何会挂载不成功呢:
cpc@ubuntu:~$ sudo mount -t nfs 192.168.0.112:/home/cpc/nfs /mnt/nfs
mount.nfs: access denied by server while mounting 192.168.0.112:/home/cpc/nfs
这个问题还真棘手,不过也成功解决了,原因如下:
1:没有启动端口映射
应该执行#sudo /etc/rc.d/init.d/portmap start (如果不行,就执行:#sudo /etc/init.d/portmap start,如果还不行,则执行这一条:
#sudo service portmap start(这一条绝对能成功)
2: 将/etc/exports中的“/home/cpc/nfs 192.168.0.*(rw, sync, no_subtree_check)" 改写成“ /home/cpc/nfs *(rw,sync, no_root_squash)"即可
这样一改就可以解决上述的问题了。
下面就来详细地谈下如何配置TFTP服务器和NFS网络吧
1 TFTP服务器配置
1.1安装tftpd、tftp和openbsd-inetd
#sudo apt-get install tftpd
#sudo apt-get install tftp
#sudo apt-get install openbsd-inetd
1.2 在用户主目录下创建tftpboot目录并设置其读取权限
mkdir /home/cpc/tftpboot
chmod 777 /home/cpc/tftpboot
1.3修改/etc/inetd.conf配置文件
#sudo vim /etc/inetd.conf 打开文件
将文件底部加入为以下内容:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/cpc/tftpboot
注:最后面的/home/cpc/tftpboot即为tftp服务器的目录了。
1.4修改 /etc/xinetd.d/tftp 配置文件(如果没有 tftp文件就创建它)
#sudo vim /etc/xinetd.d/tftp 打开文件后修改成如下样式:
service tftp
{
disable =no
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /home/cpc/tftpboot -c
source = 11
cps = 100 2
}
当然以上的server_args参数可以根据实际情况修改。
1.5 修改 /etc/default/tftpd-hpa文件如下:
#/etc/default/tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-s /home/cpc/tftpboot -c -p -U tftpd"
1.6开启服务
sudo /etc/init.d/openbsd-inetd reload
sudo /etc/init.d/xinetd restart
sudo in.tftpd -l /home/cpc/tftpboot
1.7测试是否成功配置(这块就不讲了,略过)
---------------------------------------------------
2 NFS网络文件系统配置
2.1安装 NFS服务器安装 nfs-kernel-server
可以通过新立得软件包管理器来安装或#sudo apt-get install nfs-kernel-server
2.2 在用户根目录下建立nfs目录并改变目录权限
mkdir /home/cpc/nfs
chmod 777 /home/cpc/nfs
2.3 修改/etc/exports配置文件,修改内容如下:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw ,sync) hostname2(ro ,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw ,sync ,fsid=0 ,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw ,sync)
/home/cpc/nfs *(rw, sync, no_root_squash)
2.4 修改配置完后,接下来最关键的一步就是要启动portmap服务与nfs-kernel-server服务
sudo service portmap start(启动portmap端口映射)
sudo /etc/init.d/nfs-kernel-server restart (启动nfs服务)
2.5测试
可以把nfs文件系统mount到/mnt/下,然后在/mnt下查看文件的内容,如果在/mnt下能查看到与/nfs目录下的内容,则说明nfs网络文 件系统配置成功。这样,嵌入式目标板运行时可以通过设置环境变量bootargs,让其过挂载nfs上的文件系统,这样方便调试。
mount –t nfs 192.168.0.112:/home/cpc/nfs/ /mnt
然后查看ls /mnt内容。
---------------------文章结束---------------------