Linux for Suits - Linux 之声
2005 年 11 月 25 日,我在 Linux Journal 网站上撰写了“构建开源住宅”(请参阅在线资源)。主要地,我是在为新房安装石膏板之前,寻找关于设备和布线的最后时刻(或最后一周)的建议。当您读到这篇文章时,我们应该已经搬进新房了。这将是我们在七年内的第七个家,希望在很长一段时间内是最后一个家。
这是一个位于圣巴巴拉山坡上的梦想家园,俯瞰着城镇和海洋。它也是一个法拉第笼,墙壁和甲板下有 11 吨钢梁,外部是厚厚的毛石和灰泥,屋顶是实心铜。对于像我这样的老无线电爱好者来说,这里不是一个接收友好的地方——但是,嘿,有些妥协是很容易做出的。
我不愿意妥协的是不必要的专有音频、视频和基于互联网的服务。我不希望任何东西把我们置于某家公司的孤岛之中。
照明也是如此。我的妻子拒绝了各种中央控制的照明“解决方案”,因为它们都依赖于专业的专业人士,这些专业人士与专业设备的制造商有着独家关系,这些设备只能由专家使用旧的 Windows 笔记本电脑操作,这些笔记本电脑的串口插入车库中的中央控制单元。更不用说带有对应心情和其他东西的标签的灯开关了。此外,价格是任何人都能理解的普通灯开关的四倍到 X 倍。
有很多方法可以让你在家庭影院设备或全屋音频方面走上同样昂贵的死胡同。我有一个朋友,他拥有一套全屋音频设备,但没有人知道如何操作,包括他自己以及出售和安装它的公司。去年夏天,我向达拉斯小牛队亿万富翁老板、高清电视节目供应商 HDnet 的创始人马克·库班寻求建议。他告诉我,构建专有的全屋音频系统是一个很大的错误。他第一次就这么做了,并对此感到后悔。“开放,”他说。“这是唯一的出路。”
这就是我为什么在 Linux Journal 网站上写那篇文章的原因。
在文章中,我解释说,在过去的几栋房子里,我的开放式音频分配系统一直是一个简单的 FM 无线电破解方案。在主音源(通常是我们家庭影院设置中心位置的接收器)处,我放置了一个 Ramsey FM-100 发射器,它在其他未使用的 FM 频道上辐射信号。功率只有 0.25 瓦,信号几乎无法超出院子范围,但在室内足够强,其他房间的接收器可以接收并播放来自 FM 调谐器的信号。我们的大多数接收器都是我们在旧货出售时廉价购买的。它们有模拟刻度盘,带有简单的音量和调谐旋钮,并且通过同样出色的扬声器听起来效果极佳。在我们九岁儿子的房间里,有一台很棒的 20 世纪 80 年代中期的 Technics 接收器,它通过一对原装 Advent 扬声器提供约 50 瓦/声道的功率。接收器在一次旧货出售中花费了 5 美元,扬声器在另一次旧货出售中花费了 10 美元。接收器旁边是一台 Technics 转盘,配有 Shure 唱头,播放我的旧 Deutche Grammaphone 贝多芬九部交响曲的黑胶唱片(1963 年系列,由赫伯特·冯·卡拉扬指挥,几乎是那么久以前购买的)比 CD 播放器播放的以数字形式重新灌录的相同录音听起来更好。
尽管如此,FM 并不是高保真音频的最佳媒介。如果有什么比孤岛更好的东西吗?
在我的 LJ 网站文章中,我提到了 Sonos 系统,我曾在 2005 年 11 月的 Linux Journal 上的一篇小专题文章中写到过它。Sonos 出售名为 ZonePlayer 的高品质放大器,每个放大器驱动一对扬声器并无线连接到彼此。这些放大器连接到 PC 或网络附加存储 (NAS) 设备上的音频收藏,以连接线路输入源(例如卫星广播、有线电视或卫星电视、iPod 或任何其他设备)和来自互联网本身的无线电流。去年我在 CES 上也看到了 Sonos,并且喜欢这个系统的功能。我也说过它似乎是一个孤岛。
这篇文章的一位读者是艾伦·格雷厄姆,他是一位作家,他的作品包括一本书 The Best of the Blogs,几年前我曾为这本书写过序言。艾伦写信告诉我,我不仅误判了 Sonos,而且应该利用该公司离我家很近的优势。不知何故,我错过了 Sonos 就在圣巴巴拉的事实。事实上,它离这里只有几个街区。最重要的是,他们完全基于 Linux 构建了整个 Sonos 系统,这可能是一个很好的故事。
所以,我过去看看这个地方,与他们的一些 Linux 黑客交谈,看看公司的情况如何。
我去过很多初创公司。通常它们都位于铁路轨道廉价一侧的破旧工业区。Sonos 不是。相反,它们位于一个西班牙小镇最吸引人的西班牙式建筑之一中,这个小镇自 1700 年代以来一直保持着西班牙风格。这些住所是办公室和隔间的混合体,员工的活力和积极性是我见过的任何一家公司都无法比拟的。尽管他们没有向我透露具体的财务状况,但他们确实表示他们的业绩每月都在增长。
更重要的是,每个人似乎都很投入。“你喜欢哪个互联网电台?”一个人问道。我告诉他教堂山的 WUNC。“酷,”他说。“我们会将它添加到选择中。”当计算 WUNC 流的 IP 地址被证明有点困难时,其他技术人员也加入了进来,他们克服了这个问题。我在参观工厂时,多次听到“我们能为您做些什么?”和“我们如何才能帮助您?”。
参观结束时,我与公司首席工程师兼资深 UNIX/Linux 黑客史蒂夫·霍姆格伦坐下来交谈。
事实证明,Sonos 源于网络:“我们问,‘我们如何将来自互联网和开源世界的基础技术引入家庭?’”,他说。“我们很早就开始研究所有东西,包括微软的嵌入式技术。显然那里存在成本问题。与此同时,我们在 UNIX 和 Linux 方面有很多背景,并且知道它更容易接近。”
史蒂夫继续说道,它也很灵活——
让我们走到这一步的原因之一是对微处理器的评估。借助 Linux,我们可以独立于硬件开发软件。我们可以在硬件准备就绪之前很久就进行开发并启动所有服务。事实上,我们可以在完全没有硬件的情况下架构整个东西。我们在 X Windows 上为我们的控制器组装了一个模拟器,带有一个原型手持滚轮和所有其他东西。我们放入了一个 Flash 解释器,它运行在它的顶部,这样我们就可以做一个漂亮的图形显示。所有这些都在任何硬件之前运行。Linux 允许我们做到这一点。
这也是一种解脱。史蒂夫继续说道,“我参与过很多项目,你听到的都是‘我们正在等待硬件。’存在所有这些串行化的依赖关系。这里的情况并非如此。我们在开发方面具有很大的并行性。我们可以比其他情况下更早地到达下游。”
至于开发本身,他说
它全部是 C 和 C++,运行在我们自己的嵌入式 Linux 实现之上。我们从头开始做这一切。我们从 Red Hat 开始,因为那是我们最熟悉的,但后来我们拉入了我们自己目的所需的任何东西。我们从 2.4 内核开始开发,所以我们一直坚持使用它。我们是一个嵌入式实现,在内存方面受到限制,并且没有大型硬件需求,所以我们对现状感到满意。我们编写了很多自己的东西。例如,我们编写并拉入了一个可加载的音频驱动程序模块。事实上,我们在基于 PC 的 Linux 机器上进行了开发,并通过 NFS 与开发系统交叉挂载,通过网络动态启动系统,调入驱动程序模块并对其进行调试。我们一遍又一遍地这样做。良好的集成,启动嵌入式板等等。
他们最终使用的微处理器是 Hitachi SH。“我们喜欢浮点运算和内置于其中的 PCI 接口”,他说。一个有趣的巧合——大约在 20 世纪 90 年代初,我曾与 Hitachi Semiconductor 合作在美国推广 SH。(一个传言说处理器是以索尼克刺猬命名的。世嘉在那些日子里是 Hitachi 的大客户。)
“我们这里沉浸在 Linux 中”,史蒂夫说。“它是基础设施的一部分。我们现在已经将其调整到如此精细的地步,以至于我无法想象再做任何其他事情。它是完全开放的。如果我们想更换硬件,我们可以很容易地做到这一点。我们在这方面很灵活。如果另一家处理器供应商出现,提供更好的功能和定价,我们有能力进行迁移。”
Linux 和开源也参与了公司面向客户的自有中央服务产品
我们有一个网络服务器,它实现了 SOAP,是开源的,并且在 SourceForge 上公开可用。它被称为 Anacapa。我们以圣巴巴拉的 Anacapa 街命名它,但后来我发现它也是一个 Chumash 语单词,意思是“不断变化”,这完全有道理。我们在我们的支持基础设施中使用它。我们可以进入客户的系统并收集统计数据、进行诊断并提供服务。我们可以使用大量的统计数据——错误日志等等。全部基于 HTML 和 XML。
我说,“所以你们拥有的是一个无线家庭局域网,它充当音频系统,并且可以通过 HTTP 和 XML 将统计数据发布到 Sonos 本身,以进行诊断和类似操作?”
“是的,”他说。“我们使用 SOAP 作为控制架构来运行不同节点之间的命令。它是一个对等级的网状网络。因此它稳定且非常可靠。”
“是否有一个中央单元需要接线?”我问。
“有一个需要通过以太网连接到路由器。这更多是为了性能而不是其他原因。除此之外,它们都可以是无线的。您可以有任何有线和无线的组合。您拥有出色的音频质量,并且不会因 N 个节点而丢失任何东西。它是无限可扩展的。”
但即便如此,我仍然没有被说服。为此,我需要在自己家中设置几个 ZonePlayer 并对其进行测试。
所以我利用了他们的入门套装:两个 ZonePlayer 和一个控制器,价格为 1,199 美元。他们说,有 30 天退款保证,“不问任何问题”。在我访问后的两个工作日,这个套装就送到了我家门口。
我将一个连接到家庭室的扬声器,另一个连接到客厅的扬声器(在这所房子里,它们位于一个长 L 形的对角)。现在,我需要将它们都连接到互联网。为此,每个 ZonePlayer 的背面都有一个四端口 10/100 交换机。每个端口都有一个指示活动的指示灯,这很方便。在我们家(我们几年前重新装修过),每个房间都有几个 RJ45 壁装插孔,通过 CAT-5e 电缆连接到楼上卧室壁橱中的配线架。每个 ZonePlayer 都配有一根以太网电缆,所以我使用其中一根将家庭室播放器连接到壁装插座,然后上楼,打开配线面板,并将连接通过跳线连接到连接到我们 Cox Business Internet 电缆调制解调器的集线器。然后我按照设备随附的说明进行操作,很快意识到我们无法连接到互联网。拨打他们的 800 号码,我立即联系到了大卫,一位在 Sonos 街对面办公室工作的支持人员(而不是像现在公司外包技术支持那样在印度或其他地方)。
经过短暂的极客到极客的对话,我记得 Cox 要求我告知他们本地网络上所有新设备的 MAC 地址。这对于 ZonePlayer 来说很容易,因为每个单元背面的序列号也是其 MAC 地址。但我不想再打电话了,所以我上楼,并通过我们 Cox 高速互联网家庭服务的集线器跳线连接 ZonePlayer,该服务不太挑剔,并且无论如何都具有更快的下游速度(3Mb 对比 1.5Mb 的商业服务,商业服务也更贵,但那是另一个故事了)。我们连上了。
我注册了这项服务,一切都开始顺利进行。我使用控制器将另一个 ZonePlayer 连接到无线网状网络,控制器看起来像一个宽体的白色 iPod。它具有一个滚轮、用于区域、音乐、后退 (|<<)、前进 (>>|)、暂停 (||) 和向上一个级别(一个看起来像侧向 U 的弯曲箭头)的按钮。在大型生动的彩色显示屏底部还有三个软按钮。音量控制是一个 +/- 摇杆开关,您可以使用滚轮选择它正在控制的区域。您可以控制任何或所有 ZonePlayer 的音量,您可以使用滚轮选择它们。每个 ZonePlayer 也有自己的静音和音量控制。
对于音乐,您按下音乐按钮并使用滚轮导航。靶心按钮用于进行选择。掌握它很容易。
每个 ZonePlayer 都附带一张 CD,其中安装了用于 Windows 或 OS X 的控制软件。除了提供用于监视和控制系统的控制台外,它还管理通过系统从桌面提供的音乐库。
当我注意到缺少 Linux 版本的相同软件时,我被转接到公司马萨诸塞州剑桥办事处的肖恩·沙利文。肖恩说他在家只使用 Linux(全部 Gentoo),并且不怀念桌面软件。“我只用手持控制器就很好”,他说。“我的所有音乐都在 NAS 盒子上。”事实上,他建议无论如何都将音乐保存在网络附加存储设备上。“您的基本 NAS 是运行 Samba 的 Linux 盒子”,他说。使用手持控制器(另一个 Linux 设备),您只需输入 NAS 的 Samba 地址,您的音乐就在那里了。顺便说一句,肖恩偏爱 Buffalo Tech 产品。他说“当你在公司里走动时,你看到的大部分都是 Buffalo Tech 产品。”他还说,除了市场需求之外,没有任何东西阻止公司为 Linux 制作桌面控制器软件。“它只是 UPnP”,他说。UPnP 代表通用即插即用。
为了测试它,我在一台旧的 OS X 笔记本电脑上安装了 Sonos 桌面控制器,该笔记本电脑上堆放了大量的 MP3 文件。在很短的时间内,相同的音乐现在出现在手持控制器上,可以播放了。考虑到那台旧机器有多么糟糕,性能非常出色。控制器大致复制了 iPod 的功能。事实上,您可以将 Sonos 系统视为非常灵活的全屋 iPod,而没有 Apple 的专有孤岛。
即使我有一个庞大的 MP3 收藏(主要是从许多架子的 CD 中翻录的,外加各种旧黑胶唱片),但我通常更喜欢收听互联网广播。资深的 Linux Journal 读者知道,自 20 世纪 90 年代末以来,我一直在喋喋不休地谈论互联网广播。这么多年来,我一直想要一个易于调谐且可以通过良好的家用音响系统播放的互联网收音机。
好吧,现在我拥有了它。我爱上它了。
Sonos 为客户提供了大量的电台,按流派排序。一旦找到您想要的流的 URL,就可以通过桌面软件添加更多电台。我做到了,并立即添加了六个我最喜欢的电台。您也可以联系 Sonos 并要求他们将电台添加到默认列表中。“我们喜欢人们这样做”,一位客户支持人员说。
每个 ZonePlayer 还有一个线路输入接口,通过两个 RCA 插孔,因此您可以通过它播放 CD 播放器、FM 调谐器、MP3 播放器以及您想要的任何其他设备。我插入了一个新的 Sirius 卫星无线电调谐器,它工作完美。
ZonePlayer 还具有一对线路输出插孔以及一个低音炮插孔。我急切地将这些连接到我的 Ramsey FM 发射器,以驱动我的传统音频分配系统——并遇到了我对 Sonos 系统的第一个也是唯一的失望。事实证明,线路输出是音量控制的。因此,如果该 ZonePlayer 被调低音量或静音,线路输出也会被调低音量或静音。这意味着我无法用它驱动 FM 发射器——或任何其他我可以想象的东西。经过一系列电话和电子邮件交流后,我了解到,固定线路输出应该在您阅读本文时成为一个可选功能。
同时,我仍然在公司论坛上请求它。我还请求 Linux 版本的桌面软件,以及通过控制器添加电台的功能。鉴于 Sonos 员工的开放性和响应性,我对所有这些请求——以及我在浏览论坛帖子时看到的许多其他请求——都感到乐观。
关于 Sonos 系统最引人注目的事情是无线网络,它非常强大,超出了我的任何预期。几个月前,我们在这里的房子里尝试了 Apple 的 AirTunes 系统,该系统将笔记本电脑上 iTunes 的音频通过 Apple Airport Extreme Wi-Fi 基站发送到 Apple Airport Express Wi-Fi 基站,然后通过立体声耳机插孔输出到我们的家庭室音响系统。它失败了。信号不断掉线,而且很容易受到在房间里走动的人的影响。所涉及的所有设备之间的距离都不超过 20 英尺。使用 Sonos 系统,两个 ZonePlayer 位于房子的对角。一个位于 Linksys Wi-Fi 基站旁边,该基站在另一个 ZonePlayer 位置甚至无法被笔记本电脑接收到。然而,第二个 ZonePlayer 播放的音乐听起来很美妙,完全没有掉线。互联网广播有时在 iTunes 中保持连接方面存在问题,但现在非常稳定。昨晚,我们正在收听来自法国、荷兰、挪威和北卡罗来纳州的爵士乐和古典音乐电台。没有任何掉线。没有任何降级。当我们从一个电台调到另一个电台时,每个电台几乎都立即出现。
更重要的是,Sonos 系统与我们家里的所有四个 Wi-Fi 基站以及任何数量的来来往往的笔记本电脑以及我们的 2.4GHz Panasonic 家用 PBX 相处融洽,后者总共有六个基站,都在非常靠近 Wi-Fi 频段的地方工作。Sonos 技术支持人员告诉我,Panasonic 2.4GHz 设备有时会引起问题,但我们的情况中没有出现任何问题。
我最初认为 Sonos 有点像一个孤岛,因为它以一种非标准、不可见的方式使用了 Wi-Fi 频段。但一位技术人员告诉我,这样做的目的既不是锁定也不是保密:“我们只是不想干扰您正在进行的任何其他事情。”
而他们确实没有干扰。
Sonos 设备并不便宜。ZonePlayer 的售价为 499 美元,控制器的售价为 399 美元。有两件事有助于使购买合理化。一是两者的许多功能都可以通过软件升级,因此它们在一定程度上具有面向未来的特性,这在家庭电子产品中变得不常见,家庭电子产品中的大部分产品都是在两三年内被淘汰的。另一个是它们非常坚固且制作精良。每个 ZonePlayer 都比鞋盒小,并且具有蓄电池的重量。当我参观 Sonos 的工厂时,我对我在办公桌和工作台上看到拆卸的 ZonePlayer 的质量和构造印象深刻。
音频性能也非常出色。50 瓦/声道的输出规格似乎功率不足,但这些 ZonePlayer 似乎并不比它们在两个位置取代的 60 瓦 Pioneer 和 100 瓦 Technics 接收器弱。而且在我看来,在这两种情况下声音都更好。
该系统将播放 MP3、AAC/MPEG-4 和 WAV 音频文件。它不会播放 DRM 保护的文件,例如 Apple 在其音乐商店销售的 AAC 类型,或者 Windows Media 孤岛提供的类似受限产品。(如果能将 OGG 添加到列表中就太好了。我也会提出这个请求。)
当然,在同一市场类别中还有其他选择。在我最初寻求帮助的请求的回复中,有几条指向 Slim Devices 的 SqueezeBox,这是一款基于 Linux 的播放器和控制器,可与您 PC(包括 Linux PC)上的音乐源配合使用。我的老朋友 PenguinRadio 的 Andrew Leyden 也指出了他公司的 Solutions WebRadio。还有其他一些。如果您正在市场上,我建议您全面考察。
同时,我将保留我的 Sonos 套装。
本文资源: /article/8753。
Doc Searls 是 Linux Journal 的高级编辑。