一台装有REDHAT9.0的PC机,一套YFDVK2410-II开发板,假如我们通过NFS要加载的文件系是pc机的/YF2410/root_dir/root目录,
Ifconfig eth0 192.168.0.249 //设置PC机linux的,我使用的是虚拟机
Ifconfig eth0 192.168.0.249 //设置PC机linux的,我使用的是虚拟机
IP:192.168.0.160,//开发板
我们需要重新配置编译内核,开启开发板NFS文件系统功能,具体步骤如下:
1、 修改kernel/arch/arm/def-configs/smdk2410配置文件把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0"默认从mtdblock2启动,这一行改为CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.0.249:/YF2410/root_dir/root noinitrd init=linuxrc console=ttys0 ip=192.168.0.249"
运行make menuconfig进入配置菜单,装载配置文件SMDK2410
选择Load an Alternate Configuration File输入配置文件的路径和文件名,arch/def-configs/smdk2410
添加内核对NFS的支持:
选中networking options-》IP:kernel level autoconfiguralion项
选中file systems-》network file systems-》下的root file system on nfs和nfs file system support重新编译内核
我们需要重新配置编译内核,开启开发板NFS文件系统功能,具体步骤如下:
1、 修改kernel/arch/arm/def-configs/smdk2410配置文件把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0"默认从mtdblock2启动,这一行改为CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.0.249:/YF2410/root_dir/root noinitrd init=linuxrc console=ttys0 ip=192.168.0.249"
运行make menuconfig进入配置菜单,装载配置文件SMDK2410
选择Load an Alternate Configuration File输入配置文件的路径和文件名,arch/def-configs/smdk2410
添加内核对NFS的支持:
选中networking options-》IP:kernel level autoconfiguralion项
选中file systems-》network file systems-》下的root file system on nfs和nfs file system support重新编译内核
make dep (2.6内核不是必须的)
make zImage
下载bootloader和kernel到开发板上,至此,开发板设置已经完成。
PC机设置:
PC机设置:
1、我们必须开启PC机的NFS服务,具体设置如下:1、 在LINUX命令符下运行setup,在system services里面选中nfs服务,然后保存退出。
2、 设置PC机上的共享目录执行vi /etc/exports,在里面添加一
行:/YF2410/root_dir/root *(rw),然后保存退出,/和rw要有空格
(/YF2410/root_dir/root为共享目录,rw为读写权限)。
3、 执行/etc/rc.d/init.d/nfs restart重启nfs服务。
2、 设置PC机上的共享目录执行vi /etc/exports,在里面添加一
行:/YF2410/root_dir/root *(rw),然后保存退出,/和rw要有空格
(/YF2410/root_dir/root为共享目录,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.0.249,
则可以用mount 192.168.0.249:/YF2410/root_dir/root /mnt,如果mount成功,则在/mnt的目录就可以看到root下面的东西了。
6、 修改root_china/usr/etc/rc.local文件,设置开发板IP地址为192.168.0.160
至此,开发板和PC机的设置都已经基本完成,假如我们在PC机上调试好的应用程序已经放到/root这个嵌入式的文件系统下面,我们则可以用网络连接好开发板和PC机,开发板上电,系统开始运行并且通过运行nfs网络文件系统就可以进入熟悉的linux界面了。以后调试程序只需要把编译好的程序放到root的目录下面就可以了,开发板不再需要烧写。 在开发板运行相应的编译程序就可以,如果程序库没有,可以在pc上使用 ld来查看程序所使用到的库文件,只需要将相应的库copy到网络文件系统相应的文件夹就可以了,这样就实现了交叉编译的目的,在pc上编译,copy到网络文件系统,在开发板上运行。
5、 测试NFS服务:设置完成后可以在本机上进行测试,如果本机IP为192.168.0.249,
则可以用mount 192.168.0.249:/YF2410/root_dir/root /mnt,如果mount成功,则在/mnt的目录就可以看到root下面的东西了。
6、 修改root_china/usr/etc/rc.local文件,设置开发板IP地址为192.168.0.160
至此,开发板和PC机的设置都已经基本完成,假如我们在PC机上调试好的应用程序已经放到/root这个嵌入式的文件系统下面,我们则可以用网络连接好开发板和PC机,开发板上电,系统开始运行并且通过运行nfs网络文件系统就可以进入熟悉的linux界面了。以后调试程序只需要把编译好的程序放到root的目录下面就可以了,开发板不再需要烧写。 在开发板运行相应的编译程序就可以,如果程序库没有,可以在pc上使用 ld来查看程序所使用到的库文件,只需要将相应的库copy到网络文件系统相应的文件夹就可以了,这样就实现了交叉编译的目的,在pc上编译,copy到网络文件系统,在开发板上运行。