2009年3月10日 星期二

buildroot: 三個願望一次滿足

由於新工作開始了, Prex的部份以後會慢慢推進
(目前mp3 decoder ok了, 還要弄audio driver/daemon)
而buildroot就是因為新工作的內容而開始接觸 (以前就聽過, 只是一直沒機會去玩.)

在開發embedded system中, crossplatform toolchain的選擇是相當重要的一環
在數年前, 產生對應平台的 gcc cross toolchain是相當麻煩的一件事情
glibc/gcc/binutils..版本的排列組合有可能會造成不同的問題
(ex: compiler編不過, compiler編完了不能編kernel)
因此需要花時間嘗試組合, 找到較佳的組合, 過程冗長繁複
而這幾年來令個人印象深刻的是Dan Kegel當時所撰寫的build script
方便的設定, 大大地簡化了如此測試的程序

現今cross toolchain可以說垂手可得了, 相當方便
稍微google一下就可以得到不少訊息和編譯好的工具
像是移植prex的過程中, 個人選擇CodeSourcery的Toolchain
主要的目標硬體平台(x86, ARM, MIPS, ColdFire, PowerPC)都有
也貼心地提供Linux/Windows兩種版本,
而CodeSourcery也隨著時間不斷地提供新版本和新平台的支援
不想親自動手準備相關環境情況下, 算是相當高品質的選擇

對於Embedded Linux而言, 除了toolchain, kernel外
除了Toolchain還得張羅root file system
buildroot提供相當方面的介面(類似編譯linux kernel的menuconfig), 滿足這三種需求
buildroot是uClibc的相關project, 提供uClibc-based的gcc toolchain
相對glibc/gcc所建構的環境, 在所需空間上節省不少
而且也編譯好busybox, 方便迅速地建構適用的環境
套句廣告詞: 三個願望一次滿足!

另外, 除了CodeSourcery toolchain, buildroot 外, Scratchbox也是不錯的選擇
而較龐大且全面的Embedded Linux專案可以考慮OpenMoko所採用的OpenEmbedded

沒有留言:

整合 MT-32 摹擬音源的 dosbox-patched

dosbox 對於許多老玩家並不陌生 提供了簡單的方式讓使用者能執行 DOS, Win 3.1/9x 的程式 相信多數用途是用來懷舊喜愛的遊戲 而音樂在遊戲中扮演相當重要的角色 在沒有強力計算與空間存放來支援 MP3/AAC 等 HQ 音樂 除了 sample rate 不高的...