<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背面