肇鑫的日常博客

日常

Xbox One S手柄在macOS下的安装使用流程

起因

之前买的北通震动手柄3是有线的。macOS下可以免驱,打一些模拟器的小游戏。不过它不支持Xbox 360模式,Steam里的游戏没法玩儿。

于是我打算买升级版的阿修罗2无线版。可以无线,可以模拟Xbox 360,价格还便宜。唯一缺点是,据说手感不如Xbox One的手柄。于是我想不如加钱买Xbox的手柄算了,Xbox的手柄一共有3种,360手柄,One手柄,One S手柄,分别是有线/无线/蓝牙,其中后两者也可以有线玩儿。

买之前搜索了一下,发现说法是,Xbox的手柄,macOS下虽然可以无线连,但是打游戏的时候,手柄会被同时识别为鼠标,导致没法玩儿游戏,因为会经常点到别的东西。但是实际上这个说法是错误的,或者说,至少它是不适合Xbox One S手柄的,应该指的是Xbox One的无线手柄。

综合比较

  • 北通阿修罗2无线版:可无线、可模拟Xbox 360手柄,价格便宜,做工据说较差。
  • Xbox One S手柄:可无线、可有线,价格贵(大概是2.5倍的阿修罗2无线版的价格),据说做工较好。

于是我买了后者。

测试

第一轮

收到货之后,发现无法连接。原因有两点:

  1. 手柄背面的电池位置,看起来两个电池是并联,实际上是串联的。你要看弹簧片上的正负极标注,一个是正,一个是负。我刚开始以为是并联的。这点还不如很多年前的设计。那时弹簧片一侧是负极,另一边是正极。这个手柄的弹簧片有正也有负。
  2. 微软的快速安装手册的描述是错误的。它说安装好电池之后,按3秒无线连接键,然后Xbox的灯会闪动,就可以蓝牙配对了。这个说法是错误的。正确的操作是电池装好之后,按Xbox标志的按钮,等灯开始闪烁之后,再按住无线连接按钮几秒,这时灯会更快速的闪动,此时就可以蓝牙配对了。

macOS High Sierra下,蓝牙可以配对之后,一些模拟器的小游戏,比如OpenEmu,就可以直接玩儿了。但是Steam的游戏不识别。安装了Xbox 360 Controllers应用,重启之后,无论是否连接USB线,都无法识别手柄。

第二轮

到Github上的Xbox 360 Controllers的页面查看issues,看看有没有人提到Xbox One S手柄的不兼容问题,发现的确有。但是有的人说没问题。

为了定位问题,我安装了OS X Mavericks 10.10,以及Xcode 6.4到Parallels Desktop 13中。我一共测试了3个版本的macOS,10.10、10.12、10.13。我发现前两个重启之后都能自动识别手柄。但是10.13不可以。可喜的是,这次我注意到,重启之后会提示有软件被禁用,到系统偏好设置->安全与隐私查看,果然提示来自开发者“Drew Mills”的系统软件已被阻止载入。点击允许之后,手柄就正确被识别了。

正确流程

有线连接,适用于玩儿Steam平台的大型游戏以及模拟器游戏

下载这个。我安装时最新的是0.16.5版。

英文说明在这里

macOS Sierra 10.12及以前的版本的系统

正常安装驱动,重启电脑即可。然后再升级到macOS High Sierra,可以保证后者也还能继续识别。

macOS High Sierra 10.13

  1. 安装好电池,按Xbox标志按钮,此时按钮会闪动。(这个闪动是比较慢的,不同于蓝牙配对时的快速闪动)
  2. 使用USB连线与电脑相连。
  3. 安装Xbox 360 Controllers应用。如果期间Xbox按钮的闪动停止了,再次按一次Xbox标志,保证按钮一直处于闪动状态。
  4. 重启系统。
  5. 重新进入系统后,点击系统偏好设置->安全与隐私,点击允许。此时有可能会提示你需要重启,如果提示,就重启。如果不提示,就去看系统偏好设置->Xbox 360 Controllers。手柄的灯一直亮就代表驱动安装成功了。
    驱动被系统阻止

伪装成Xbox 360手柄,这样Steam的游戏才会识别

这时Steam的大型游戏也还是不识别,需要再伪装一下。

  1. 打开系统偏好设置->Xbox 360 Controllers->Advanced,点击右下角的Pretend to be an Xbox 360 Controller

伪装成Xbox 360的手柄

  1. 打开你要玩儿的游戏。
    古墓丽影9正确识别了手柄

蓝牙连接,适用于玩儿模拟器游戏

  1. 按Xbox按钮,按钮会慢慢的闪动。
  2. 长按无线连接按钮,Xbox按钮会快速闪动。
  3. 打开系统偏好设置->蓝牙。当出现手柄时点连接。

上面这几步比较简单。主要的问题在于从有线连接切换到蓝牙连接时有些问题。比如你在有线连接时,直接拔下USB线,这时,并不会直接切换到蓝牙连接。Xbox按钮会慢慢的闪,你这时有两个选择:

  • 按住Xbox按钮,直到灯灭。然后再按Xbox按钮,将手柄打开。此时,会自动连接蓝牙。
  • 或者,你可以打开系统的蓝牙设置,先删除掉手柄,然后重复上面的第2步,重新配对蓝牙。

说说Xbox按钮指示灯

它有4个状态:

  1. 慢闪。代表手柄没有连接到电脑,处于等待的状态。此时如果一段时间还是没连接,会自动进入到省电状态。
  2. 快闪。代表手柄等待蓝牙配对。
  3. 常亮。代表手柄已经正常连接到了设备上,可以正常操作。
  4. 不亮。电池没装好。或者手柄处于关闭或节电状态。

电池正确安装后,长按Xbox键可以开启手柄,慢闪。慢闪状态,长按配对按钮,可以配对,快闪。快闪状态,配对成功后,会常亮。常亮状态,连接USB线会变成有线连接。有线连接拔掉USB线,会变成慢闪。

说说Parallels Desktop虚拟机里的Xbox One S手柄

  • 在Windows 10的虚拟机里,通过蓝牙分享可以识别出来无线连接下的手柄。但这个手柄在游戏中无法使用。
  • 在Windows 10的虚拟机里,USB连接的手柄,通过指派给虚拟机,可以在Windows 10里正确识别手柄,并且可以在游戏中使用。另外,安装Xbox 附件应用,可以更新手柄的固件。值得说的有一点,即便是Xbox 附件应用,也仅支持USB连线下更新固件,而不支持蓝牙更新。这个是微软的限制,和虚拟机无关。

记一次CCC4提示Clone出错的故障排除

macOS 10.12的磁盘工具移除了之前的磁盘查错功能,号称磁盘不会再出错,其实不然。今早CCC4(Carbon Copy Cloner 4)提示备份完成但有错误。

ccc erro

点开查看日志,发现已经连续5天备份错误,达到极值,因此弹出特别提醒。查看最早那天,是一个警告,说是一些文件名字太长,没法备份。之后几天就都是错误了。日志内部记录是,有一个文件夹,出现了无限循环的自引用的情况,类似“a/a/a/a.../a”,具体几层我没数。

ccc alert

我删掉了多出来的文件夹,再次点击CCC的clone,但是过了一会儿再看,它又卡在这个文件夹里的".DS_Store"文件的位置。于是我打开磁盘工具,在源盘和目标盘,分别做了一次急救。再次重新运行clone,这次成功了。

仔细回想这段期间发生的事情,几天之前的一次意外断电嫌疑最大。那天突然断电,又马上来电,结果家里的电脑都灭了。当时这台电脑是处于睡眠状态,而非开机,但应该还是受到了一些影响。

结论:当涉及磁盘的故障发生时,我们还是可以使用磁盘工具进行修复的。虽然磁盘查错表面上看没有了,但是其实是被转移到了急救当中。

另外,我还发现,虽然CCC每天都会有一个通知,但是由于它大部分时间都是成功的,所以那个通知我很少看。而今天之所以能发现错误, 是因为CCC在连续5次错误后,使用了提示风格的通知(平时都是横幅的,过一会就会自动消失那种)。为了今后能第一时间收到错误的通知,我开启了CCC的邮件通知功能。它在备份错误时,会发一封邮件到我的邮箱。这样就不用等5天才知道有错误发生了。

iMac 27 5K 2014 late 故障现象

先说结论

在24小时之内发生了5次问题,其中4次是使用时电脑自动断电并无法立刻开机,需要切断电源并等上一段时间再开机。1次是我主动关机之后,无法再开机,症状与自动断电的相同。

从某次开机到自动断电,最短的时间是30分钟左右。例如下文提到的第三次和第四次是在1小时之内发生的。最长,可能用了整晚都没事。

我个人倾向于这个和系统的负载有关,CPU负载高或系统整体功耗高时,更容易自动断电。我的系统没有安装游戏,因此没测试显卡负载高的部分。

第一次故障

2016年12月21日下午5点10分左右,正在运行的iMac突然断电(屏幕全黑,USB鼠标灯灭)。我开始还以为是停电了,但是看了一下插线板,发现灯都还亮着。

  • 按iMac背部的电源键,没有反应(正常开机会有“当……”的声音)。
  • 拔掉所有外接设备(USB鼠标,USB移动硬盘),再按电源键,依然没有反应。
  • 插拔电源线与插座,换另外一个插口,再试。没反应。
  • 拔开电源线与iMac,再试,没反应。
  • 拔下电源线,将iMac放到床上,打开iMac后盖,拔下内存再重新插上。
  • 只连电源线再开机,正常开机。进入系统之后连接鼠标和移动硬盘。一切正常。

第二次故障

本来这一切就应该结束了。但是我好奇究竟是什么原因导致这个问题。于是晚上我在iPad上搜索类似的故障。

其中,有一种说法引起了我的注意。该说法说,如果是电源的问题,那么你只要不关机,就不会有问题。比如你每次不使用时,都是用睡眠而不是关机,那么就没问题。一旦你选择了关机,那么再开就有一定的几率无法开机。

我一直都是使用睡眠而非关机的,所以这个说法很吸引我。22号上午8点多,我选择了关机。然后按电源键开机,发现的确没法打开了。

8:50的时候,我去苹果网站申请服务。这个时间我记得很清楚,因为苹果的服务是从9:00开始的。

9:00的时候我接到苹果打来的电话。听了我的说法后,苹果说可以安排上门,但是由于当时苹果的内部系统有问题,说是稍后安排好之后再通知我。期间我收到了苹果高级客服的邮件确认。

此时我尝试重新开机,发现竟然可以开机了。然后选择关机,再开机,竟然也都没有问题。于是我给苹果的高级客服写邮件,说明如果还没有申请维修的话,就先停下,我要再测试几天。苹果回复说系统还没有好,还没申请维修。

第三次和第四次故障

收到苹果回复的邮件的时间是上午10点。我使用了一段时间,iMac突然又自动断电了。这一次,我选择将内存插槽更换一下,之前是1、3,我更换为了2、4。更换没有起到作用,11点刚过不久,iMac又自动断电一次。

我只好再次预约了维修。

更进一步的研究

现阶段故障的定位还是太模糊了。自动断电太过随机,我期望可以更快的定位故障。

我仔细回想了一下。这几次故障时的共同点。第一故障时,我在Safari里看在线视频,Parallels Desktop的虚拟机开了两个,一个是macOS 10.12,一个是macOS 10.11,都在升级系统。当时CPU的负载较高。

第三次故障时,我为了进一步的测试,运行了视频转码软件,对系统进行压力测试,也是CPU高负载的项目。

因此,我猜可能是CPU高负载导致耗电升高,然后电源温度过高导致无法开机。

为了测试这个结论,我设计了一个实验。打开转码软件,让它把一个1080p的mkv,转码为mp4。我用手表定时了5分钟。软件显示转码要8分钟。5分钟时间到的时候,我点转码软件的暂停,结果就在我点暂停之后的瞬间,iMac断电黑屏了。

但是这个结论在后来的验证中没能证实。接下来的使用,包括整晚的使用,都没能出现断电的情况。因此,我这里还是没能得到一定能复现问题方式。