关于mac原生系列设备【Mac mini、iMac、MB】,系统启动时键盘、鼠标均不能使用的解决方案

来源:互联网 发布:js怎么让按钮不可点击 编辑:程序博客网 时间:2024/06/06 11:38

相信各位使用 mac 系列的朋友们,在使用设备的过程中,总是会难免遇到这样或那样的奇奇怪怪的问题——USB键盘、鼠标完全失效也是其中一种!

当遇到此类问题时,便开始上网查询各类资料,但最终发现无果!

一般来说,大家遇到此类问题的解决思路都是:

1、重启,看看能否恢复正常——失效!

2、强制重启,再看看——发现也是失效!【而且对于 mac 设备,本身并不存在什么类似于 windows 的强制重启功能/按钮】

3、网上的SMC reset方法——失效!

4、网上神人给出的方法——关机,拔掉电源线等所有外设连接线,等候15秒;再只连接电源线,开机长按电源按钮5秒,之后再将 键鼠连接到设备上。——很明显,仍然失效!

5、思路迁移——由windows 已经被人玩透的 U盘制作系统启动盘,然后开机后通过U盘启动盘来重新安装新的系统。

      此方法虽可行,但存在很多弊端!

     1)U盘启动盘必须支持 mac os 日志扩展分区格式,才能被Mac OS X操作系统识别并加载——可通过 抹掉磁盘及分区 达到目的【也就是格式化】

     2)启动盘需要事先下载【主版本(不带子版本号的)的操作系统镜像文件】——例如 Mac OS X 10.9.dmg文件——下载过程相当费时!并且还必须下载官方的 主版本dmg文件,要是不小心下了个Mac OS X 10.9.2.dmg【非 主版本】,发现U盘启动盘安装操作系统时,直接崩溃或者闪退强制关机,那就悲剧了!!!

     3)开机时,按住option键【ps2键盘上的左边alt键】,选择为 U盘加载操作系统方式。——有部分键盘由于已经不能操作了,所以没法选择用U盘启动来执行安装系统的操作。


6、官方给出的方案——重启时,按着command【ps2键盘左边的win键】+R键,进入recovery 模式,然后出现 五国 初始化安装界面。此时,直接按步骤进行重新安装!

      此方法虽能够解决USB键盘、鼠标的失效问题,但也存在以下弊端!

     1)由于是 重新安装 Mac OS X操作系统,相当于抹掉了当前系统中所有的 已安装程序/已下载文件 。这对于部分用户来说,可能不在乎,但对于某些用户,数据即是重中之重!不到万不得已,是不会轻易抹掉数据的。

     2)安装时间也较为费时。


啰嗦了这么多,综上所述,现给出本人亲测有效的最终解决方案!该解决方案,能够保证在数据完全不丢失的前提下,恢复USB键盘、鼠标的正常使用!

解决方案的步骤如下:

1、重启时,按住command【ps2键盘左边的win键】+R键,进入recovery模式;

2、选择语言为你所熟悉的语言,这里中国人选择 简体中文 即可,进入下一个界面;

3、本界面是磁盘实用工具界面,点击上边菜单栏里的【实用工具】,打开【终端】程序。此时,你默认是以 具有读写权限的root用户登录本系统的。

4、确定你的系统中,掌管USB外设正常连接使用的内核扩展程序【IOUSBFamily.kext】【也可称之为USB驱动】存在的位置——通常情况下,Mac OS X会将这一文件存放在

/System/Library/Extensions  目录中。 这可以通过在终端中输入 如下命令: ls -l /System/Library/Extensions/ | grep IOUSB  ,如果一切正常的话,你将会看见三个相关的 IOUSBXXXX.kext文件,你需要在意的是 IOUSBFamily.kext文件,其余两个,可以尽情的忽略!

5、确定当前你的mac 上已经 加载了 Macintoshell HD——通常情况下,所有分区都会挂载在/Volumes目录下。因此只要你的mac设备曾经正确安装过Mac OS X操作系统,这一点便 毋庸置疑了。 当然,为了更好地确认这一点,你可以通过在终端中输入如下命令: mount ,正如你所预料的,你将会在输出的列表中看见  /Volumes/Macintosh HD。若你已经成功走到了这一步,恭喜你!聪明的你离成功已经不远了。

6、在5的基础上,确认你当前的Mac OS X中也存在一个IOUSBFamily.kext驱动程序——这可以通过在终端输入如下命令:ls -l /Volumes/Macintosh \HD/System/Library/Extensions/ | grep IOUSB,如同4中描述的那样,你将会看见三个相关的 IOUSBXXXX.kext文件,你需要在意的是 IOUSBFamily.kext文件,其余两个,可以尽情的忽略!

7、此时,我们要做的就是移除这个 真正导致USB失效的罪魁祸首【IOUSBFamily.kext文件】——为了成功移除,需要在当前挂载的Mac OS X下创建一个临时目录,这可以通过在终端输入如下命令:mkdir /Volumes/Macintosh\ HD/Users/USB ,这样就成功创建了临时目录【USB】。接着,在终端输入命令:

mv /Volumes/Macintosh\ HD/System/Library/Extensions/IOUSBFamily.kext   /Volumes/Macintosh\ HD/Users/USB ,如果一切正常的话,这个文件已经被你成功移除到了临时目录中。如果你仍不放心的话,可以再次 输入 6中的命令,此时会发现,输出列表中,包含IOUSB的只有两个文件,这就说明IOUSBFamily.kext已经成功移除!

8、接下来就是最关键也是最容易出错的一步,我们将mac设备固件中的 USB驱动文件复制一份,并放到Mac OS X操作系统中。这可以通过在终端输入命令:

cp -a /System/Library/Extensions/IOUSBFamily.kext /Volumes/Macintosh\ HD/System/Library/Extensions/IOUSBFamily.kext

正如你所期望的,此时如果终端没有报出任何错误,本文描述的这个问题就已经算是从本质上得到了解决,剩下的只不过是通过界面展示并验证的操作步骤了。当然,在这里,可能有部分朋友会遇到终端报错的情况——例如 read-only filesystem、permission denied等等。 不要着急,此时动用你的智慧,想想linux 如何更改权限,来获取对某一文件系统的 超级权限——这部分留给大家思考。

9、在8的基础上,可以选择关闭终端。并点击 菜单栏上的 apple 图标,选择重新启动【注意,一定要通过点击apple图标的方式进行重启,否则之前所做的8步可能都会前功尽弃!】 多数朋友们,好不容易等到这里了,发现点击 重新启动,mac 一直无反应,便觉得是 出了什么问题,便又想点击mac的电源按钮进行关机、重启。【千万不要这样,否则也会是前功尽弃!】在这里,只能告诉大家的是,终端是一项服务,当你选择 重新启动时,首先需要关闭并卸载终端服务,这是需要耗费不少时间的。所以,在这里,只能劝告大家 耐心等待 mac设备的重启! 

10、在mac重启的过程中,可以先将mac设备上的所有USB连接线全部拔掉,等待系统成功启动后,插入USB接口,此时,你将会发现你的所有USB设备又都能正常使用了。开心的你,赶紧登录并尽情享用你的mac系统吧。


核心理论【该解决方案 脑洞大开的原因】:

日常生活中使用的windows操作系统,我们也会经常碰到各种奇葩的问题,包括 内核崩溃导致的 蓝屏、分区加载失败等。

而不得不说是十分有趣的一件事是:当你第一次使用你的PC主机,试图安装 windows 操作系统时,此时你还并没有成功为你的系统创建磁盘 & 分区,但你会发现你的键盘、鼠标居然还是能够正常使用,以便引导你正确地安装 windows操作系统。

借助这个问题,不得不搞清楚键鼠加载驱动的原理&机制。

简单来说,就是:每一个操作系统内部是有一系列内核层的驱动程序的。这些一般来说都是read-only 的,其主要原因是用来初始化操作系统时,由内核直接加载完成操作系统的安装过程;另一部分原因就是用于【当操作系统成功安装后,也分好了分区、磁盘之后,如果在用户级别使用过程中,损坏了哪个重要的驱动程序时,可以通过这个对应的 read-only程序进行备份】。


在本问题中,就存在一种通用的案例:1、用户在mac系统中,由于各类原因,可能损坏了 /System/Library/Extensions/IOUSBFamily.kext驱动文件;2、用户重启后,发现所有USB外设全部失效,无论怎么重启,发现均无反应;3、USB键盘、鼠标当然也就不能使用了。 而解决问题的本质方案就是,找到一个完好无损的相对应的IOUSBFamily.kext驱动文件,将该文件覆盖至当前损坏的Mac OS X中对应的位置。 这样一来,再次重启时,Mac OS X自动加载覆盖后的驱动程序文件,由于该文件已经恢复正常,USB外设当然也就全部恢复正常使用了!


希望上述的解决方案,能够帮助 进行Mac OS X驱动开发人员带来一些较为深入的思考,当然最重要的,希望能够解决所有用户遇到的 mac 设备的USB键鼠失效问题!

最后,有兴趣的朋友,可以研究一下类似于 网卡驱动、声卡驱动、显卡驱动等等出现内核错误时,对应的解决方案!

谢谢大家!

0 0
原创粉丝点击