Embedded Linux System
按照建立 root filesystem 的方法,可以分为以下四大类(by [Jollen])
- Embedded Linux Distribution. pre-built Linux distribution for embedded Linux, 像 Debian for ARM,不是太实用。实际使用中只是在 large-scale 和教学中有应用。
- Hand-made.纯手工打造法,虽然未来非常有可能不去使用,但绝对有理由去学习:
- 透過 hand-make (aka Linux from scratch) 才能了解最根本的觀念。
- 透過 hand-make 學習到整體性的 embedded Linux 設計流程與方法。
- 能更深入學到建立 embedded Linux 系統的技巧。
- 練功。
- 練就建立 embedded Linux 系統的基本功,並學習所要具備的 Linux 系統管理能力。
- very critical 的問題都要 hand-make 才得以解決。
- Build System. Build system 大多建立在 Makefile 與 script 的體系之上,幾個知名的 build system,像是 uclibc-distribution、SnapGear、 Buildroot (也經常被用來建立 arm-uclibc 的 toolchain) 等,都算是 build system。
- Metadata Build System. 這是一種更先進高階的 "build system",目前最具代表性 (也找不到別人了) 的專案是 OpenEmbedded。以往我們都用 Makefile / script 來建立 build system,但這種方法 (傳統 build system) 的缺點是:
- 無法有效解決套件間的相依 (dependency) 問題。
- 支援多平臺 (architecture) 時,很麻煩的!
- 有時改 configure.in 改到頭痛!
- 甚致要把套件 (package) 的 source code 也一起打包,不能設計成網路下載。
- …還有很多很多…
学习旅途: Embedded Linux Distribution -> Hand-made -> Build system -> Metadata build system -> 玩家!
不過不一定每個階段都要去涉獵,有些對 Linux 系統很熟的玩家級同學,甚致直接切入 build system 的修改。
page_revision: 0, last_edited: 1201682724|%e %b %Y, %H:%M %Z (%O ago)





