×
单片机 > 单片机程序设计 > 详情

基于Ubuntu9.10和JZ2440的NFS系统

发布时间:2020-08-28 发布时间:
|
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

 如修改/etc/exports时提示只有管理员才有权限可以执行:sudo vim /etc/exports命令后再修改! 
    以上命令的含义,请自行百度、谷歌。

JZ2440配置和使用nfs


    网卡驱动:


    使用前需要确保对应开发板上的网卡工作OK,JZ2440上用的是DM9000CEP,此网卡通DM9000A几乎差不多,但也有一点不同,DM9000驱动可以参考《嵌入式Linux应用开发完全手册》中的相关章节或自行百度下。
    但有一点需要说明,在linux 2.6.22中Dm9000.c文件中的函数static int dm9000_open(struct net_device *dev)里,需要在
        
        dm9000_reset(db);
        dm9000_init_dm9000(dev);
    之前添加如下代码:
        
        iow(db, DM9000_GPR, 0);
        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。
关键字:Ubuntu9.10  JZ2440  NFS系统

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址