一种嵌入式LINUX下USB存储设备自动挂载的方法.pdf

上传人:大师****2 文档编号:971255 上传时间:2018-03-22 格式:PDF 页数:7 大小:341.73KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910106414.1

申请日:

2009.03.24

公开号:

CN101847101A

公开日:

2010.09.29

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/445申请公布日:20100929|||实质审查的生效IPC(主分类):G06F 9/445申请日:20090324|||公开

IPC分类号:

G06F9/445; G06F13/10

主分类号:

G06F9/445

申请人:

TCL集团股份有限公司

发明人:

王洋

地址:

516001 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心

优先权:

专利代理机构:

深圳市君胜知识产权代理事务所 44268

代理人:

王永文

PDF下载: PDF下载
内容摘要

本发明公开了一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;采用相应的文件系统格式对USB存储设备进行挂载。本发明所提供的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建的USB存储设备挂载点,对USB存储设备进行挂载的方式,实现了USB存储设备在嵌入式linux下自动挂载,达到USB存储设备即插即用的功能。

权利要求书

1.  一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:
A、启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;
B、根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;
C、采用相应的文件系统格式对USB存储设备进行挂载。

2.
  根据权利要求1所述的方法,其特征在于,所述应用程序采用线程方式运行。

3.
  根据权利要求1所述的方法,其特征在于,所述分区表文件包括至少一个USB存储设备分区信息。

4.
  根据权利要求3所述的方法,其特征在于,所述USB存储设备分区信息包括:主设备号、次设备号、设备块大小、设备名称。

5.
  根据权利要求4所述的方法,其特征在于,所述步骤A包括以下步骤:
A1、获取分区表文件中某一USB存储设备分区信息,并对该USB存储设备的主设备号、次设备号、设备块大小、以及设备名称进行分析。

6.
  根据权利要求5所述的方法,其特征在于,所述步骤B还包括步骤:
B1、判断确定所述USB存储设备未被挂载过。

7.
  根据权利要求1所述的方法,其特征在于,所述步骤C还包括步骤:
C1、采用某一文件系统格式对所述USB存储设备进行挂载,并判断挂载是否成功;
C2、判断确定挂载失败,则卸载该设备,并采用下一文件系统格式对所述USB存储设备进行挂载,否则执行步骤C3;
C3、判断确定挂载成功,则返回步骤A1,检测是否有其他USB存储设备需要挂载。

8.
  根据权利要求7所述的方法,其特征在于,所述文件系统格式包括:FAT文件格式、FAT32文件格式、NIFS文件格式、EXT文件格式、EXT2文件格式、EXT3文件格式。

说明书

一种嵌入式linux下USB存储设备自动挂载的方法
技术领域
本发明涉及一种USB存储设备挂载的方法,尤其涉及一种嵌入式linux下USB存储设备自动挂载的方法。
背景技术
在现有技术中,Linux操作系统下的USB存储设备是不能够自动挂载的,在插上USB存储设备后,还需要用户手动输入挂载命令,才能将该USB存储设备挂载到指定目录。但以嵌入式linux为操作系统的电子产品面向的是普通消费者,他们可能没有相关的专业知识,不能自己手动完成USB存储设备的挂载,同时,电子产品也可能没有提供键盘来供用户输入命令。
因此,现有技术有待于改进与发展。
发明内容
本发明的目的在于提供一种嵌入式linux下USB存储设备自动挂载的方法,实现在嵌入式linux操作系统下,USB存储设备可以自动挂载,达到USB存储即插即用的功能。
本发明的技术方案如下:
一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:
A、启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;
B、根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;
C、采用相应的文件系统格式对USB存储设备进行挂载。
所述的方法,其中,所述应用程序采用线程方式运行。
所述的方法,其中,所述分区表文件包括至少一个USB存储设备分区信息。
所述的方法,其中,所述USB存储设备分区信息包括:主设备号、次设备号、设备块大小、设备名称。
所述的方法,其中,所述步骤A包括以下步骤:
A1、获取分区表文件中某一USB存储设备分区信息,并对该USB存储设备的主设备号、次设备号、设备块大小、以及设备名称进行分析。
所述的方法,其中,所述步骤B还包括步骤:
B1、判断确定所述USB存储设备未被挂载过。
所述的方法,其中,所述步骤C还包括步骤:
C1、采用某一文件系统格式对所述USB存储设备进行挂载,并判断挂载是否成功;
C2、判断确定挂载失败,则卸载该设备,并采用下一文件系统格式对所述USB存储设备进行挂载,否则执行步骤C3;
C3、判断确定挂载成功,则返回步骤A1,检测是否有其他USB存储设备需要挂载。
所述的方法,其中,所述文件系统格式包括:FAT文件格式、FAT32文件格式、NIFS文件格式、EXT文件格式、EXT2文件格式、EXT3文件格式。
本发明所提供的一种嵌入式linux下USB存储设备自动挂载的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建的USB存储设备挂载点,对USB存储设备进行挂载的方式,实现了USB存储设备在嵌入式linux下自动挂载,达到USB存储设备即插即用的功能。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图对本发明的各较佳实施例进行更为详细的描述。
本发明的嵌入式linux操作系统下USB存储设备自动挂载的方法,在启动应用程序后,预先读取linux操作系统下的分区表文件/proc/partitions,该分区表文件包括所有USB存储设备的分区信息,其格式如下:

 major  minor  #blocks  name 3  64  156290904  hdb 3  65  1  hdb1 3  69  156280288  hdb5 31  0  32768  mtdblock0 31  1  128  mtdblock1

在上述USB存储设备分区信息表中,major字段标志该USB存储设备的主设备号、minor标志该USB存储设备的次设备号、#blocks标志该USB存储设备的块大小、name标志该USB存储设备的名称。
其中,#blocks和name为重要字段,通过#blocks字段,可以知道该分区的大小,从而进一步确定该分区是否能够成功挂载。在USB存储设备分区信息表中,包括了所有USB存储设备的所有分区信息,如扩展分区,而扩展分区所需的小分区由于#blocks过小不能够成功挂载,如上述USB存储设备分区信息表中的hdb1分区(创建扩展分区所需要的小分区),其#blocks大小仅为1,因此,在筛选可挂载分区的时就应将其忽略。
name字段也是一个较为重要的字段,在进行分区挂载时,需要提供该分区的USB存储设备路径,在name字段前加上“/dev/”就成为该分区的USB存储设备路径。如hdb5USB存储设备,其USB存储设备路径为“/dev/hdb5”。
分区挂载时还需要指定该分区所要挂载点,即要挂载的目标目录,linux下的/tmp目录在内存中是一个虚拟目录,因此,可以将该分区挂载在/tmp目录下。一般来说某一USB存储设备可能具有多个分区,因此,在/tmp目录下需要建立多个子目录,目录的命名可以采用”USB”加上该分区在分区表中的行号,例如hdb5分区,其在分区信息表中位于第5行,则其目标目录命名为”USB05”。
获取到上述信息后,则可以进行USB存储设备分区的挂载。USB存储设备分区挂载的文件系统格式主要包括:FAT文件格式、FAT32文件格式、NTFS文件格式、EXT文件格式、EXT2文件格式、以及EXT3文件格式等等,其USB存储设备挂载的原理为利用C语言库函数中的挂载mount函数,该函数的原型如下:
int mount(const char*source,const char*target,const char*filesystemtype,unsigned long mountflags,const void*data);
其中,该挂载mount函数中,各参数的含义如下:
const char:为常量字符;
source:将要挂上的文件系统,通常是一个设备名;
target:文件系统所要挂在的目标目录;
filesystemtype:文件系统格式,可以是″ext2″,″msdos″,″proc″,″nfs″,″iso9660″等等;
mountflags:指定文件系统的读写访问标志;
data:文件系统特有的参数;
当挂载成功时,函数返回值为“0”,挂载失败函数返回值“-1”。
例如,对于hdb5设备,当其文件系统格式为FAT文件格式,其挂载函数为:
mount(″/dev/hdb5″,″/tmp/USB05″,″vfat″,0xc0ed0000,″utf8″);本发明的USB存储设备自动挂载前不能获取到该分区的文件系统格式,需要用不同的文件系统格式分别尝试挂载,通过判断挂载mount函数的返回值确定挂载是否成功。如先用FAT文件格式挂载mount(″/dev/hdb5″,″/tmp/USB05″,″vfat″,0xc0ed0000,″utf8″),如果返回值为“-1”,则挂载失败,将其卸载umount(″/tmp/USB05″)后尝试用NTFS文件格式挂载mount(″/dev/hdb5″,″/tmp/USB05″,″ntfs″,0xc0ed0000,″utf8″),如果返回值为“-1”,则挂载失败,将其卸载umount(″/tmp/USB05″)后尝试用EXT3文件格式挂载mount(″/dev/hdb5″,″/tmp/USB05″,″ntfs″,0xc0ed0000,NULL),如果返回值为“0”,则挂载成功,此时为成功挂载一个分区。再返回从分区信息表中获取下一行信息,并尝试进行挂载,直至分区信息表末尾。
本发明的嵌入式linux下USB存储设备自动挂载的方法,如图1所示,其具体流程如下:
S1、启动应用程序,打开linux分区信息表文件/proc/partitions;
S2、获取/proc/partitions文件中一行USB存储设备分区信息;
S3、解析该行USB存储设备分区信息,并获取所述USB存储设备的主设备号、次设备号、设备名称;
S4、根据所述USB存储设备的主设备号与设备名称,确定并记录所述USB存储设备路径/dev/*;
S5、判断所述USB存储设备是否被挂载过;
S6、当所述USB存储设备未被挂载过,则创建所述USB存储设备挂载点/tmp/usb*;
S7、采用vfat文件格式对所述USB存储设备进行挂载,并判断挂载是否成功;
S8、若挂载失败,则对所述USB存储设备进行卸载,否则执行步骤S13,并采用ntfs文件格式对所述USB存储设备进行挂载;
S9判断ntfs文件格式对USB存储设备挂载是否成功,若挂载失败,则对所述USB存储设备进行卸载,否则执行步骤S13;
S10、采用ext3文件格式对所述USB存储设备进行挂载,并判断挂载是否成功;
S11、若挂载失败,则对所述USB存储设备进行卸载,否则执行步骤S13;
S12、挂载成功,返回执行步骤S2检测其他USB存储设备是否需要进行挂载。
本发明所提供的嵌入式linux下USB存储设备自动挂载的方法,所采用的应用程序以线程方式运行,其开发与维护成本低,同时多个线程可以共享内存,极大地提高了程序的运行效率。
本发明所提供的嵌入式linux下USB存储设备自动挂载的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建的USB存储设备挂载点,对USB存储设备进行挂载的方式,实现了应用程序自动判断USB存储设备是否已经连接,并能挂载到指定目录下,即实现了USB存储设备在嵌入式linux下自动挂载,达到USB存储设备即插即用的功能。
应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为准。

一种嵌入式LINUX下USB存储设备自动挂载的方法.pdf_第1页
第1页 / 共7页
一种嵌入式LINUX下USB存储设备自动挂载的方法.pdf_第2页
第2页 / 共7页
一种嵌入式LINUX下USB存储设备自动挂载的方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《一种嵌入式LINUX下USB存储设备自动挂载的方法.pdf》由会员分享,可在线阅读,更多相关《一种嵌入式LINUX下USB存储设备自动挂载的方法.pdf(7页珍藏版)》请在专利查询网上搜索。

本发明公开了一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;采用相应的文件系统格式对USB存储设备进行挂载。本发明所提供的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1