首先介绍一下我的开发环境:
PC环境是Fedora 10,开发板为友善之臂的MINI2440
主机IP:192.168.50.72 网关:192.168.50.1 子网掩码:255.255.255.0
开发板IP:192.168.50.168 网关:192.168.50.1 子网掩码:255.255.255.0
为了能和主机建立起连接我必须得把开发板IP改成和主机一个 网段的 .
这里首先要说明的是 Fedora 10的静态IP设置问题:
默认安装完成后,右上角的网络配置上 wired ..和eth0为灰色。不能点选 。
然后禁用networdmanager启动network以太网设置静态IP的时候,不管怎么设置, 子网掩码都和网关一样,
比如说:地址:192.168.0.22
子网掩码: 192.168.0.1 //不管怎么输入255.255.255.0 ,都不行!
网关: 192.168.0.1 //这里改了255.255.255.0的话,上面就也成255.255.255.0了。(auto ethernet是可以联上网的)。所以就上GG找答案,找解决方法。
进入FC10,执行终端命令(也可以用VI修改)
$ su -c ‘gedit /etc/sysconfig/networking/devices/ifcfg-eth0′
直接修改文件中的子网掩码信息就可以
代码为:
# Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express
DEVICE=eth0
HWADDR=00:16:e6:db:c2:96
ONBOOT=yes
BOOTPROTO=static //这个应该是“static”,而不是“dhcp”或“none”;
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=yes//这个应该是“yes”,如不修改,链接仍是disconnected;
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.50.72
GATEWAY=192.168.50.1
然后重新激活下网卡就可以了.
#service network restart
设置完成后,右上角的网络配置上System eth0与auto ethernet就可以点选了.
需要说明的是因为我之前没有设置静态IP之前通过 NFS 启动系统启动不了.
连接主机和开发板
我选择了串口线和网线连接起了主机和开发板
连接好电源,串口线,网线,打开串口终端
配置minicom(在FC10终端输入命令minicom -s)
进入到minicom配置界面后选择 :Serial port setup
然后按照下面的设置下就OK了
A – Serial Device : :/dev/ttyS0
B – Lockfile Location : /var/lock
C – Callin Program :
D – Callout Program :
E – Bps/Par/Bits : 115200 8N1
F – Hardware Flow Control : No
G – Software Flow Control : No
建立和配置 NFS 服务
(1)设置共享目录
运行命令
#gedit /etc/exports
编辑 nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容:
/opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash)
其中:
/opt/FriendlyARM/mini2440/root_qtopia 表示 nfs 共享目录,它可以作为开发板的根文件系统通过 nfs 挂接;
* 表示所有的客户机都可以挂接此目录
rw 表示挂接此目录的客户机对该目录有读写的权力
no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份
(2)通过命令启动和停止 nfs 服务
在命令行下运行:
#/etc/init.d/nfs restart
这将启动 nfs 服务,可以输入以下命令检验 nfs 该服务是否启动。
# mount -t nfs 192.168.50.72: /opt/FriendlyARM/mini2440/root_qtopia /mnt/
如 果 没 有 出 现 错 误 信 息 , 您 将 可 以 浏 览 到 /mnt 目 录 中 的 内 容 和
/opt/FriendlyARM/mini2440/root_qtopia 是一致的。
使用这个命令可以停止 nfs 服务:
#/etc/init.d/nfs stop
检查nfs服务器是否开启: #service nfs status
重启对应的2个服务: #service portmap restart
#service nfs restart
检查防火墙看是否屏蔽了nfs端口
#service iptables stop
#service iptables status
通过 NFS 启动系统
当 NFS 服务设置好并启动后,我们就可以把 NFS 作为根文件系统来启动开发板了。通过使用 NFS 作为根文件系统,开发板的“硬盘”就可以变得很大,因为您使用的是主机的硬盘,这是使用 linux 作为开发经常使用的方法,
设置目标板启动模式为 Nand Flash 启动,连接好电源,串口线,网线;打开串口终端,在开机或者复位的时候迅速按下 PC 机的空格键,这样我们就进入了 vivi 模式,输入以下命令:
Supervivi> param set linux_cmd_line “console=ttySAC0 root=/dev/nfs
nfsroot=192.168.50.72:/opt/FriendlyARM/mini2440/root_qtopia
ip=192.168.50.168:192.168.50.72:192.168.50.1:255.255.255.0:mini2440:eth0:off”
(1,如果通过minicom监控串口,如出现乱码,可将波特率调高点,我调的是 115200 2,输入命令过长的话,发现minicom没法 换行,其实也可以设置一下:同时按下CTRL+A 松开后按 W换行开关)
其中 ,param set linux_cmd_line 是设置启动 linux 时的命令参数。其各参数的含义如下:
nfsroot 后面是自己开发主机的 IP 地址。
“ip=”后面:
第一项(192.168.50.168)是目标板的临时 IP(注意不要和局域网内其他 IP 冲突);
第二项(192.168.50.72)是开发主机的 IP;
第三项(192.168.50.1)是目标板上网关(GW)的设置;
第四项(255.255.255.0)是子网掩码;
第五项是开发主机的名字(一般无关紧要,可随便填写)
eth0 是网卡设备的名称
然后输入 boot,按回车就可以通过 nfs 启动系统了。
在开发板上挂载NFS网络文件系统 (Linux 中最常用的方法就是采用 NFS 来执行各种程序,这样可以不必花费很多时间下载程序,虽然在此下载 hello 程序用不了多久,一旦您的应用程序变得越来越大,您就会发现使用 NFS 运行的方便所在。)
通过NFS启动系统后,在开发板终端输入
[root@FriendlyARM /]# mount -t nfs -o nolock 192.168.50.72:/opt/FriendlyARM/mini2440/root_qtopia /mnt/
这里我刚开始遇到了一个问题,以为为什么开发板不能mount,因为提示如下错误信 息: mount: mounting 192.168.50.72:/opt/FriendlyARM/mini2440/root_qtopia on /mnt/ failed: No such file or directory
于是我就ls看了一下,发现没有mnt文件夹,所以就自己创建了一个.再次mount就没有问题了.
[root@FriendlyARM /]# ls
bin etc home linuxrc proc sbin tmp var
dev hello lib opt root sys usr www
[root@FriendlyARM /]# mkdir mnt
[root@FriendlyARM /]# ls
bin hello linuxrc proc sys var
dev home mnt root tmp www
etc lib opt sbin usr
[root@FriendlyARM /]# mount -t nfs -o nolock 192.168.50.72:/opt/FriendlyARM/mini
2440/root_qtopia /mnt/
[root@FriendlyARM /]# cd /mnt/
[root@FriendlyARM /mnt]# ls
bin hello linuxrc proc sys var
dev home mnt root tmp www
etc lib opt sbin usr
mount成功后你进入到/mnt目录下就可以看到你主机 root_nfs目录下的内容了.
至此我成功在ARM开发板上挂载NFS网络文件系统.