使用SD卡根文件系统

    由于硬件条件和实际应用环境所限,就把根文件系统放在了SD卡上。实现了启动内核后,自动挂载根文件系统,并正常运行的目的。

环境:iMX25芯片,SD卡,Linux-2.6.31内核,官方提供的根文件系统rootfs.ext2

主要的操作步骤如下:

1. 对跟文件系统的处理:从官网上获取根文件系统压缩文件之后,解压并挂载到PC的目录下。将其中的内容,全部拷贝到SD卡中。

     这里要注意两点:一个是在SD卡中不需要在创建文件夹或者目录,直接把根文件系统的全部内容拷贝进去,确保都是顶层目录即可;另一个是,这里使用的SD卡的格式应该是ext2的;不是的话,可以使用Linux下的命令,将其格式转变成ext2的形式。

2. 修改uboot向内核中传递的启动参数,指定文件系统的位置和格式等内容。具体的参数如下图所示:

    参数中,指明了文件系统的位置,是在/dev/mmcblk0p1节点,即SD卡挂载生成的节点。

3.内核编译的配置:

     这里的配置主要包括两个部分,一个是针对SD卡的支持,另一个是对文件格式的支持。其他的配置,依据实际情况而定。

       对文件支持的配置,即支持ext2格式:在File system下,选上关于ext2格式的支持。具体配置如下图所示:

     关于SD卡的支持的配置,主要是在Device Driver中,选上关于SD卡支持的选项。具体的配置如下图所示:

     4.遇到的问题:由于根文件系统是官方提供的,在针对自己实际使用的开发板时,会有一些问题的。在挂载上文件系统之后,启动的时候,会卡死在某些启动时候开启的服务支持等。例如,我们自己的开发板上,内核配置和硬件条件的限制,对于图形化界面是不支持的,所以必须把文件系统中,/etc/目录下面的关于图形化的内容删除掉才行,文件分别是gtk2和fslgnome。删除了这两个文件,在按照上面的步骤进行操作,文件系统就可以成功的挂载上了,并且启动成功了。

     对于在SD卡中,存储根文件系统,并挂载使用的方法,对于一些环境和条件有限制的开发工作,应该很有有用的。

你可能感兴趣的:(嵌入式相关)