幸运时时彩平台

mini2440开发板之使用nfs无法启动的问题(Virtualbox桥接网络)

2020-05-26来源: eefocus关键字:mini2440  nfs  无法启动  Virtualbox  桥接网络

今天晚上研究了一下如何通过super-vivi来使用nfs网络文件系统来启动mini2440开发板,一开始一直无法成功,折腾了半天总算搞定了,总结一下:


1、首先,介绍一下我的开发环境。


物理机:win10;

虚拟机:ubuntu 12.04;

模拟器:virtualbox 5。20;

我的步骤是,按照用户手册的说明,先用super-vivi引导系统,输入q进入命令行模式,然后输入nfs启动命令(如下),最后输入boot启动系统。


param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.100.108:/opt/FriendlyARM/mini2440/rootfs ip=192.168.100.230:192.168.100.108:192.168.100.1:255.255.255.0:sbc2440.arm9.net:eth0:off"


但是,系统始终无法启动。每次都提示:


Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00500000 ... done

幸运时时彩平台zImage magic = 0x016f2818

Setup linux parameters at 0x30000100

linux command line is: "console=ttySAC0 root=/dev/nfs nfsroot=192.168.100.108:/opt/FriendlyARM/mini2440/rootfs ip=192.168.100.230:192.168.100.108:192.168.100.1:255.255.255.0:mini2440.arm9.net:eth0:off"

MACH_TYPE = 1999

NOW, Booting Linux......

Uncompressing Linux。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 done, booting the kernel。

Linux version 2。6。32。2-FriendlyARM (root@LEON) (gcc version 4。4。3 (ctng-1。6。1) ) #1 Sat Jan 4 21:10:09 CST 2014


幸运时时彩平台.......【此处略去N个字】.........


eth0: link down

IP-Config: Complete:

幸运时时彩平台     device=eth0, addr=192.168.100.230, mask=255.255.255.0, gw=192.168.100.1,

     host=mini2440, domain=, nis-domain=arm9.net,

     bootserver=192.168.100.108, rootserver=192.168.100.108, rootpath=

幸运时时彩平台Looking up port of RPC 100003/2 on 192.168.100.108

eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1

rpcbind: server 192。168。100。108 not responding, timed out

Root-NFS: Unable to get nfsd port number from server, using default

幸运时时彩平台Looking up port of RPC 100005/1 on 192.168.100.108

rpcbind: server 192.168.100.108 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/rootfs

VFS: Unable to mount root fs via NFS, trying floppy。

VFS: Cannot open root device "nfs" or unknown-block(2,0)

Please append a correct "root=" boot option; here are the available partitions:

1f00             256 mtdblock0 (driver?)

1f01             128 mtdblock1 (driver?)

1f02            5120 mtdblock2 (driver?)

1f03           60032 mtdblock3 (driver?)

1f04           65536 mtdblock4 (driver?)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)


可以看到,上述log中最关键的地方就是”rpcbind: server 192。168。100。108 not responding, timed out“这句话了。它的意思就是,开发板尝试通过局域网连接到目标系统的nfs,但是目标无响应,超时了。这就意味着,要么就是ubuntu系统的nfs没有挂载成功,要么就是开发板没有连入局域网,要么就是ubuntu系统没有连入局域网。于是一个一个来排查吧。


2、首先排查第一个问题,确认一下ubuntu的nfs文件系统是否挂载成功了。这个问题,可直接参考我的另一篇博客(如何在ubuntu 12.04系统下开启nfs网络文件系统)中提到的第5点。我确认了我的系统,没有问题。


3、然后排查第二个问题,确认一下mini2440开发板是否成功连入局域网。可参见我的另一篇博客(mini2440开发板linux系统下的网络参数设置)中的第3点。我确认了我的开发板,没有问题。


4、上述两个方面都验证过了,都没问题,那问题肯定就出在第3个方面了。也就是说,是ubuntu系统没有连入到局域网中,导致开发板无法接入到nfs文件系统。换句话说,就是ubuntu系统和mini2440开发板并没有处于同一个局域网中。


一开始我意识到这一点时,我还怀疑是不是因为我的笔记本没有使用网线,而用的是无线网络。所以我把笔记本的无线网卡禁用掉,然后特地找了一根网线来试试。结果仍然一样。这就证明跟无线/有线并没有什么关系,应该是其他方面的问题。


然后我就去网上查阅各位大神的博客、论坛等。偶然间看到一篇文章里提到了virtualbox下的虚拟机网络模式配置,提到了桥接模式和ip地址设置,不然无法上网。我立马灵光一闪,感觉可能跟我的虚拟机网络模式和ip地址配置有点关系。


因为我在这之前只是确认了一下物理机的ip地址是192.168.100.108,然后就简单的以为我的虚拟机也是这个ip地址,然后就把这个ip地址写入到nfs的启动参数中,配置给mini2440。但是,物理机和虚拟机的IP地址是不一样的。我的nfs目录是挂载在虚拟机ubuntu的系统下,而不是物理机win10的系统下。因此我需要获取到虚拟机ubuntu系统的ip地址。可是此时在ubuntu系统下运行ifconfig命令时,得到的ip地址信息却是127.0.0.1之类的信息。这显然是不对的!而且,此时从虚拟机ping物理机是OK的,但是从物理机ping虚拟机是失败的,这样肯定是无法从外面挂载虚拟机里的nfs文件系统的。那该怎么办呢?


5、这就要回到virtualbox的网络模式的配置问题上面了。如下图,将virtualbox的网卡模式设置为桥接模式(至于具体原因,请自行百度)。

virtualbox网卡模式设置

6、重新启动虚拟机,输入ifconfig命令查询,发现其ip地址变成了:


leon@Ubuntu:~$ ifconfig

eth3      Link encap:以太网  硬件地址 08:00:27:ea:ba:41  

          inet 地址:192.168.100.104  广播:192.168.100.255  掩码:255.255.255.0

          inet6 地址: fe80::a00:27ff:feea:ba41/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1

          接收数据包:242 错误:0 丢弃:0 过载:0 帧数:0

          发送数据包:126 错误:0 丢弃:0 过载:0 载波:0

          碰撞:0 发送队列长度:1000 

          接收字节:42431 (42.4 KB)  发送字节:17387 (17.3 KB)


lo        Link encap:本地环回  

          inet 地址:127.0.0.1  掩码:255.0.0.0

          inet6 地址: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  跃点数:1

幸运时时彩平台          接收数据包:24 错误:0 丢弃:0 过载:0 帧数:0

          发送数据包:24 错误:0 丢弃:0 过载:0 载波:0

幸运时时彩平台          碰撞:0 发送队列长度:0 

          接收字节:3519 (3。5 KB)  发送字节:3519 (3。5 KB)


这就说明修改成功了。此时的虚拟机已经跟物理机一样并存于局域网中了,它的ip地址,就可以直接提供给mini2440使用了。


7、于是,将此时的虚拟机的ip地址,录入到mini2440的nfs启动参数中:


param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192。168。100。104:/opt/FriendlyARM/mini2440/rootfs ip=192。168。100。230:192。168。100。104:192。168。100。1:255。255。255。0:sbc2440。arm9。net:eth0:off"


然后输入boot,便可以看到mini2440成功启动了!


Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00500000 ... done

zImage magic = 0x016f2818

Setup linux parameters at 0x30000100

linux command line is: "console=ttySAC0 root=/dev/nfs nfsroot=192。168。100。108:/opt/FriendlyARM/mini2440/rootfs ip=192。168。100。230:192。168。100。108:192。168。100。1:255。255。255。0:mini2440。arm9。net:eth0:off"

MACH_TYPE = 1999

NOW, Booting Linux。。。。。。

Uncompressing Linux................................................................................................................................................... done, booting the kernel.

Linux version 2.6.32.2-FriendlyARM (root@LEON) (gcc version 4.4.3 (ctng-1.6.1) ) #1 Sat Jan 4 21:10:09 CST 2014


................


eth0: link down

IP-Config: Complete:

     device=eth0, addr=192。168。100。230, mask=255。255。255。0, gw=192。168。100。1,

     host=mini2440, domain=, nis-domain=arm9.net,

     bootserver=192.168.100.104, rootserver=192.168.100.104, rootpath=

Looking up port of RPC 100003/2 on 192.168.100.104

eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1

Looking up port of RPC 100005/1 on 192.168.100.104

VFS: Mounted root (nfs filesystem) on device 0:11。

幸运时时彩平台Freeing init memory: 156K

hwclock: settimeofday() failed: Invalid argument


Try to bring eth0 interface up。。。。。。NFS root 。。。Done


Please press Enter to activate this console.


幸运时时彩平台8、哈哈,搞定,收工!


篇后语:


1、开发板和目标系统一定要处于同一个局域网下。当然,所谓同一个局域网,可以是通过有线的网线连入同一个路由器,也可以是通过无线网卡连入同一个路由器。但是一定要保证二者的IP地址处于同一个网段,网关和掩码也是一样的。

2、nfs文件系统如果搭建于虚拟机下,则一定要将虚拟机的网络模式设置为桥接模式,否则虚拟机将无法满足上述第一点。

关键字:mini2440  nfs  无法启动  Virtualbox  桥接网络 编辑:什么鱼 引用地址:http://news.sonata9.com/mcu/ic498309.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:一起学mini2440裸机开发(六)--UART原理与基础实验
下一篇:mini2440 sd卡加载过程详解

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

mini2440裸机试炼之——Uart与pc端实现文件、字符传输
:rULCON0|=0x03;              //设置UART0数据发送8个数据位赵老师的一段话(关于中断的,作为笔记):最后还要强调几点关于非FIFO模式下UART中断的一些注意事项:1.对于s3c2440来说,接收数据是被动的,发送数据是主动的,因此一般来说,接收数据用中断方式,发送数据用查询方式较好;2. 在中断方式下,当接收到数据时,尽管可能该数据无用,但也一定要读取它,否则下次再接收数据时,不会再引起中断,因为接收数据缓存器被上次接收到的数据所霸占,只要没有读取它,它就永远在那里;3. 由于UART中断涉及到SUBSRCPND寄存器,因此在
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——Uart与pc端实现文件、字符传输
mini2440裸机试炼之IIS——音乐播放器
; Port_Init();    MMU_Init(); //地址映射初始化    Beep(2000, 100);       music_player();}music_player.c/*********************************** 实现功能     music播放器  ***********************************/ #include "2440lib.h"#include "2440
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之IIS——音乐播放器
mini2440裸机试炼之——IIC控制EEPROM数据传输
,AT24C02A会再返回一个从设备地址信息或从设备内存地址信息作为应答,所以一定要把该字节读取后抛弃,因为它不是我们所要读取的信息;4、按照AT24C02A的时序,在发送从设备地址字节时,它的最低位是0表示写,1表示读。但对于s3c2440来说,不用人为设置这一位,即是0是1都无所谓,因为这一位是由s3c2440根据是主设备发送模式还是主设备接收模式来自动设置。(所以都默认使用0xa0);EEPROM介绍AT24CXX系列是带有iic总线接口的EEPROM,其中主要包括AT24C01/02/08/16等,其容量(bits x页)分别为128 x 8/256x 8/1024 x 8/2048 x 8/;对于AT24C02A的三位地址线都是
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——IIC控制EEPROM数据传输
mini2440裸机试炼之——看门狗中断和复位操作
结果:AXD调试执行到看门狗计数器rWTCNT为零时,进入复位,CPU停止工作,也就不产生中断。复位关闭axd后,u-boot串口初始化提示(没能及时在第一次蜂鸣器响按下按键停止autoboot):复位关闭axd后,u-boot串口初始化提示(及时在第一次蜂鸣器响按下按键停止autoboot):这里就是复位到用uboot初始化开发板的时候,可是不明确为什么必需要在第一次蜂鸣器就按下按键才干进到uboot附:硬件环境:J-link v8、mini2440、J-link转接板、串口转USB线软件环境:windows7(32位)、开发板uboot(NandFlash)、J-link驱动(J-Link ARM V4.10i)、SecureCRT
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——看门狗中断和复位操作
arm-linux-gcc 裸机程序开发(一)
以前开发arm裸机程序都是在ADS1.2开发环境下编译和调试的。刚开始时初学嵌入式好多东西不懂,选择这个开发环境的理由,一是资料多的,mini2440开发板上提供了很多例程可以参考,网上几乎所有arm裸机程序都是基于ADS1.2开发的。二是开发环境友善,虽然后来感觉ADS1.2有点难用,但毕竟是IDE的环境,对初学者来说总比命令行的方式更加直观与方便。随着学习的深入,感觉它就像傻瓜相机一样,虽然好用但屏蔽了很多内容,影响了我们深入理解代码编译以及链接的细节。而且ADS对于程序的开发没有GNU工具链灵活。这段时间因为需要,又要编写一些arm裸机程序。自己已经用Linux习惯了,不想再切回windows下工作了。所以,最近对linux
发表于 2020-07-04
mini2440开发板建立Keil MDK/Jlink开发调试环境
新建Keil工程,device选择三星的s3c2440。询问”是否将启动代码拷贝到工程目录”,选择是。在工程配置的Target标签页中做如下配置:确定后编写主函数并编译工程。假如没有错误,打开工程目录下的”工程名.sct”文件,就会发现ROM1的0×30000000就是程序的入口地址,对应启动代码中的”RESET”。安装Jlink驱动后,在Keil的debug标签中选择”J-link/J-Trace”作为调试工具。在Initialization File文本框中选择调试的初始化文件。打开初始化文件,将文件最后的”LOAD .XXX.axf”,中的XXX替换为自己工程目录下的axf文件名。在Utilities标签页中,选择J
发表于 2020-07-02
小广播
换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 sonata9.com, Inc. All rights reserved
幸运时时彩官网 福建快3走势 北京pk10 河北11选5走势图 幸运时时彩 一分时时彩 亿信彩票官网 亿信彩票网 福建11选5开奖 幸运时时彩