歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux軟件

STB 上Linux軟件系統解決方案

近年來,國內巨大的STB潛在市場,吸引了包括芯片廠商、CA廠商、中間件供應商、機頂盒生產廠商等廠家的熱情,圍繞STB的競爭全面展開。

  機頂盒是一種專用設備,包括軟件模塊和硬件模塊。軟件模塊包括系統引導程序、嵌入式操作系統和應用軟件。硬件模塊根據CPU的不同,分為ASIC專用芯片 組、多媒體DSP、X86三種。低檔機頂盒一般采用專用芯片組或多媒體DSP,只支持較少的幾種媒體編解碼標准,業務擴展能力較弱,價格比較低。高檔機頂 盒大多基於X86硬件,使用WinCE或Linux操作系統,甚至配有硬盤,與PC機非常相似,業務功能豐富,當然,價格也不菲。

  事實上,隨著IPTV的興起,對機頂盒的性能要求也越來越高,采用X86硬件提升機頂盒的性能已是大勢所趨。但是,在提供更豐富業務功能的同時,大幅降低 機頂盒成本,也是機頂盒技術發展的一個必然方向。本文將講述基於兼容X86的STB上Linux軟件系統解決方案,不涉及技術開發細節。主要將從以下方面 進行介紹:

  一、硬件環境介紹

  本機頂盒核心部件包括:STPC CPU,2M FLASH,64M DOM和32M RAM。

  其中FLASH中存放Bootloader代碼,DOM中存放嵌入式Linux操作系統。當然,機頂盒需要一些外圍硬件電路,比如網絡接口、遙控器接口等等。

  二、Bootloader開發

  Bootloader是跟底層硬件關聯性非常強的一層軟件,也稱為BSP。開發人員需要相當熟悉硬件結構,一般來說,可以由硬件人員完成,也可以由軟硬件 人員共同協助完成。Bootloader除了初始化CPU,RAM和基本的串口輸出等功能外,還需要一些擴展功能,比如實現通過網絡接口或者串口燒錄操作 系統等。u-boot是一個開源的面向多個目標平台(ppc, mips, arm, x86)的bootloader,並且功能強大,目前廣泛應用在嵌入式系統開發中,只要根據硬件平台做有限的修改,就可以順利實現。本篇不講述u- boot的具體移植過程,移植細節可參見《u-boot在PowerPC 860上的移植》一文。

  三、嵌入式Linux裁減與移植

  嵌入式Linux我們選用Peewee Linux進行裁減,Peewee Linux的介紹和基本配置可參考《Embedded Linux 嵌入式系統原理與實務》一書。Peewee Linux的裁減僅僅是通過配置界面選擇某些組件,但需要注意的是要保留X窗口,浏覽器需要X窗口支持才能啟動圖形化浏覽器。但是,通過Peewee Linux裁減的Linux系統通常比較大,還需要做更進一步的裁減。一般來說一個不帶X窗口的嵌入式Linux可以小到4M,帶有X窗口的Linux也 可以在30M以下構建出來。總之,裁減後的Linux系統不能過於龐大,否則加上浏覽器程序極有可能超出DOM的64M空間,需要另加存儲空間,增加成 本。

  另一方面,在移植Linux到STB上後,由於STB上很多硬件在Linux下缺少驅動程序支持,不能工作。為此,開發必要的驅動程序是必不可少的一步。 在Linux下開發一個驅動是相當容易的,一是因為Linux驅動程序的架構相對固定,二是有很多的源碼可供參考。難點往往是調試過程,也更花時間,並且 經常需要改動某些代碼,同時,驅動開發過程中也經常需要示波器、邏輯分析儀等設備的幫助。

  四、浏覽器程序選擇 (Embedded Mozilla)

  在Linux環境下有很多開源的浏覽器,但綜合比較來說,Mozilla功能強大,支持的協議也相對比較多,圖形界面豐富。其次,Mozilla專門為嵌 入式系統開發了一個Embedded Mozilla項目,不加裁減的話,編譯結果大概20M多,用戶可以對其進行裁減,一般來說,裁減到14M左右是很輕而易舉的事。並且該項目是提供源碼 的,用戶可以根據需要定制一些功能,比如用戶界面等等。

  具體可以參考主頁:http://www.mozilla.org

  五、JVM移植

  針對目前很多網頁是Java severlet的特點,使得浏覽器能支持Java語言是一大趨勢,Embedded Mozilla很容易實現對Java的支持,這也是為什麼選擇Embedded Mozilla的原因之一。只要以動態庫的形式注冊sun公司提供的JVM到該STB的系統庫路徑下,並在Embedded Mozilla中設置一下浏覽器針對Java severlet的plug in功能,即可實現Embedded Mozilla對Java severlet的支持。

  JVM下載參考:http://www.sun.com

  六、其它應用開發擴展(EPG實現及EasySoap使用)

  該部分功能主要是為解決STB向PVR/DVR的擴展,當然如此擴展後需要添加大容量存儲設備,以存儲數據。EPG是PVR/DVR上不可或缺的軟件之 一,預先提供節目給用戶,用戶通過預定的方式下“訂單”,PVR/DVR根據用戶的預定情況實現節目的自動錄制功能。目前EPG功能比較流行的做法是:在 PC機上用Web Service實現服務端,在PVR/DVR上實現客戶端,由於Web Service利用SOAP協議交互。為此,EasySoap浮出水面,利用該開源項目,可以很方便開發出Linux上的EPG客戶端,實現與Web Service的交互。

  七、媒體播放軟件實現

  該功能也可認為是STB的擴展,是PVR/DVR功能的一部分。媒體播放器我們選用功能強大的mplayer,這是Linux下又一個出色的開源軟件,支 持格式眾多,包括很多流媒體在內,移植mplayer也比較簡單。參見網站:http://www.mplayerhq.hu/

  八、VOD實現

  VOD是STB交互功能的增強,因為我們已經移植了Embedded Mozilla以及mplayer,VOD功能可以利用這兩個軟件順利實現,需要做的工作只是在Embedded Mozilla中如何判斷當前的連接是一個媒體文件,以判斷是否需要打開mplayer進行播放。

  九、軟件遠程更新問題

  雖然目前用戶要在STB設備上實現軟件遠程更新的需求並不突出,但軟件遠程更新問題是降低維護費用一個強有力的手段。STB的遠程軟件更新可以采用主動或 被動的方式,主動的方式就是由用戶手動去下載最新軟件,實現升級;被動方式就是由STB開發商根據STB的信息主動提示用戶更新,類似於window 2000/XP的升級程序。考慮到STB的特殊性,比如升級過程中可能發生意外,掉線等情況,建議采用由用戶手動去下載軟件進行升級的方式。

  具體實現方法是:在STB上開發專門

用於軟件升級的程序,該程序通過HTTP/FTP下載最新應用程序到本地,然後實現STB上軟件的升級。由於系統上空 間通常比較緊張,一旦升級失敗,極有可能造成系統不能啟動的情況,解決辦法往往是增加內存空間,先備份先前的系統,如果升級成功,再刪除,如果失敗,則恢 復先前系統。

  十、小結

  Linux由於其開源特性、出色的網絡功能和眾多的開源項目支持,正越來越成為嵌入式系統開發者關注的目標之一。相信越來越多的嵌入式開發者將加入到Linux這個行列中來。

  本文提出的僅僅是解決方案,實際開發中,從硬件設計到軟件開發是一個相當漫長的過程,軟硬件的協同設計、硬件的調試、軟件的開發、軟件的測試、系統的集成測試等過程都會遇到攔路虎,很多意想不到的問題會時不時地忽然冒出來。

  為此,在STB項目開發中,硬件的設計過程需要具有豐富經驗的硬件工程師,以盡量縮短硬件設計與調試的時間。軟件系統中上層應用的開發過程建議開發者采用 OO的思想,同時在開發中運用設計模式,以防開發過程各種意想不到的變化。另外,值得一提的是,很多項目中,開發人員認為只有硬件開發完成後才能進行軟件 的開發,這是一種誤解。事實上,軟硬件開發的過程可以同步進行,在硬件開發階段可以同時進行上層軟件的開發,這樣可以盡可能加快產品走向市場的步伐

Copyright © Linux教程網 All Rights Reserved