发明内容:
本发明所要解决的技术问题是提供一种MacOS驱动智能匹配加载的实现方法,能够实现设备驱动在MacOS上的自动匹配加载功能。
本发明采用以下技术方案:
本发明的一个实施例提供一种驱动智能匹配加载的方法,根据设备信息文件的状态区分进行设备驱动匹配加载。
进一步地,所述的驱动智能匹配加载的方法,还包括所述根据设备信息文件的状态区分进行设备驱动匹配加载,具体是指:
没有设备信息文件,则进行设备驱动的初次安装操作,安装成功后,进行设备信息文件初始化;
设备信息文件中内容与接入设备信息不一致,则执行用户更新安装,更新设备信息文件;
设备信息文件中内容与接入设备信息一致,加载设备功能驱动。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述驱动智能匹配加载的方法适用于苹果机的操作系统Mac OS之下。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述没有设备信息文件情况的判定方法为:插入终端设备,在Mac OS中下载设备光盘内容;执行安装包中Shell脚本,检测系统中是否存在设备信息文件。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述设备信息文件初始化是指:从安装包中提取设备信息写入设备信息文件,所述设备信息包括:Product ID、VendorID、iSerial Number、驱动版本信息等。
进一步地,所述的驱动智能匹配加载的方法,还包括,设备信息文件情况判定方法为:采用基于BSD(伯克利软件套件)内核操作的文件读写方案,实现对设备信息文件的读操作;设备驱动提取设备信息;匹配所述设备信息文件中的信息与所述提取到的设备信息判定是否一致。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述设备信息文件中内容与接入设备信息不一致的情况包括:接入设备安装包驱动版本号高于设备信息文件中已有驱动版本号。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述接入设备驱动版本号高于设备信息文件中已有驱动版本号时,对设备信息文件的更新方法为:按照设备信息文件规定的格式,重组接入设备信息与设备信息文件中原有设备信息,写入设备信息文件。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述设备信息文件中内容与接入设备信息不一致的情况包括:接入设备安装包驱动版本号不高于设备信息文件中已有驱动版本号。
进一步地,所述的驱动智能匹配加载的方法,还包括,所述接入设备驱动版本号不高于设备信息文件中已有驱动版本号时,对设备信息文件的更新方法为:删除设备信息文件中的原有设备信息,将接入设备的设备信息写入设备信息文件。
进一步地,所述的驱动智能匹配加载的方法,还包括,其特征在于,所述版本号的判断,由安装包中Shell脚本读取系统中已有设备信息文件中驱动版本号,对比接入设备本次安装包驱动版本号得到。
采用本发明所述的方法,充分利用了MacOS内核BSD文件读写技术进行文件读写,解决了MacOS中IOKIT没有提供文件读写接口的缺陷,填补了现有技术的空白。同时使用Shell脚本方案,实现了安装过程中的信息判断和更新,简化了操作流程,提高了稳定性。
具体实施方法:
本方案的核心在于发明了在MacOS中,设备驱动利用BSD文件操作,根据设备信息文件判断区分历史设备和陌生设备,分别进行相应操作的方法。该方法在通用性,扩展性及稳定性方面有诸多优势。
下面结合附图对技术方案的实施作进一步的详细描述:
按照设备驱动安装与否可以将对应软件环境操作分为初次安装和更新安装,两种情况主要区别在于系统是否已安装设备驱动。下面结合附图分别对两种情况加以详细描述。
图1为在计算机中进行初次安装,特别说明,只要在MacOS中不存在设备信息文件的情况下均视为初次安装。
步骤S101:插入设备,设备在MacOS中加载设备光盘内容。
步骤S102:执行安装包中Shell脚本,检测系统中是否存在设备信息文件,如不存在,视为初次安装,执行后续步骤;反之,视为更新安装,执行图2所示的更新安装分支。
步骤S103:在MacOS执行安装操作,如操作成功,执行S104;如操作失败,直接退出安装程序。
步骤S104:完成安装,执行安装包中Shell脚本,提取设备信息文件中需要的设备信息,例如设备Product ID,Vendor ID,iSerialNumber,驱动版本信息等,将该信息写人设备信息文件,完成设备信息文件初始化工作。
完成S104步骤后,视为初次安装成功。
图2为在计算机中进行更新安装,特别说明,此时在MacOS中已经存在设备信息文件,且设备驱动识别设备为陌生设备,需要更新驱动。
由图1中所示,在设备驱动识别设备为陌生设备前提下,安装包中Shell脚本判断,进行更新安装。具体为Shell脚本检测MacOS中存在设备信息文件,判断系统中有驱动安装痕迹,需执行更新安装。
步骤S201:安装包中Shell脚本读取系统中已有设备信息文件中驱动版本号,对比本次安装包驱动版本号信息。由于新驱动较老驱动包含更多的功能和设备支持,为了达到逻辑上的正确性,当本次安装包驱动版本号高于系统中已有驱动版本号时,执行S202,;反之,执行S203。
步骤S202:保存设备信息文件到特定文件地址为临时文件,同时删除设备信息文件。
其中特定文件地址由Shell和设备驱动协商确定,达到二者共享的目的。
步骤S203:直接删除设备信息文件。
步骤S204:更新设备驱动,如成功执行S205,反之,退出安装程序。
步骤S205:安装包中Shell脚本,判断系统中特定文件地址是否存在临时设备信息文件,如存在,执行S206;反之,执行S207。
步骤S206:提取临时设备文件中的特定设备信息,例如设备Product ID,VendorID,iSerial Number等,同时读取本次更新驱动的版本信息,将二者信息按照设备信息文件规定格式进行重组,写入新的设备信息文件。
步骤S207:安装包中Shell脚本文件,读取本次安装特定设备信息,将该信息写入新的设备信息文件。
该操作所指的新的设备信息文件与S206中的设备信息文件为同一文件。步骤S206操作成功,视为更新安装成功,进行后续驱动加载;反之,视为失败,退出安装程序。
图3为设备驱动根据设备信息文件判断工作的细节。
当MacOS中已经存在设备驱动的前提下,插入设备,设备驱动按照IOKIT流程,首先进Probe阶段。
步骤S301:操作系统将对匹配上的设备驱动进行Probe操作。
设备驱动在Probe操作中完成设备匹配等智能操作。
步骤S302:由于MacOS中没有提供驱动读写用户空间文件系统的接口,在此采用基于BSD内核操作的文件读写方案,实现对设备信息文件的读操作,进而获得设备信息,例如设备Product ID,Vendor ID,iSerial Number等。
操作成功,执行S303;反之执行S305。
步骤S303:设备驱动首先提取该设备信息,例如设备Product ID,Vendor ID,iSerial Number等。在S302读取的设备信息文件内容中搜寻匹配与本次设备完全相同的信息。
如匹配成功,代表该设备已经有使用历史,视为历史设备,无需在此安装驱动,直接执行S304;反之,该设备为陌生设备,执行S305。
步骤S304:进行设备切换。
设备驱动需要将设备模式由供用户安装的光盘模式切换成为特定功能模式,特定功能模式指设备完成其特定功能的状态,之后执行S306。
步骤S305:加载USBMassStorage驱动,映射光盘内容供用户更新安装。
执行该步骤的前提是,设备驱动通过逻辑判断,认为该设备为陌生设备,需要重新安装驱动。
步骤S306:加载设备功能驱动
本发明应用BSD中内核文件读写操作克服了MacOS IOKIT的不足,同时结合自定义设备信息文件,完成对终端设备的匹配加载功能。方案中大量使用Shell脚本操作,简化了处理流程,提高了通用性。同时在该方案中充分考虑到对已有驱动的兼容性及未来驱动的扩展性,确保在实现功能的同时,提高效率和健壮性。
以上所述仅为本发明的最佳实施例,并不用以限制本发明,应当指出,对于本领域的通信技术人员来说,凡事本发明的精神和原则之内所作的任何修改等同替换或改进等,均应包含在本发明的保护范围。