PS:以下方法只在本人的PC上操作过,方法可行。做该记录旨在便于自己复习记忆,同时希望对看到此文的朋友有所帮助。
操作系统环境:Ubuntu 12.04
步骤:
- 在宿主机上设置共享目录
运行命令
# vim /etc/exports
在文件exports最后加入以下语句:
/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 *(rw,sync,no_root_squash)
其中 /opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 为共享的路径文件,
* 表示所有的客户机都可以挂接此目录
rw 表示挂接此目录的客户机对该目录有读写的权力
no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份 - 启动NFS服务,需要root权限。(停止NFS服务的命令为# /etc/init.d/nfs-kernel-server stop )
运行命令
# /etc/init.d/nfs-kernel-server start
运行以下命令,测试NFS服务是否启动
# mount -t nfs localhost:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 /mnt
如果挂在成功后,运行 ls /mnt, 可以看到/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4的内容 - 宿主机串口线、网线连接mini2440开发板后,NAND FLASH启动开发板,启动或复位开发板的时候,按下K1-K6中的任意按键,进入boot菜单选项,选q,进入Goto shell of vivi, 输入以下命令
param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.200:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 ip=192.168.1.230:192.168.1.200:192.168.1.200:255.255.255.0:sbc2440.arm9.net:eth0:off"
其中192.168.1.200为宿主机(我用的是虚拟机,ubuntu系统)的IP,192.168.1.230为开发板的IP
在运行命令
boot
不过有一个问题不明白,在宿主机共享的NFS里交叉编译点亮LED的程序,在宿主机上运行,开发板的LED并没有反应,通过控制台运行该程序开发板也没有反应,这个正常吗?如果正常,在宿主机上的交叉编译的程序都不能运行,那通过NFS启动开发板还有什么意义呢?
后来发现通过控制台运行其他程序开发板是有反应的,不清楚运行LED程序开发板为何没有反应。