CN103677888B - Usb网卡识别配置方法 - Google Patents
Usb网卡识别配置方法 Download PDFInfo
- Publication number
- CN103677888B CN103677888B CN201210365208.4A CN201210365208A CN103677888B CN 103677888 B CN103677888 B CN 103677888B CN 201210365208 A CN201210365208 A CN 201210365208A CN 103677888 B CN103677888 B CN 103677888B
- Authority
- CN
- China
- Prior art keywords
- usb
- network card
- usb network
- information
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种USB网卡识别配置方法,所述USB网卡识别配置方法在插上USB网卡时,获取未切换USB网卡的设备信息,得到的信息等参数通过条件判断,是哪种USB网卡,给设备名赋值,在参考文件中添加想要测试的型号和默认目标信息,再通过系统调用拷贝到参考文件,传入参数要测试的设备型号,得到配置文件,再调用系统函数,把配置文件作为参数传入到转换函数中,进行USB网卡的切换。本发明的USB网卡识别配置方法通过使用参考文件来记录USB网卡信息,并生成配置文件,所以不再需要用户添加大量相应的USB网卡配置文件。因此本发明有效地节省了编写的代码量,而且还简化了流程。
Description
技术领域
本发明涉及一种USB(通用串行总线)网卡识别配置方法,特别是涉及一种Linux系统(一种自由和开放源码的强大的多用户、多任务操作系统)的USB网卡识别配置方法。
背景技术
由于USB网卡的种类繁多,以3大电信公司可分为:中国联通WCDMA3G(宽带码分多址第三代通信技术)上网数据卡,中国移动TD 3G(时分同步码分多址第三代通信技术)上网数据卡,中国电信CDMA 3G(码分多址第三代通信技术)上网数据卡。以厂家分类又可分为很多种。而这些分类方式的USB网卡的AT命令(调制解调器命令语)接口和数据接口都不尽相同,所以必须首先进行识别和转换,识别出来的USB网卡的型号后依照型号的不同而使用不同的AT命令和不同的接口。
现有的USB网卡识别配置都是通过添加对应于USB网卡的配置文件来实现USB网卡的识别配置。例如,在插上USB网卡时,调用get_usb_card_info函数,初次获取未切换USB网卡的设备信息,得到的信息(如vendorID和prodID)等参数传递给get_mode_switch函数,通过条件判断,是哪种网卡,再通过系统调用system函数,例如把/etc/usb/usb_modeswitch_ZTE-AC27xx.conf传入usb_modeswitch函数。开始转换USB网卡了;然后再调用get_usb_modem_info函数,再次得到转换以后的USB网卡设备的信息。所以需要编写大量的代码来实现,而且需要配置文件也使得流程越发复杂。
发明内容
本发明要解决的技术问题是为了克服现有技术需要编写大量的代码来实现,而且需要配置文件也使得流程越发复杂的缺陷,提供一种USB网卡识别配置方法,通过使用参考文件来记录USB网卡信息,并生成配置文件,从而节省了编写的代码量并简化了流程。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种USB网卡识别配置方法,用于Linux系统的USB网卡的识别和配置,其特点是,所述USB网卡识别配置方法包括以下步骤:
S1、检测所有接入Linux系统的USB设备的USB设备信息;
S2、在所有USB设备信息中查找是否存在与一预设网卡参数匹配的USB设备信息,若存在,进入步骤S3,否则流程结束;
本发明通过判断所述USB设备信息中参数是否符合用户预先设定的网卡参数,从而获得符合网卡参数特征的所有USB设备信息。
S3、将与所述预设参数匹配的USB设备信息作为USB网卡信息;
S4、通过一第一转换函数从所述USB网卡信息获得USB网卡种类信息;
本发明中所述USB网卡种类信息为用于区别各种USB网卡的参数数据,例如中国移动USB网卡、中国电信USB网卡和中国联通USB网卡中用于相互区分的参数数据。
S5、基于所述USB网卡种类信息生成一设备值,并将所述设备值和所述USB网卡信息写入一参考文件中;
S6、基于所述参考文件的所述设备值和所述USB网卡信息写入一配置文件;
本发明中通过参考文件来存储USB网卡相关的设备值等参数信息,并基于所述参考文件中的信息来生成配置文件,因而本发明中只需要一个配置文件就可以实现USB网卡的转换。
S7、通过系统函数将所述配置文件作为参数传入一第二转换函数;
S8、所述第二转换函数将所述配置文件中包含的所述USB网卡信息所对应的USB设备转换为USB网卡,若转换成功进入步骤S9,否则流程结束;
本发明中通过第二转换函数,将已经识别出为USB网卡的USB设备在Linux系统中转换设置为USB网卡,即此时在Linux系统中所述识别为USB网卡的USB设备不再作为USB设备存在,而是作为USB网卡存在。
S9、将所述USB网卡信息写入用于Linux系统的程序调用的一程序调用文件。
本发明通过程序调用文件可以实现其他程序对USB网卡信息的调用,其中所述程序可以是Linux系统中任意的程序。
本发明通过参考文件存储网卡的参数数据,并基于所述参考文件生成配置文件,从而节省了编写的代码量和识别配置流程,不用再去添加想要识别的USB网卡的型号所对应的配置文件,只要在参考文件添加想要识别的USB网卡的参数数据即可。
较佳地,所述USB设备信息包括vendorID、prodID、manufacturer、product和serialnumber。
其中所述vendorID、prodID、manufacturer、product和serialnumber均为现有技术中Linux系统中USB设备所必然包含的参数,其中所述vendorID代表供应商识别号,所述prodID代表产品识别号,所述manufacturer代表生产商、所述product代表产品信号,所述serialnumber代表USB设备的序列号。所述vendorID、prodID、manufacturer、product和serialnumber参数的具体结构和作用此处就不再详细赘述。
优选地,步骤S2为:
S21、在所有USB设备信息中查找是否存在manufacturer与一预设网卡参数匹配的USB设备信息,若存在,进入步骤S22,否则流程结束;
S22、在manufacturer与一预设网卡参数匹配的USB设备信息中查找vendorID和prodID是否为空,若否,进入步骤S3,否则流程结束;
由于通过manufacturer参数可以识别出大部分的网卡,所以本发明中通过所述manufacturer来查找可以为USB网卡的所有USB设备的USB设备信息。
优选地,在步骤S21中通过字符串匹配的方式查找manufacturer与一预设网卡参数匹配的USB设备信息。
较佳的,所述第一转换函数为get_mode_switch函数,所述第二转换函数为usb_modeswitch函数,所述系统函数为system函数。
本发明中所述get_mode_switch函数和usb_modeswitch函数以及system函数均为现有Linux系统中用于网卡转换以及系统运行等惯用函数,所说此处对所述函数不再详细赘述。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
本发明的USB网卡识别配置方法通过使用参考文件来记录USB网卡信息,并生成配置文件,所以不再需要用户添加大量相应的USB网卡配置文件。
而且本发明无论Linux系统中接入何种USB网卡,都是通过参考文件来生成一配置文件,所以所有信息只要写入参考文件即可,不再需要多个配置文件,也减少了配置文件的数量。
因此本发明有效地节省了编写的代码量,而且还简化了流程。
附图说明
图1为本发明的较佳实施例中生成USB网卡信息的流程图。
图2为本发明的较佳实施例中配置USB网卡的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
本实施例中首先在Linux系统的main函数里调用get_usb_card_info函数获取USB设备没有转换之前的USB设备信息。
然后获取USB设备没有转换之前的默认的设备信息,即从Linux系统的/proc/bus/usb/devices文件系统中获取所有系统默认的USB设备信息,并且找出USB 3G上网卡设备有用参数的信息,并USB 3G上网卡的设备信息保存在系统文件中。
最后在usb_mode_switch函数中添加要读取USB 3G上网卡vendorID和prodID的代码,再次获取USB 3G上网卡设备信息,并记录下此USB 3G上网卡设备的型号。
具体的说,本实施例就是在插上USB网卡时,Linux系统中调用get_usb_card_info()函数,初次获取未切换USB网卡的设备信息,得到的信息(vendorID、prodID、manufacturer、product和serialnumber)等参数传递给get_mode_switch函数,通过条件判断,是那种USB网卡,给设备Device名赋值,在/bin/reference.txt文件中添加想要测试的型号和默认、目标的vendorID和prodID,再通过系统调用system函数,拷贝到/var/reference.txt,传入参数要测试的设备型号,得到/var/modeswitch.conf文件(一种Linux系统设备信息文件),再调用系统system函数,把modeswitch.conf文件作为参数传入到usbmodeswitch函数中,开始USB网卡的切换,最后打印出正确的vendorID和prodID。
如上所示,本实施例中需要首先得到用于区别不同的USB 3G上网卡的信息,这些信息是VendorID和ProdID等其他的信息项(如serialnumber、manufacturer、product等)。本实例首先通过读Linux文件系统/proc/bus/usb/devices中的USB设备文件的信息,这个设备文件中包括所有的USB设备的信息。所以需要从整个信息里找到需要处理的USB 3G上网卡设备的VendorID和ProdID的信息。
因此如图1所示,本实施例中生成USB网卡信息的流程如下所述:
步骤1,检测所有接入Linux系统的USB设备的USB设备信息。其中所述USB设备信息包括vendorID、prodID、manufacturer、product和serialnumber等。
例如通过系统调用函数system(”/bin/cat/proc/bus/usb/devices>/var/usbSysInfo”),再通过读取文件的方法(如cat等命令)读取Linux系统中proc文件系统中的所有的USB设备(文件路径:/proc/bus/usb/devices)的信息,并可以保存在一个临时的文件中。
步骤2,在所有USB设备信息中查找是否存在manufacturer与一预设网卡参数匹配的USB设备信息,若存在,进入步骤3,否则流程结束。
例如,在步骤1中得到的信息中,找寻USB设备信息中的manufacturer(如HUAWEI)等信息,经多次的研究和调试发现,USB设备信息中总有manufacturer、serialnumber、product等信息,并能够用固定的格式打印出来,例如按照“manufacturer=XXX,product=XXX,serialnumber=XXX”的格式,那么便用条件判断和匹配字符串等形式得到manufacturer、serialnumber和product等值,并写入临时的文件中。如果这些值为空。流程结束。
步骤3,在manufacturer与一预设网卡参数匹配的USB设备信息中查找vendorID和prodID是否为空,若否,进入步骤4,否则流程结束。
例如根据步骤2的描述,用条件判断和字符串匹配等方法例如(“P:Vendor=%04xProduct=%04x Rev=”)的代码,来得到vendorID进而prodID等值。然后用条件判断,vendorID和prodID不为空,即判断是否发现USB3G上网卡,如果vendorID等为空,则流程结束。
步骤4,将与所述预设参数匹配的USB设备信息作为USB网卡信息。本实施例中此后将发现的USB 3G上网卡的USB设备信息作为USB网卡信息,从而进行后续的网卡配置。
从初步获取得到的USB 3G上网卡的设备信息作为USB网卡信息后,对这个发现的USB 3G上网卡设备进行转换,如果USB的设备为普通的存储盘设备,则切换为USB 3G上网卡的设备。具体流程如下所述:
步骤11,通过一第一转换函数从所述USB网卡信息获得USB网卡种类信息。
例如,从获取到的USB网卡信息的Vendor ID和ProdID和其他的信息作为参数传给get_mode_switch函数,在get_mode_switch函数里,用条件判断等语句可以判定出USB 3G上网卡的种类信息。例如中国移动USB网卡、中国电信USB网卡或中国联通USB网卡等。
步骤12,基于所述USB网卡种类信息生成一设备值,并将所述设备值和所述USB网卡信息写入一参考文件中。
例如,见要测试和转换的USB 3G上网卡的设备值(Device)赋值,并在reference.txt文件中添加要测试和转换USB 3G上网卡的vendorID和prodID的信息,以及上述的设备值,并且通过代码如(FILE*fp1=fopen("/var/reference.txt","r"))将reference.txt文件拷贝到/var目录中去。
步骤13,基于所述参考文件的所述设备值和所述USB网卡信息写入一配置文件。
例如基于设备值(Device)的值,根据USB设备名,通过字符串比对和查找得到想要的USB 3G上网卡的vendorID和prodID,再重新写回到mode_switch.conf文件(一种Linux系统设备信息文件),即最终得到配置文件mode_switch.conf文件。
步骤14,通过系统函数将所述配置文件作为参数传入一第二转换函数。
步骤15,所述第二转换函数将所述配置文件中包含的所述USB网卡信息所对应的USB设备转换为USB网卡,若转换成功进入步骤16,否则流程结束。
例如调用系统函数system函数,再把得到的/var/modeswitch.conf作为函数参数传入usb_modeswitch函数中,开始转换USB 3G上网卡了。如果转换成功,则进入步骤16,否则流程结束。
步骤16,将所述USB网卡信息写入用于Linux系统的程序调用的一程序调用文件。
例如,最后根据modeswitch.conf文件,通过字符串匹配和查找,打印出vendor ID和prodID,并写入/var/vendorid和/var/productid等文件(一种Linux系统文件)中供上层程序调用。
所以本实施例通过使用参考文件来记录USB网卡信息,并生成配置文件,所以不再需要用户添加大量相应的USB网卡配置文件。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (3)
1.一种USB网卡识别配置方法,用于Linux系统的USB网卡的识别和配置,其特征在于,所述USB网卡识别配置方法包括以下步骤:
S1、检测所有接入Linux系统的USB设备的USB设备信息;
S2、在所有USB设备信息中查找是否存在与一预设网卡参数匹配的USB设备信息,若存在,进入步骤S3,否则流程结束;
S3、将与所述预设参数匹配的USB设备信息作为USB网卡信息;
S4、通过一第一转换函数从所述USB网卡信息获得USB网卡种类信息;
S5、基于所述USB网卡种类信息生成一设备值,并将所述设备值和所述USB网卡信息写入一参考文件中;
S6、基于所述参考文件的所述设备值和所述USB网卡信息写入一配置文件;
S7、通过系统函数将所述配置文件作为参数传入一第二转换函数;
S8、所述第二转换函数将所述配置文件中包含的所述USB网卡信息所对应的USB设备转换为USB网卡,若转换成功进入步骤S9,否则流程结束;
S9、将所述USB网卡信息写入用于Linux系统的程序调用的一程序调用文件;
所述USB设备信息包括vendorID、prodID、manufacturer、product和serialnumber;
步骤S2为:
S21、在所有USB设备信息中查找是否存在manufacturer与一预设网卡参数匹配的USB设备信息,若存在,进入步骤S22,否则流程结束;
S22、在manufacturer与一预设网卡参数匹配的USB设备信息中查找vendorID和prodID是否为空,若否,进入步骤S3,否则流程结束。
2.如权利要求1所述的USB网卡识别配置方法,其特征在于,在步骤S21中通过字符串匹配的方式查找manufacturer与一预设网卡参数匹配的USB设备信息。
3.如权利要求1-2中任一项所述的USB网卡识别配置方法,其特征在于,所述第一转换函数为get_mode_switch函数,所述第二转换函数为usb_modeswitch函数,所述系统函数为system函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210365208.4A CN103677888B (zh) | 2012-09-26 | 2012-09-26 | Usb网卡识别配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210365208.4A CN103677888B (zh) | 2012-09-26 | 2012-09-26 | Usb网卡识别配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103677888A CN103677888A (zh) | 2014-03-26 |
CN103677888B true CN103677888B (zh) | 2018-09-28 |
Family
ID=50315550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210365208.4A Active CN103677888B (zh) | 2012-09-26 | 2012-09-26 | Usb网卡识别配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677888B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138368A (zh) * | 2015-08-25 | 2015-12-09 | 浪潮电子信息产业股份有限公司 | 一种基于linux系统的网卡配置文件烧写方法 |
CN107729202A (zh) * | 2017-11-06 | 2018-02-23 | 深圳开发微电子有限公司 | 可追溯usb生产源头的一种方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222207A (zh) * | 2011-05-23 | 2011-10-19 | 深圳市共进电子有限公司 | 在Linux系统中通过切换3G数据卡工作模式实现联网的方法 |
CN202095106U (zh) * | 2011-01-21 | 2011-12-28 | 西安龙飞软件有限公司 | 一种带有多模数据卡智能接入系统的3g路由器 |
CN102411546A (zh) * | 2011-10-18 | 2012-04-11 | 深圳市共进电子股份有限公司 | 实现至少两种操作模式下的3g数据卡连通通讯的方法 |
-
2012
- 2012-09-26 CN CN201210365208.4A patent/CN103677888B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202095106U (zh) * | 2011-01-21 | 2011-12-28 | 西安龙飞软件有限公司 | 一种带有多模数据卡智能接入系统的3g路由器 |
CN102222207A (zh) * | 2011-05-23 | 2011-10-19 | 深圳市共进电子有限公司 | 在Linux系统中通过切换3G数据卡工作模式实现联网的方法 |
CN102411546A (zh) * | 2011-10-18 | 2012-04-11 | 深圳市共进电子股份有限公司 | 实现至少两种操作模式下的3g数据卡连通通讯的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103677888A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105740707B (zh) | 恶意文件的识别方法和装置 | |
CN108133008A (zh) | 数据库中业务数据的处理方法、装置、设备和存储介质 | |
CN110287696A (zh) | 一种反弹shell进程的检测方法、装置和设备 | |
CN110201393A (zh) | 一种配置数据的存储方法、装置及电子设备 | |
CN110515896A (zh) | 模型资源管理方法、模型文件制作方法、装置和系统 | |
CN109981322A (zh) | 基于标签的云资源管理的方法和装置 | |
CN107870849A (zh) | 测试日志的处理方法和装置 | |
CN114610951A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN110084658A (zh) | 物品匹配的方法和装置 | |
CN106255082A (zh) | 一种垃圾短信的识别方法及系统 | |
CN107797823A (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
CN107766430A (zh) | 一种文件搜索方法及系统 | |
CN105158673B (zh) | 一种ate机台文件的生成方法及装置 | |
CN103677888B (zh) | Usb网卡识别配置方法 | |
CN109284492B (zh) | 一种生成通知文书的方法和装置 | |
CN107526619B (zh) | 版式数据流文件的加载方法 | |
CN107506407B (zh) | 一种文件分类、调用的方法及装置 | |
CN104050207B (zh) | 信息处理装置和文件管理系统 | |
CN109885583A (zh) | 基于区块链的数据查询方法、装置、设备及存储介质 | |
CN111162918A (zh) | 业务开通管理方法和装置 | |
CN108287707A (zh) | Jsx文件生成方法、装置、存储介质和计算机设备 | |
CN106293862B (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN108629182A (zh) | 漏洞检测方法及漏洞检测装置 | |
CN107273401A (zh) | 应用程序数据文件的管理方法、移动设备及存储装置 | |
CN111027093A (zh) | 一种访问权限控制方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201117 Address after: 221700 4-1-110-shop, Nanyuan new town, Fengxian County, Xuzhou City, Jiangsu Province Patentee after: Song Yixiao Address before: Songjiang District shihudong Town Tower Road 201617 min 579 Lane Shanghai No. -26 Patentee before: Phicomm (Shanghai) Co.,Ltd. |