注:下文作者Gustavo Henrique Ruffo,由「有道词典」翻译、「冷酷的冬瓜」整理。
问题目前是出现在V1版本的MCU上,但是V2版本的MCU可能存在同样的问题。
当Elon Musk说特斯拉是轮子上的电脑时,他没有提它们是运行在Linux上的。系统同样完成很多的记录工作。来自057 Technology的Jason Hughes表示:
“记录的信息对于量产的车辆几乎毫无用处。除非开发人员以某些特定理由启用它,否则它对用户没有任何好处。这些日志也很少被特斯拉下载。”
我们为什么要这么说?因为你可能会因为一片廉价的eMMC存储器而花费超过$1800来修理你的特斯拉。
最新消息:特斯拉CEO Elon Musk认为现在这个问题应该没有那么严重,但是Hughes表示没有看到任何改善。看看下面的推文:
是最近做了些工作但是未发布吗?我检查过最新的版本,也就几周前,这个问题仍然存在。将持续跟踪最新版本的进展。谢谢。 —JasonHughes(@wk057)October12,2019
该问题由三个不同地方的工作室报道。057 Technology来自希科里,北卡罗来纳;Robert Cotran和他的合作伙伴Jean-Claude Thibault则在魁北克的康迪亚克的Cotran咨询公司研究这个问题,他们为这篇文章提供了MCU的图片。Pete Gruber的工作则是提供了一系列不符合规范行驶的视频。他来自亚利桑那凤凰城。
上述三位帮助我们解释了这一问题。不仅如此,他们还打算提醒特斯拉车主:时间紧迫。不管你是哪一款特斯拉车型,日志信息的频繁记录迟早都需要更换车辆的MCU。
Hughes告诉InsideEVs:
“主要的问题是,这种过多的日志文件写入会导致eMMC flash的磨损。Flash通常支持数万次写周期。当一直不停地擦写时闪存就会坏掉。当一个block失效时,固件的某些部分也会变得不可读,从而导致MCU运行不良或完全失效。”
如果去问Cotran,问题是什么,将会得到相同的回复。
“MCU V1的文件系统是在基于NAND的eMMC闪存芯片上处理的。虽然这些是固态的,非常适合于汽车使用,但有一个非常严重的缺点。闪存芯片上的每个存储空间位只能被写入有限的次数——而一旦受损则再也不能可靠地存储0或者1了。”
Gruber则说的更加直接:
“特斯拉选择了一个无法处理需要频繁读写功能的闪存芯片。这些芯片已经有了更强大的新版本。”
如果你仍然不明白发生了什么,每辆特斯拉都有一个MCU,或媒体控制单元。V1,或者称为MCU V1,直到2018年的特斯拉Model S和X都配备的V1。当这颗芯片失效那么车辆中控屏的触摸功能则会连带失效。正如特斯拉官网和特斯拉官方论坛上的帖子所显示的那样,这可能会让驾驶变得危险。
它的许多组件中有一个是基于nVdia Tegra ARM的CPU。特斯拉将这块8GB的闪存芯片焊接到了该CPU同块电路板上。
2010初,特斯拉车辆刚开始上市时,日志信息的记录还不是一个问题。Hughes说道:
“然而,自从最初释放的版本以来,特斯拉的固件大小已经从大约300MB增加到了1GB的最大容量。”
换句话说,固件现在正在与eMMC闪存芯片上的日志抢空间。
当日志的写入磨损了芯片的一个扇区时,它调用一种称为“磨损均衡”的机制。Cotran解释了这一过程:
“eMMC闪存芯片架构试图使用“磨损均衡”技术来缓解这个问题。它将写操作分散到整个芯片上,以确保特定的位不会被频繁地写入,本质上避免了写限制。”
看看Hughes是怎么说的:
“Flash控制器利用闪存中未使用的部分透明而无缝地将磨损扩展到整个芯片,以扩展可用的有效写入的次数。如今,特斯拉几乎100%的使用闪存,没有多余的空间来弥补过度的日志记录。”
简单地说,eMMC闪存会出现故障。Cotran告诉InsideEVs:
“如果芯片上的数据更改太频繁,磨损均衡机制能够起到的作用就有限了,数据在某一时刻就会开始损坏。这种情况下,你可能会丢失数据,也可能核心功能开始失效,这取决于损坏发生的位置。”
当这种情况发生时,特斯拉只能选择替换整个MCU。如果你的车还在保修期,那是免费的;如果过保的话那你就得自己掏腰包了。Hughes告诉InsideEVs:
“在特斯拉服务中心,过保的车辆要维修这样一个问题需要花费1800美元,这可不便宜。考虑到失效的特点,通常需要数年才能发生...即使是MCU V1迭代升级的2017年Q2到2018年Q1,这期间出厂的车辆,由于使用了100%的flash,他们在开始使用时的“磨损均衡”能力就会降低。”
那还是在美国更换的价格。我们已经有向特斯拉求证这个问题是否存在,但是直到这篇文章发表,特斯拉也未回复。看看Cotran是怎么说的:
“在加拿大,零件和人力成本高达4000加元。而且如果服务中心很忙或者没有备件可以更换则需要等待。”
相当于3000多美元。
Hughes则只需要一部分费用则可以修复出现问题的MCU。更准确的说,13.3%的费用即可。
“我目前只收取399美元的维修服务费用,需要MCU或者车辆在我的店里,057 Technology,进行维修。”
Cotran则表示他的价格受诸多因素影响。但是无论如何,他的“维修方式对于消费者来说要便宜的多。”另外一个重要因素则是特斯拉目前的境地。
“服务中心可以更换很多的零部件,但是不幸的是,当需要更换一颗芯片的时候那些机器就派不上用场了。”
他试图阻止特斯拉将MCUs变为电子垃圾。结果完全无用。
“我们找到特斯拉想要提供我们的服务,但是他们不感兴趣并且声称他们不外包工作。”
而Gruber则收费165美金一小时。
“这是用于部件级诊断、故障排查以及维修的费用。我们有先进的闪存芯片去除设备、球焊接设备以及常规的逆向工程、组件维修的能力。”
他们上述三家均有能力去更换这颗闪存芯片。Cotran告诉InsideEVs:
“我们从车上将MCU完全取下来。然后我们就可以从eMMC中提取唯一的身份验证密钥,即使其中一部分已经损坏。这些密钥是特斯拉车辆与服务器网络认证、访问固件更新以及特斯拉APP所必需的。”
他和Thibault把原来的Hynix eMMC芯片替换成了Swissbit,你可以在上图和下图中单独看到它。
Hughes向我们展示了维修是多么的复杂。
“由于这颗闪存芯片是一个硬连接单元,没有简单的方法来更换它们。需要专门的工具和设备。对我来说,我会预先维修好几个部件以备用户急用。这就意味着我必须尝试从他们的部件中恢复车辆相关的信息并备份到替换件以匹配固件版本。整个过程很乏味、却是一个可行的方法。通常来说,即使手头有现成的替换件,仍然需要几个小时的工作。”
Gruber的做法则略有不同。
“我们正致力于安装闪存芯片座,这样一来就可以只更换坏掉的闪存而不是整个MCU了。”
Grube用一颗更稳定、更大容量的芯片取代它。事实上,他们都是这么做的。Cotran说:
“一旦完成,我们将从处理板上去除有缺陷的eMMC芯片。然后利用专用脚本在全新的eMMC芯片上来创建正确操作CU计算机所需的文件系统。我们使用工业级的芯片,并将容量从8GB增加到16GB以提供更大的空间来执行“磨损均衡”机制。”
Gruber承认,他仍然需要解决一个问题:软件。
“即使我们能够用先进的技术更换芯片,我们仍然无法成功地重新编程。我们针对MCU的维修仅限于电源问题、非闪存芯片组件故障以及线路故障等硬件故障。”
也许Cotran和休斯可以在这方面帮助他。对他们来说,要解决eMMC闪存的故障有很多的工作要做。Gruber告诉InsideEVs:
“我们已经帮助几十个客户解决了这个问题。”
Cotran说,自从他开始着手处理这个故障以来,已经碰到过十几位用户有同样的问题。
“Thibault已经加入了“特斯拉售后维修”行列。”
仅仅在9月份,Hughes已经修复了超过12辆出现MCU故障的特斯拉。
在过去的一个月里,我已经修复/更换了十几台出现eMMC闪存故障的MCU V1车辆。@elonmusk,你真的需要告诉工程师去修复日志记录的bug。这个bug实际上会干掉这些部件中的一大部分。—JasonHughes(@wk057)October9,2019
更换发生故障的硬件能解决问题吗?这只是暂时的。Cotran告诉InsideEVs:
“这只能保证eMMC芯片比原来的芯片寿命长一些。我们的电脑上也会有相应的日志记录脚本,但是是写入RAM的而非eMMC芯片。”
Hughes也决定使用RAM。
“特斯拉可以像我在我的车上面做的那样,将日志移到RAM中来欺骗系统,但是由于RAM是有限的,所以这样做会略微影响性能。”
Cotran提到了其他的优缺点:
“他的方法有一大优点,也有一大缺点。优点是日志不再被写入到eMMC而是RAM中。避免了频繁写入带来损坏的问题。缺点则是现在日志存储在易失性存储器中,这就意味着一旦机器断电或者重启,日志将丢失。我们认为这样做是值得的因为没有人想看到eMMC闪存故障再发生。”
但是问题的根本原因——频繁的日志记录——仍然没有解决。唯一能够解决的是制造商。Hughes告诉InsideEVs:
“特斯拉只需要在所有车辆上禁用syslog。除非是工程样车或者是在特定车辆进行信息娱乐问题的诊断时,才启用。没有任何理由每天将数百兆的数据记录到一个内置的小闪存芯片上。”
Cotran表示附议。
“在我看来,这并不一定是生产缺陷。不同的特斯拉软件团队在编写日志功能时可能没有考虑到其他团队也在记录日志。然而,他们肯定是在一些组建的设计过程中有所疏忽。我确实认为特斯拉应该找到一种方法来缓解这一问题,正如我们所做的那样,避免芯片不必要的更换。”
我们已经询问了该公司将采取什么措施来防止这个问题的发生,但是到目前为止没有得到任何回应。也没必要去确认他们是否已知晓。Hughes说:
“特斯拉知道这个问题已经很多年了,却没有采取任何措施来缓解它。我曾多次在不同场合报告此事,我知道其他人也有过类似经历。从2015年底开始,我多次向特斯拉提及这一点。”
特斯拉需要采取行动。这不仅因为老款的MCU V1,还因为它的新车型搭载的MCU有更高的风险。Hughes告诉InsideEVs:
“特斯拉不但没有缓解这个问题,反而在日志中写入更多的数据。包括最大尺寸的固件镜像、一般的缓存、地图块、AP信息、音乐等等等——这样将导致MCU V1失效概率增加。”
尽管拥有32GB的eMMC闪存芯片,MCU V2却要处理更大的软件代码。Cotran说道:
““磨损均衡”的空间要大的多。但是要记住,即便如此,MCU V2拥有一些高级功能——比如3D游戏、YouTube、Netflix等——这些都会占用更多空间。”
Hughes秉持同样的观点。
“MCU V2和Model 3同样有日志信息过度记录的问题。幸运的是,他们有更大的闪存容量,这应该能够缓解目前的问题。不过如果特斯拉想长久使用就必须去除或限制这些日志记录。”
Cotran认为,MCU V2发生故障不是“如果”的问题、而是“时间”的问题。
“我还没在MCU V2上做很多的工作因为主要精力还放在MCU V1。那是当前要去完成的维修工作。我们这里有一个MCU V2而且我们有文件系统的访问权限,很快就可以去看看。”
可悲的是,特斯拉从2015年起就意识到了这个问题。但是显然,到目前为止它没有做任何事情来纠正,因此很多车辆目前正在修理。为什么?Hughes有一套理论。
“悲观点来讲,看起来(MCU V1)像是要报废的东西...然而,现实可能要简单的多:就是因为懒惰!”
个中原因也只有特斯拉能说清楚咯。
如果你有其中的一辆车,这些信息将有助于你避免一些问题。如果你的车生产日期是2018年前并且还在质保期内,尝试查看下MCU是否正常。你还有可能免费更换。
对于所有的特斯拉用户,都可以去要求公司去解决这个问题。也许一次更新就可以避免潜在的问题发生。Burying your head on the sand and calling this article FUD (Fear, Uncertainty, Doubt) will only help until “the bell tolls for thee.” According to Hughes, Cotran, and Gruber, it will toll for every current or past Tesla MCU. It is just a matter of time.(太晚了这一段就不翻了...)