歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux-2.6.14掛載NFS文件系統

NFS服務器配置
系統平台:
 VMware7+Ubuntu 11.10

安裝NFS:
  #apt-get install nfs-kernel-server
  打開/etc/exports文件,在末尾加入:
  /home/nfs *(rw,sync,no_root_squash)
  注:nfs允許掛載的目錄及權限,在文件/etc/exports中進行定義, 各字段含義如下:

/home/nfs:要共享的目錄
* :允許所有的網段訪問
rw :讀寫權限
sync:資料同步寫入內在和硬盤
no_root_squash:nfs客戶端共享目錄使用者權限
重啟服務:
  #/etc/init.d/portmap restart <---重啟portmap,很重要
  #/etc/init.d/nfs-kernel-server restart <---重啟nfs服務
  #showmount -e <---顯示共享出的目錄
  注:nfs是一個RPC程序,使用它前,需要映射好端口,通過portmap設定
  命令執行情況如下:
  #/etc/init.d/portmap restart
  
  #/etc/init.d/nfs-kernel-server restart
  
  #showmount -e

在本機上測試:
  #sudo mount -t nfs localhost:/home/nfs /mnt
  注:localhost為本機linux的IP地址
  這樣就把共享目錄掛到了/mnt目錄,取消掛載用:
  # umount /mnt

CS8900驅動移植
1  cs8900.c 和 cs8900.h 放到 /drivers/net/arm/


2  在 cs8900.c 中的 cs8900_probe() 函數中 ,memset (&priv,0,sizeof (cs8900_t)); 函數之後添加如下兩條語句 :
    __raw_writel(0x2211d110,S3C2410_BWSCON);
    __raw_writel(0x1f7c,S3C2410_BANKCON3);
    添加頭文件 #include <asm/arch/regs-mem.h>
 
3  修改 drivers/net/arm/ 目錄下的 Kconfig 文件 , 在最後添加如下內容 :
    config ARM_CS8900
  tristate "CS8900 support"
        depends on NET_ETHERNET && ARM && ARCH_SMDK2410
    help
 
4  修改 drivers/net/arm/ 目錄下的 Makefile 文件 , 在最後添加如下內容 :
    obj-$(CONFIG_ARM_CS8900)    += cs8900.o
 
5  在 /arch/arm/mach-s3c2410/mach-smdk2410.c 文件中 , 找到 smdk2410_iodesc[] 結構數組 , 添加如下如下內容 :{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE }
    添加頭文件 #inlcude <asm/arch/smdk2410.h>
其實這個就是下面的那個頭文件的鏈接 /include/asm-arm/arch-s3c2410/smdk2410.h
 
6  在 include/asm-arm/arch-s3c2410/ 目錄下創建 smdk2410.h 文件 , 其內容為 :
    #ifndef _INCLUDE_SMDK2410_H_
    #define _INCLUDE_SMDK2410_H_
    #include <linux/config.h>
    #define pSMDK2410_ETH_IO  0x19000000
    #define vSMDK2410_ETH_IO    0xE0000000
    #define SMDK2410_ETH_IRQ  IRQ_EINT9
    #endif // _INCLUDE_SMDK2410_H_
 
7  編譯內核 , 選中所裝驅動
    #make menuconfig
Device Drivers >
      Network device support  --->
            Ethernet (10 or 100Mbit) --->
                [*]Ethernet (10 or 100Mbit)
                <*>CS8900 support

U-Boot環境變量設置
setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.15:/home/nfs/myroot ip=192.168.1.5 init=/linuxrc console=ttySAC0,115200

saveenv

Copyright © Linux教程網 All Rights Reserved