Jeffrey Cross
Jeffrey Cross

Soapbox:微软,使Windows 8更加友好

本周的 肥皂盒 有点不同。在Maker Faire,我有机会见到了很多人,我通过邮件列表或他们的工作只知道这些人;其中一位是来自PJRC的Paul Stoffregen。他是Teensy的设计者和开发者,Teensy是我最喜欢的基于USB的微控制器开发系统之一。在与Paul聊天时,他提到微软可以为制造商社区做些大事,特别是现在,因为微软正在开发Windows 8.这是一个内部棒球运动员,但是任何尝试在Windows 7上安装驱动程序的人都会知道它如果您正在使用USB或微控制器做一些事情,那就不容易了。它涉及CDC。什么是CDC? CDC代表“通信设备类” - 它是坐在计算机上的USB主机驱动程序提供的默认内置USB接口之一。 CDC标准化的事实意味着您可以将任何CDC设备插入Mac / Windows / Linux计算机,他们将知道该怎么做。使用Mac / Linux,他们根本不需要驱动程序。对于Windows,您不需要正式的驱动程序,但是您需要一个“INF”文件 - 这是一个小文本描述,为Windows提供了有关要插入的CDC设备的名称和ID#的提示.CDC spec实际上定义了许多类型的通信设备。此对话特定于CDC的“抽象控制模型”。

这一点非常重要的原因是几乎所有带USB的业余爱好微控制器都使用CDC标准来回发送串行数据,它允许微控制器向后兼容 - 就像Arduino Uno看起来几乎和计算机一样Duemilanove。与新莱昂纳多相同。

以下是保罗的概述,以及我自己的笔记。如果您想添加更多内容,请在评论中发帖。如果你在微软(那里有很多制造商!),请帮助我们找到能够实现这一目标的人。

此对话的目标是在安装了CDC的Windows上提供高质量的用户体验。为此,Microsoft内部有权添加与USB类/子类/协议或Microsoft定义的OS描述符匹配的INF的人需要了解这种朝向CDC设备的新发展趋势。

最近,“制造商社区”经历了巨大的增长。在创新和共享文化的推动下,它已成为一个生态系统,产生了众多独立硬件供应商(IHV)。

安装这些新硬件产品时,Windows目前的初始用户体验很差。绝大多数都基于USB通信类抽象控制模型。 Windows提供“收件箱”驱动程序,但每个IHV必须提供INF文件以将驱动程序与特定供应商和产品ID相关联。加载INF文件是一个额外的步骤,可用性差。相比之下,Mac OS X和Linux提供无缝安装,因为这些系统会根据标准USB类/子类/协议ID号自动加载其驱动程序。

在Windows 8 Customer Preview中,由于新的INF签名要求,典型的用户体验更加糟糕。

有两种可能的解决方案:

  1. Windows可以提供INF来自动加载其收件箱驱动程序。 “Compatible ID”是“USBClass_02&SubClass_02&Prot_01”。这是OS X和Linux使用的方法。
  2. Microsoft可以为希望与收件箱驱动程序无缝关联的设备定义“操作系统描述符”。操作系统描述符在此处记录。

该页面的规范在附录1中说明,“Microsoft保留所有其他兼容和不兼容的ID值以供将来使用。如果您需要不在当前列表中的ID,请在未经Microsoft事先批准的情况下创建一个ID。“

我很想看到Windows用户在使用这些设备时获得了目前在Mac OS X和Linux上享受的无缝安装体验。我很乐意为这两种方法提供帮助。我可以回答问题,提供INF文件,提供实际的硬件设备和/或协助测试。如果我能提供任何帮助,请通过电子邮件与[电子邮件保护]联系我。 - 保罗斯托弗雷根

不幸的是,在Windows中有十年不支持无人驾驶CDC。我确信这背后有原因,但Mac和Linux处理CDC本身与HID类似的方式非常好。我问了一些正在修改Windows 8 Release Preview的人,看看有什么变化。以下是驱动程序如何处理的一个示例:“Nvidia没有显示驱动程序,但我能够重新启动'禁用驱动程序签名'模式并安装未签名的驱动程序。当我重新启动时,他们卡住了:Windows 8实际上似乎是 更多 对Windows驱动程序签名的宽容是非常奇怪的。“所以它好一点,但对于使用微控制器的制造商而言,Mac和Linux是一种更好的体验。如果制造商的运动很小,我会说这不符合微软的最佳利益,但我个人可以说制造商使用你的产品可以改变整个公司。看看Kinect - 黑客和制造商彻底改变了微软销售和使用他们最重要的产品之一的方式。我已经读过新版本的Windows可能不允许其他操作系统在与Window 8相同的硬件上运行,除非它是Microsoft操作系统。如果发生这种情况,我们会看到越来越多的Linux和Mac出口。此CDC驱动程序问题也是考虑移动的另一个原因。我希望这能引起微软制造商的关注,他们希望拥抱工程和业余爱好者社区。

在这里,我们可以使用每个人的帮助。在评论中发布以表明您对Windows 8中的此更改感兴趣,如果您在Microsoft,请帮助我们与可能实现此目标的人和小组交谈。 Windows 7提供了糟糕的用户体验,尤其是与Mac和Linux自动安装相比时。当INF未签名时,Windows 8更糟糕,需要特殊的重新启动以允许INF安装,即使它只与收件箱驱动程序关联。现在还不算晚 - Windows 8没有发货。谢谢!

分享

发表评论