Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57681
  • 博文数量: 40
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-14 11:08
文章分类
文章存档

2015年(40)

我的朋友

分类: LINUX

2015-03-17 10:29:01

NFS是个什么东东,我就不细说了,定义如下:网络文件系统(NFS, Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。更具体的,请自行百度、谷歌。

NFS需要服务端和客户端,Ubuntu上需要开启nfs server,JZ2440上需要nfs client。

Ubuntu 9.10安装和配置nfs


    执行以下命令安装nfs服务,安装后即会自动运行:
        sudo apt-get install nfs-kernel-server portmap
    它的配置文件为/etc/exports,在里面增加一下内容,以后通过网络文件系统访问/sj_work/fs_root/fs_mini目录:
        /sj_work/fs_root/fs_mini *(rw,sync,no_root_squash)
    修改完毕后,执行以下命令重启NFS服务:
        sudo /etc/init.d/nfs-kernel-server restart

    以上命令的含义,请自行百度、谷歌。

JZ2440配置和使用nfs


    网卡驱动:


    使用前需要确保对应开发板上的网卡工作OK,JZ2440上用的是DM9000CEP,此网卡通DM9000A几乎差不多,但也有一点不同,DM9000驱动可以参考《嵌入式Linux应用开发完全手册》中的相关章节或自行百度下。
    但有一点需要说明,在linux 2.6.22中Dm9000.c文件中的函数static int dm9000_open(struct net_device *dev)里,需要在
        /* Initialize DM9000 board */
        dm9000_reset(db);
        dm9000_init_dm9000(dev);
    之前添加如下代码:
        /* pre enable phy */
        iow(db, DM9000_GPR, 0); /* Enable PHY */
        mdelay(20);
    即预先使能PHY。

    不加此代码之前,我的网卡工作有时正常,有时异常。这个是针对DM9000CEP的,别的型号的网卡请自行尝试。


    U-boot传递给linux内核的启动参数:

    
    setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0   --->   这个是默认的启动参数

    setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.101:/sj_work/fs_root/fs_mini ip=192.168.1.133:192.168.1.101:192.168.1.1:255.255.255.0::eth0:on init=/linuxrc console=ttySAC0   --->   这个是使用NFS的启动参数

    NFS的启动参数格式说明见:linux源代码中Documentation\nfsroot.txt

    

    linux内核配置:

    
    我使用的是linux 2.6.22中的arch\arm\configs\s3c2410_defconfig作为默认配置,即使用下面命令
        cp arch\arm\configs\s3c2410_defconfig .config

    之后输入
        make menuconfig
    既可在s3c2410_defconfig配置的基础上进行操作。

    需要确保 Networking --> Networking options
        [*] TCP/IP networking
        [*]   IP: kernel level autoconfiguration 
        [ ]     IP: DHCP support
        [*]     IP: BOOTP support
        [ ]     IP: RARP support

    需要确保 File systems --> Network File Systems
        <*> NFS file system support
        [*]   Provide NFSv3 client support
        [*]     Provide client support for the NFSv3 ACL protocol extension
        [*]   Provide NFSv4 client support (EXPERIMENTAL) 
        [*]   Allow direct I/O on NFS files  
        [*] Root file system on NFS
        [*] Support for rpcbind versions 3 & 4 (EXPERIMENTAL) 

    之后执行make uImage(因为是使用的bootloader用的是u-boot,所以需要生成uImage的内核镜像。),之后下载sudo dnw arch/arm/boot/uImage。


阅读(437) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~