linux-2.6.14掛載NFS文件系統(tǒng)
NFS服務(wù)器配置
系統(tǒng)平臺(tái):
VMware7+Ubuntu 11.10
安裝NFS:
#apt-get install nfs-kernel-server打開/etc/exports文件,在末尾加入:
/home/nfs *(rw,sync,no_root_squash)
注:nfs允許掛載的目錄及權(quán)限,在文件/etc/exports中進(jìn)行定義, 各字段含義如下:
- /home/nfs:要共享的目錄
- * :允許所有的網(wǎng)段訪問
- rw :讀寫權(quán)限
- sync:資料同步寫入內(nèi)在和硬盤
- no_root_squash:nfs客戶端共享目錄使用者權(quán)限
重啟服務(wù):
#/etc/init.d/portmap restart <---重啟portmap,很重要#/etc/init.d/nfs-kernel-server restart <---重啟nfs服務(wù)
#showmount -e <---顯示共享出的目錄
注:nfs是一個(gè)RPC程序,使用它前,需要映射好端口,通過portmap設(shè)定
命令執(zhí)行情況如下:
#/etc/init.d/portmap restart
#/etc/init.d/nfs-kernel-server restart
#showmount -e
在本機(jī)上測(cè)試:
#sudo mount -t nfs localhost:/home/nfs /mnt注:localhost為本機(jī)linux的IP地址
這樣就把共享目錄掛到了/mnt目錄,取消掛載用:
# umount /mnt
CS8900驅(qū)動(dòng)移植
1 cs8900.c 和 cs8900.h 放到 /drivers/net/arm/
2 在 cs8900.c 中的 cs8900_probe() 函數(shù)中 ,memset (&priv,0,sizeof (cs8900_t)); 函數(shù)之后添加如下兩條語句 :
__raw_writel(0x2211d110,S3C2410_BWSCON);
__raw_writel(0x1f7c,S3C2410_BANKCON3);
添加頭文件 #include
3 修改 drivers/net/arm/ 目錄下的 Kconfig 文件 , 在最后添加如下內(nèi)容 :
config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help
4 修改 drivers/net/arm/ 目錄下的 Makefile 文件 , 在最后添加如下內(nèi)容 :
obj-$(CONFIG_ARM_CS8900) += cs8900.o
5 在 /arch/arm/mach-s3c2410/mach-smdk2410.c 文件中 , 找到 smdk2410_iodesc[] 結(jié)構(gòu)數(shù)組 , 添加如下如下內(nèi)容 :{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE }
添加頭文件 #inlcude
其實(shí)這個(gè)就是下面的那個(gè)頭文件的鏈接 /include/asm-arm/arch-s3c2410/smdk2410.h
6 在 include/asm-arm/arch-s3c2410/ 目錄下創(chuàng)建 smdk2410.h 文件 , 其內(nèi)容為 :
#ifndef _INCLUDE_SMDK2410_H_
#define _INCLUDE_SMDK2410_H_
#include
#define pSMDK2410_ETH_IO 0x19000000
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
#endif // _INCLUDE_SMDK2410_H_
7 編譯內(nèi)核 , 選中所裝驅(qū)動(dòng)
#make menuconfig
Device Drivers >
Network device support --->
Ethernet (10 or 100Mbit) --->
[*]Ethernet (10 or 100Mbit)
<*>CS8900 support
2 在 cs8900.c 中的 cs8900_probe() 函數(shù)中 ,memset (&priv,0,sizeof (cs8900_t)); 函數(shù)之后添加如下兩條語句 :
__raw_writel(0x2211d110,S3C2410_BWSCON);
__raw_writel(0x1f7c,S3C2410_BANKCON3);
添加頭文件 #include
3 修改 drivers/net/arm/ 目錄下的 Kconfig 文件 , 在最后添加如下內(nèi)容 :
config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help
4 修改 drivers/net/arm/ 目錄下的 Makefile 文件 , 在最后添加如下內(nèi)容 :
obj-$(CONFIG_ARM_CS8900) += cs8900.o
5 在 /arch/arm/mach-s3c2410/mach-smdk2410.c 文件中 , 找到 smdk2410_iodesc[] 結(jié)構(gòu)數(shù)組 , 添加如下如下內(nèi)容 :{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE }
添加頭文件 #inlcude
其實(shí)這個(gè)就是下面的那個(gè)頭文件的鏈接 /include/asm-arm/arch-s3c2410/smdk2410.h
6 在 include/asm-arm/arch-s3c2410/ 目錄下創(chuàng)建 smdk2410.h 文件 , 其內(nèi)容為 :
#ifndef _INCLUDE_SMDK2410_H_
#define _INCLUDE_SMDK2410_H_
#include
#define pSMDK2410_ETH_IO 0x19000000
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
#endif // _INCLUDE_SMDK2410_H_
7 編譯內(nèi)核 , 選中所裝驅(qū)動(dòng)
#make menuconfig
Device Drivers >
Network device support --->
Ethernet (10 or 100Mbit) --->
[*]Ethernet (10 or 100Mbit)
<*>CS8900 support
U-Boot環(huán)境變量設(shè)置
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
評(píng)論