2009年8月18日 星期二

Emdebian - 快速建構你的嵌入式系統

Standard
毫無疑問,目前『Debian』已經成為當今最龐大的 Linux 體系之一,包括目前最為人所知的 Ubuntu,其表皮之下都是 Debian 的骨。Debian 支援超過十一種以上的硬體架構,包括了 i386/IA-32、m68k、sparc、Alpha、PowerPC、ARM、MIPS、hppa、IA-64、s390、AMD64,還有更多計劃支援但仍在移植中的平台,如:ppc64、SuperH、armeb、m32r、AVR32等。要用 Debian 打造任何一種硬體平台上的作業系統,可說是輕而易舉,甚至不必撰寫一行 Code 或學習使用 cross-compiler,只要會用 debootstrap 和 apt-get。

但是,除了傳統 x86 和幾個特定平台外,大多數的硬體架構都是用於嵌入式應用,其硬體資源相對較低,若將 x86 完整的系統移植過去,似乎沒有多大價值,軟體甚至可能因硬體限制(CPU、Memory、Storage)而無法使用。


因此,『Emdebian (Embedded Debian)』計畫誕生,該計畫首要目標是建構最小化的 Debian System,更進一步因應需求而打造出最輕量的嵌入式系統,並保留 Debian 的套件管理結構和特性。目前, Emdebian 分兩種版本:
  1. Emdebian Grip - A smaller Debian-compatible distro

    一個小型的 Debian distro,但完全與官方 Debian 保持相容性,這意味著仍然可以在這系統上直接安裝官方 Debian 的東西(包括 Stable、Unstable、Testing 等版本)。其改進了 apt 的工具程式,使基礎系統更輕量化,更進一步將許多套件重新打包,減少平時很少用到的系統文件和相依性。

    目前 Grip 所支援的硬體平台有 arm, armel, i386, amd64, powerpc, mips, mipsel。

  2. Emdebian Crush - An ultimately small, cross-built, Debian.

    這是針對高要求嵌入式系統所特別開發的版本,為了能真正使用在嵌入式系統,引入了 Busybox 等輕量化的工具程式,捨棄許多原本 Debian 系統內的累贅。目前 Crush 只有支援 ARM 架構,且參考了各版本的 Debian (Stable、Unstable、Testing),開發者可以選擇使用任一版本建構 Crush 的系統。

雖然 Emdebian 可能無法做出最完美的嵌入式系統,但可以減少許多移植的成本,只要可以在 Debian 官方套件庫找到的 Package,移植到嵌入式系統上都不用花吹灰之力,更不用再嘗試碰觸令人生畏的 cross-compile。最重要的是,等到完成階段,還是可手動來更進一步精簡系統。

當然,如果真有必要修改某套件的 sourcecode,以 emdebuild(如同 debuild 用途) 去重新編譯和包裝成新的 deb 檔給嵌入式系統使用,將完全不會有任何的挫折感。因為,Debian 總是確保你能將原有的 Package 重新編譯通過,這和自己去抓 sourcecode 的 tgz 回來編譯又碰上一堆 compile error 比起來,有極大的方便和開發速度的優勢。 :-P