嵌入式Linux开发环境的搭建之:嵌入式开发环境的搭建
构建的文件系统一样,可以在backup_cramfs的cramfs子目录中任意进行修改。例如可以添加用户自己的程序:
[root@localhost fs2410]# cp ~/hello backup_cramfs/cramfs/
在用户的修改工作结束之后,用下面的命令可以创建cramfs映像文件:
[root@localhost fs2410]# mkcramfs backup_cramfs/cramfs/ new.cramfs
接下来,就可以将新创建的new.cramfs映像文件烧入到开发板的相应位置了。
2.NFS文件系统
NFS为Network File System的简称,最早是由Sun公司提出发展起来的,其目的就是让不同的机器、不同的操作系统之间通过网络可以彼此共享文件。NFS可以让不同的主机通过网络将远端的NFS服务器共享出来的文件安装到自己的系统中,从客户端看来,使用NFS的远端文件就像是使用本地文件一样。在嵌入式中使用NFS会使应用程序的开发变得十分方便,并且不用反复地烧写映像文件。
NFS的使用分为服务端和客户端,其中服务端是提供要共享的文件,而客户端则通过挂载("mount")这一动作来实现对共享文件的访问操作。下面主要介绍NFS服务端的使用。在嵌入式开发中,通常NFS服务端在宿主机上运行,而客户端在目标板上运行。
NFS服务端是通过读入它的配置文件"/etc/exports"来决定所共享的文件目录的。下面首先讲解这个配置文件的书写规范。
在这个配置文件中,每一行都代表一项要共享的文件目录以及所指定的客户端对它的操作权限。客户端可以根据相应的权限,对该目录下的所有目录文件进行访问。配置文件中每一行的格式如下:
[共享的目录] [客户端主机名称或IP] [参数1,参数2…]
在这里,主机名或IP是可供共享的客户端主机名或IP,若对所有的IP都可以访问,则可用"*"表示。这里的参数有很多种组合方式,常见的参数如表5.1所示。
表5.1 常见参数
选 项 | 参 数 含 义 |
rw | 可读写的权限 |
ro | 只读的权限 |
no_root_squash | NFS客户端分享目录使用者的权限,即如果客户端使用的是root用户,那么对于这个共享的目录而言,该客户端就具有root的权限 |
sync | 资料同步写入到内存与硬盘当中 |
async | 资料会先暂存于内存当中,而非直接写入硬盘 |
如在本例中,配置文件"/etc/exports"的代码如下:
[root@localhost fs]# cat /etc/exports
/root/workplace 192.168.1.*(rw,no_root_squash)
在设定完配置文件之后,需要启动nfs服务和portmap服务,这里的portmap服务是允许NFS客户端查看NFS服务在用的端口,在它被激活之后,就会出现一个端口号为111的sun RPC(远端过程调用)的服务。这是NFS服务中必须实现的一项,因此,也必须把它开启。如下所示:
[root@localhost fs]# service portmap start
启动 portmap:[确定]
[root@localhost fs]# service nfs start
启动 NFS 服务:[确定]
关掉 NFS 配额:[确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
可以看到,在启动NFS服务的时候启动了mountd进程。这是NFS挂载服务,用于处理NFS递交过来的客户端请求。另外还会激活至少两个以上的系统守护进程,然后就开始监听客户端的请求,用"cat /var/log/messages"命令可以查看操作是否成功。这样,就启动了NFS的服务,另外还有两个命令,可以便于使用NFS。
其中一个是exportfs,它可以重新扫描"/etc/exports",使用户在修改了"/etc/exports"配置文件之后不需要每次重启NFS服务。其格式为:
exportfs [选项]
exportfs的常见选项如表5.2所示。
表5.2 常见选项
选 项 | 参 数 含 义 |
-a | 全部挂载(或卸载)/etc/exports中的设定文件目录 |
-r | 重新挂载/etc/exports中的设定文件目录 |
-u | 卸载某一目录 |
-v | 在export的时候,将共享的目录显示到屏幕上 |
另外一个是showmount命令,它用于当前的挂载情况。其格式为:
showmount [选项] hostname
showmount的常见选项如表5.3所示。
表5.3 常见选项
选 项 | 参 数 含 义 |
-a | 在屏幕上显示目前主机与客户端所连上来的使用目录状态 |
-e | 显示hostname中/e |
嵌入式Linux 交叉编译 超级终端 minicom 相关文章:
- 嵌入式Linux技术在工业控制网络中的应用(10-30)
- 基于嵌入式Linux的组态软件实时数据库的设计(02-01)
- 基于ARM+DSP的嵌入式Linux数控系统设计(11-18)
- 基于嵌入式Linux的细胞特征提取算法设计(11-19)
- 基于S3C2410的嵌入式Linux系统构建(03-02)
- 嵌入式Linux网络编程之:网络基础编程(08-13)