<b>2.2.3 beaglebone black</b>
虽然beaglebone在推出时已经很具有颠覆性了,但随着技术的进步,后来又发布了一个更强大的版本,价格却降到原来的一半(相比于之前的89美元,它只要45美元),被称作beaglebone black版(缩写成bbb)。原始版本发布不到18个月,beaglebone
black于2013年4月23日推出。成本下降主要得益于芯片数的压缩和大批量生产。图2.7和图2.8是beaglebone black。
除了价格更低,新版beaglebone还有一些改进。处理器速度从720mhz提升到了1ghz;ram从256mb翻倍到了512mb。beaglebone black使用ddr3内存,如今ddr3比原版beaglebone所使用的ddr2要便宜。这里给出的beaglebone black的信息摘自《beaglebone black system reference manual》,手册可以从https://github.com/circuitco/beaglebone-black/blob/master/bbb_srm.pdf下载。
图2.7 beaglebone black正面 图2.8 beaglebone black背面
为什么不用……
开源硬件的能力是有高下之分的
在世界各地的会议上做关于deck的演讲时,经常有人问我“为什么不使用某某开源板子?”,这里的“某某板子”通常是树莓派(raspberry pi),碰巧它还不是开源的。简短的回答是树莓派不适合我们的情况,详细的解释请看下文。
树莓派没有beaglebone black功能强。实际上,即使是比树莓派更早的beaglebone也要比它强。beaglebone black使用1ghz的现代cortex-a8处理器,树莓派使用的是只有700mhz的bcm2835芯片。树莓派缺少运行像metasploit这样强力渗透测试工具所需的处理能力。德州仪器自由地发布他们处理器芯片的信息,而broadcom却要求签署nda才能得到应用他们芯片的细节。broadcom的芯片使用支持不够好的陈旧arm6指令集。这限制了树莓派所能使用的操作系统。特别地,树莓派不能使用ubuntu。像下一章介绍的,deck是基于ubuntu的。
树莓派也没有beagle家族成熟。最早版本的beagleboard在2008年就已经交付了。beaglebone到用户手里的时间比树莓派早了足足半年。甚至树莓派项目启动一年后,批量购买都还成问题。相比之下,beaglebone
black发布后一周我就买了好几块板子,根本不用等几个月才能拿到。
尽管构建渗透测试硬件时价格并不是主要问题,但用树莓派构建完整系统则要比使用beaglebone black贵得多。当外壳、usb电缆、电源,以及扩展板都配齐时,两个板子本身报价的差异立即就消失殆尽了。另外,当买多个beaglebone时,多数经销商都会提供折扣。
树莓派提供最多17个gpio线(仅比arduino多一点),而beaglebone板可以提供66个gpio线。树莓派采用的是很脆弱的插针,需要购买一个排线来连接其他硬件,相比之下beaglebone则使用坚固的插针,可以在板上直接扩展cape。beaglebone很易于实现紧凑(并且更可靠)的设计。
尽管树莓派的处理能力低,但它却比beaglebone需要更多的电能。因为运行的软件不一样,很难给出有意义的电能比较。据说,根据经验测试(例如2013年5月19日发布的题为《树莓派(b型)功耗,低压测试》的文章,http://www.youtube.com/watch?v=4a_ocg9uzbo),树莓派消耗的功率是beaglebone的150%~200%。既然我们要构建电池供电的设备,beaglebone
black在同类产品中稳拔头筹。
说到这儿,显然树莓派并不是构建渗透测试的理想选择。本书成稿时,几个把deck移植到其他arm系统的实验正在进行中。这将评估是否要把这些平台纳入官方支持。这些移植的最新进展参见官方网站(http://philpolstra.com)和我的博客(http://polstra.org)。
beaglebone black带有2gb的emmc非易失存储(本书写作时,正在讨论在后续版本扩展到4gb)。随机安装的angstrom
linux系统安装在emmc中(宣布不久后新板出厂的预装系统将是debian linux)。相比于microsd的4位接口,emmc的接口是8位。由于板载emmc的配置是已知的,可以最大限度根据其参数优化性能,而不用像microsd卡那样,只有卡插入后才能确定参数。出于这些原因,使用emmc存储根文件系统时能够获得巨大的性能提升。不幸的是deck系统高达6gb多的根文件系统太大了,无法存储在emmc上。
beaglebone black一个最明显的变化是增加了microhdmi插座输出hdmi视频信号。hdmi支持是由nxp tda19988
hdmi成帧器实现的。beaglebone
black支持高达1920×1080的视频分辨率。beaglebone black默认使用edid报告的最高分辨率。正因这个原因,在beaglebone
black系统启动前连接并且打开显示器是很必要的。与beagleboard-xm不同,该接口支持包括音频在内完整的hdmi规范。只有consumer
electronics association(cea)标准中的分辨率下才支持音频,因为所有高清电视都支持这些分辨率,所以为beaglebone black找到显示器完全不成问题。
然而,不像增加hdmi插座那么明显的变化是,beaglebone
black也比原版更省电了。压缩掉了几个芯片导致所需的电流大大降低(差不多30%)。结果,基于beaglebone
black的电池驱动的破解攻击机能够比基于旧版beaglebone的运行更长的时间。
beagleboard.org团队尽可能让新版beaglebone兼容原版。购买cape时,一定要确保是beaglebone black兼容的,可以到http://elinux.org/beagleboard:beaglebone_capes检查兼容性。增加emmc和hdmi导致几个原来在扩展口上可用的引脚,现在被beaglebone自己占用了。用到这些被emmc和hdmi占用引脚的cape则必须把相关的功能关掉才能工作。在我们的应用中这不是问题,因为deck系统太大不能放到emmc中,并且对于破解攻击机,hdmi输出并不需要。两个beaglebone版本之间还有一些其他的差异,但都跟我们的渗透测试关系不大。关于这些差异的详细情况可以参考《system reference manual》。
如前所述,beaglebone black应该配上外壳或把它装到绝缘的材料里保护起来,以防短路。adafruit(http://www.adafruit.com/category/75)出售小的亚克力外壳和能容纳一个beaglebone加上几个cape的大外壳。大多数像special
computing(https://specialcomp.com/beaglebone/)这样的其他beaglebone商家也都有简单的亚克力外壳出售,价格差不多10美元。图2.9和图2.10展示了special computing的外壳。原版beaglebone的外壳如果用电钻或类似的工具开个microhdmi插座的槽,也能用在新版beaglebone上。如果读者想自己制作外壳,一定小心别用太大的铜柱,因为这有可能会碰坏靠近安装孔的元器件。
图2.9 装上special
computing外壳的 图2.10 装上special
computing外壳的
beaglebone black正面 beaglebone
black背面