嵌入式系统开发之根文件系统
要使目标板能够加载上NFS根文件系统,需要做两方面的工作。一是在主机端配置NFS服务器和准备好文件系统所需的文件和目录结构。二是配置目标板的内核选项。关于主机端的配置在前面的内容中已经介绍过了,这里主要介绍内核的配置内容。使用NFS的根文件系统必须首先具备以下条件。
1.有正确的以太网接口驱动
内核的以太网驱动和Bootloader中的以太网驱动是不一样的,有时可能在Bootloader中能正常使用的以太网,在内核中就不能使用了。在内核中配置以太网驱动一般在菜单项“Network device support”下。
2.配置内核启动命令行参数
通过命令行参数可以告诉内核从哪里获得根文件系统。配置内核启动命令行参数默认值的菜单项为“Default kernel command line string”。格式如下:
root=/dev/nfs rw nfsroot=<nfs_server>:<root_path> ip=<target_ip>
参数的说明如下:
<target_ip>:是为目标板指定的IP地址;
<nfs_server>:是指定NFS服务器的IP;
<root_path>:是指定要挂载的NFS服务器的目录;
root=/dev/nfs:则指定要挂接NFS根文件系统;
rw:表示按照可读/写属性挂载。
例如:
root=/dev/nfsrwnfsroot=192.168.1.1:/home/share/rootfs ip=192.168.1.2:192.168.1.1: 192.168.1.1:255.255.255.0:swordzj:eth0:off console=ttySAC0 115200 ehtaddr=08:00:3e:26: 0a:5b mem=32M init=/linuxrc
表示挂载服务器192.168.1.1的/home/share/rootfs为根文件系统,目标板的IP地址为192.168.1.2。此外还包含以下关于目标板的启动信息。
网关地址:192.168.1.1;
子网掩码:255.255.255.0;
主机名:swordzj;
以太网接口:eth0;
以太网MAC:08:00:3e:26:0a:5b;
串口设备:ttySAC0 (串口1,这是在Linux2.6内核下的设置);
串口数率:115200;
内存大小:32MB;
Init程序路径:/linuxrc。
3.配置内核支持NFS根文件系统
在内核配置中,选中:“File Systems”、“Kernel automounter support”、“Network File Systems”、“NFS file system support”,配置编译为内核,下载到目标板上启动,如果准备工作没有遗漏,此时NFS根文件系统就可以挂载到内核上了。至此,交叉开发环境就建立起来了。
上述文字节选自杨水清 张 剑 施云飞 等编著《ARM嵌入式Linux系统开发技术详解》一书
【书名】ARM嵌入式Linux系统开发技术详解
【作者】杨水清 张 剑 施云飞 等编著
【ISBN】978-7-121-07469-1
【出版社】电子工业出版社
【出版日期】2008年11月
【宣传语】
继《Windows驱动开发技术详解》之后又一本心血力作!
原创经典,嵌入式系统一线工程师倾力打造。
深入Linux系统底层和内核,透析ARM嵌入式Linux系统开发的本质。
通过嵌入式系统开发实例,归纳ARM嵌入式Linux系统开发的整个过程。
【内容简介】
本书由浅入深、通俗易懂地讲解了嵌入式Linux的系统设计与开发。全书共25章,从嵌入式处理器ARM开始,讲解了ARM处理器的资源、ARM的指令集、ADS开发工具、嵌入式系统硬件环境的构建、BootLoader、Linux内核移植、嵌入式文件系统、嵌入式Linux多任务程序开发、嵌入式Linux设备驱动开发、嵌入式Linux网络程序开发、MiniGUI图形界面开发、设备驱动开发案例、综合案例等内容。书中通过大量的例程来讲解知识要点,并提供了大量极有参考价值的开发案例,读者可以通过这些例程和开发案例对嵌入式Linux开发有一个系统的学习和提高。
本书共有四个方面的内容。在嵌入式系统的硬件结构中讲述了嵌入式处理器ARM的特点、嵌入式系统硬件环境的构建和ADS开发工具的使用。在嵌入式Linux系统移植中讲述了目标板软件环境的构建,主要包括BootLoader、Linux内核、文件系统以及交叉开发环境的构建。在嵌入式Linux软件开发中讲述了嵌入式LinuxC语言开发工具的使用、标准库的使用、多任务开发基础和设备驱动开发基础。在嵌入式应用系统实例分析中讲述了嵌入式Linux的网络程序开发、MiniGUI图形界面开发、CAN总线设备驱动设计、DM9000网络驱动设计、SD卡驱动设计和嵌入式B超系统设计。
本书语言通俗易懂,内容丰富,注重理解与实例,知识涵盖面广。非常适合从事嵌入式Linux系统开发的初级工程师、高校学生、Linux程序开发人员阅读和学习。