主题 : 解决nfs启动系统的问题 复制链接 | 浏览器收藏 | 打印
Embeded
级别: 新手上路
UID: 6997
精华: 0
发帖: 13
金钱: 130 两
威望: 80 点
综合积分: 26 分
注册时间: 2009-06-27
最后登录: 2009-09-22
楼主  发表于: 2009-09-03 11:58

 解决nfs启动系统的问题

一般我们从用户手册通过如下方法:

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.16:/opt/FriendlyARM/mini2440/root_qtopia ip=192.168.0.17:192.168.0.16:192.168.0.1:255.255.255.0:sbc2440.arm9.net:eth0:off"

但总是遇到如下问题:
portmap: server 192.168.0.16 not responding, timed out                        
Root-NFS: Unable to get mountd port number from server, using default          
Root-NFS: Server returned error -5 while mounting /opt/FriendlyARM/mini2440/root_nfs  

先直接说解决办法:
先重启目标板(此时不要按空格了),输入route del default后,再重启进入supervivi即可了。

原因猜测:
route del default是用来删掉默认路由(simon22543的说法,具体是什么意思请楼下高手回答吧),进而解决无法mount的问题。
我的目标板是通过网线连到HUB,经过局域网再上网的。应该遇到这个问题的都不是通过路由连网的?
如果是因为mount的问题(只能挂载一个目录?),那还有其他什么办法呢?

我还有问题:
1.我用目标板上网的时候,可以上网,但是网页显示的是乱码(也可能是外文,看不懂),怎么办呢?
2.通过nfs启动系统,手册上给的方法能放之四海而皆准吗?如果换了一个bootloader怎么办?友善很多时候老是让我们用他们写好的软件,这样对我们入门可以,但深入学习好像意义不大。总觉得用软件心里虚的很。
3.组建局域网的问题:有人直接通过网线把目标板和主机相连,首先得确保主机有两块网卡,还得确保主机是服务器(即主机是连接外网的)。但我没有试过两个机子直接这样相连,可以让客户机或者目标板上网吗?网线是不是有什么要求?
4.超级终端显示eth0: link up, 10Mbps, half-duplex   10Mb那是我的HUB问题,但半双工怎么修改呢?是HUB问题还是目标板的设置问题,抑或是主机的问题?
5.我用的虚拟机。在windows下和linux下的IP我设置的并不一样,那在nfsroot中应该设置成哪个IP呢?

PS:
像蓝色理想之流,问问题的时候比谁都积极,自己解决了问题就回复一个“解决了”,具体方法不给出来,这岂不是太贱!!不要忘了linux的开源精神啊!
我再好好研究一下出现这些问题的原因,有成果后再跟帖。
[ 此帖被schoon在2009-09-03 12:07重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-09-03 13:07
每个人的问题都不一样,特别是NFS这种和网络配置密切相关的东西;
通常我对那种只说"解决了"的人只能认为他们犯了自己都不好意思说出来(也许是自己都还没搞懂)的错误。
那种问题的解决方式对别人来说是毫无价值的。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2009-09-03 13:21
1.我用目标板上网的时候,可以上网,但是网页显示的是乱码(也可能是外文,看不懂),怎么办呢?

这个我想需要满足两个条件:
一是网页必须用正确的编码方式解析,比如简体中文的GB2312的或是UTF-8的;
二是系统里必须安装相应的字体才能正常显示。

.通过nfs启动系统,手册上给的方法能放之四海而皆准吗?如果换了一个bootloader怎么办?友善很多时候老是让我们用他们写好的软件,这样对我们入门可以,但深入学习好像意义不大。总觉得用软件心里虚的很。

其实你应该看得出来,nfs启动(正确的名称应该叫nfs作root文件系统,nfsroot)其实是由内核在启动过程中完成的,和bootloader没有直接关系。bootloader在这中间扮演的角色只是把网络和NFS Server的配置信息通过内核命令行传递给内核。
任何人包括友善之臂都不肯能把事物的原理的告诉你,因为没人可以,原理是要靠自己去发现的。你能注意到这一点已经比其他人提高了很多。希望你能真正掌握open source的精神,用它最强大的武器--源代码本身去解决问题。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-09-03 13:25
3.组建局域网的问题:有人直接通过网线把目标板和主机相连,首先得确保主机有两块网卡,还得确保主机是服务器(即主机是连接外网的)。但我没有试过两个机子直接这样相连,可以让客户机或者目标板上网吗?网线是不是有什么要求?

像考虑这类问题,你可以完全把开发板把当成是网线连着的另一台电脑。要考虑的问题只是这个局域网里的多台电脑如何共享上网,这种答案我相信google一下很容易找到的。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
Embeded
级别: 新手上路
UID: 6997
精华: 0
发帖: 13
金钱: 130 两
威望: 80 点
综合积分: 26 分
注册时间: 2009-06-27
最后登录: 2009-09-22
4楼  发表于: 2009-09-22 17:00
  我在这里补充一下大家经常NFS启动不了的一个问题

因为很多人用的都是VM,所以在设置主机IP的时候,会想当然地认识应该设为WINDOWS下的IP
实际上,是应该设为linux下的ip地址。如果使用minicom就一般不会出现这个错误(提示一下,有的人在minicom中粘贴不了几行代码,通过crtl+A 后按W可解决)
原因应该是:共享目录是在linux下面!

我还是有问题,希望高手回答下:
1.minicom中经常出现乱码,有时候也不影响命令的正确性,不过这个确实很讨厌,怎么解决呢?

2.将内核下载到内存后,使用NFS启动后一直停在 booting the kernel.

具体步骤:
首先,我将自己编译的内核文件下载到内存中(下载到低地址,那请问它会自动解压到高地址,并运行在哪个地址呢?这个我一直很晕);
当然在编译的时候我已经配置好了NFS启动项(网上有人说可能是没有选择NFS,我特别注意了);
然后在命令行模式挂载NFS系统成功(可通过boot命令进入系统,应该是说明挂载成功了吧);
最后boot ram,即启动RAM,一直停在如下处:
Starting kernel ...

Uncompressing Linux...................................................................... done, booting the kernel.
Embeded
级别: 新手上路
UID: 6997
精华: 0
发帖: 13
金钱: 130 两
威望: 80 点
综合积分: 26 分
注册时间: 2009-06-27
最后登录: 2009-09-22
5楼  发表于: 2009-09-22 17:01
Supervivi> boot ram
Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.16:/opt/
FriendlyARM/mini2440/root_qtopia ip=192.168.0.17:192.168.0.16:192.168.0.1:255.25
5.255.0:sbc2440.arm9.net:eth0:off"
MACH_TYPE = 782
NOW, Booting Linux......
Uncompressing Linux.............................................................
..................................................................... done, boot
ing the kernel.
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
6楼  发表于: 2009-09-22 17:43

 回 5楼(schoon) 的帖子

"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."