构建嵌入式LINUX的NFS

2019-07-12 20:19发布

准备工作:
一台装有REDHAT9.0的PC机,一套LJD2410-I开发板,PC机上装有LJD2410的软件包,假如我
们通过NFS要加载的文件系统为/LJD2410/root_dir/root_china,
Ifconfig eth0 192.168.1.100  //设置PC机linux的IP:192.168.1.100,
Ifconfig eth0 192.168.1.10  //开发板IP:192.168.1.10
   
    我们需要重新配置编译内核,开启开发板NFS文件系统功能,具体步骤如下:
    1、 修改kernel/arch/arm/def-configs/smdk2410配置文件
         把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc
         console=ttyS0"这一行改为CONFIG_CMDLINE="root=/dev/nfs rw
         nfsroot=192.168.1.100:/LJD2410/root_dir/root_china noinitrd
         init=linuxrc console=ttys0 ip=192.168.1.10"
运行make menuconfig进入配置菜单,装载配置文件SMDK2410
    选择Load an Alternate Configuration File输入配置文件的路径和文件名
添加内核对NFS的支持:
选中networking options-》IP:kernel level auloconfiguralion项
        选中file systems-》network file systems-》下的root file system on nfs
和nfs file system support
重新编译内核下载bootloader和kernel到开发板上,至此,开发板设置已经完成。
            PC机设置:我们必须开启PC机的NFS服务,具体设置如下:1、 在LINUX命令
符下运行setup,在system services里面选中nfs服务,然后保存退出。

2、  设置PC机上的共享目录执行vi /etc/exports,在里面添加一
行:/LJD2410/root_dir/root_china  (rw),然后保存退出,/和rw要有空格
(/LJD2410/root_dir/root_china为共享目录,rw为读写权限)。
3、  执行/etc/rc.d/init.d/nfs restart重启nfs服务。
    4、为了不必每次开机都要启动nfs服务,我们把/etc/rc.d/init.d/nfs restart
       添加到/etc/rc.d/rc.local中,以后PC启动的时候就会执行此文件开启nfs服务。
    5、 测试NFS服务:设置完成后可以在本机上进行测试,如果本机IP为192.168.1.100,
则可以用
mount 192.168.1.100:/LJD2410/root_dir/root_china /mnt,如果mount成功,则在/mnt
的目录就可以看到root_china下面的东西了。
    6、 修改root_china/usr/etc/rc.local文件,设置开发板IP地址为192.168.1.10
    至此,开发板和PC机的设置都已经基本完成,假如我们在PC机上调试好的应用程序已
经放到/root_china这个嵌入式的文件系统下面,我们则可以用网络连接好开发板和PC机,
开发板上电,系统开始运行并且通过运行nfs网络文件系统就可以进入熟悉的linux界面
了。
    以后调试程序只需要把编译好的程序放到root_china的目录下面就可以了,开发板不
再需要烧写。