使用PeeWeeLinux 打造自己Linux的系統

 

作者:施勢帆

 

前言

 

如何創作出專屬的Linux的系統,一直是嵌入式資訊家電的主題,尤其在台灣還保有一些硬體的優勢(?)下,相信是這ㄧ波資訊產業的決勝點之ㄧ。目前雖然已有相關的Linux廠商推出嵌入式發展系統,但可能必須花點銀兩,有點違背GPL精神,所以筆者要介紹ㄧ套GPL的嵌入式發展程式(Peeweelinux),讓讀者有機會打造自己所需的Linux環境。

 

或許讀者會說我根本就不需要呀!我可以自行編輯核心、載入模組、選擇套件,筆者相信讀者或許有此高竿的能力,但是也不可否定的是,它的確是是件不小的工程,要費相當時間的。或許讀者會說網路上已經有許多相關的技術,可以將整個系統放置碟片中(所有相關網站可瀏覽http://www.toms.net/rb/),例如LRP, muLinux等,但是這些有相當多限制,很難做出自己所需的環境。

 

Peeweelinux 簡介

 

PeeWeeLinux (http://www.peeweelinux.com) Linux嵌入式發展程式,簡單方便好用,主要的特點有:

 

透過文字視窗圖形界面選取所需的套件,系統支援syslinux lilo bootloaders 兩種開機方式,可以讓我們將設計好的系統環境放入單一碟片或硬碟中。

 

下載

 

Peeweelinux 有三種下載格式,bin, src, iso,我們可在底下取得。

 

安裝

 

筆者使用 ISO 的安裝方式,在RedHat 7.0系統平台,主要系統在 /dev/hdb /dev/sdx,也就是說第一個硬碟(/dev/hda)是空的,執行過程如下:

 

[root@shie /root]# mount peewwwlinux-0.61.0.iso –r –t iso9660 –o loop /mnt/cdrom

[root@shie /root]# cd /mnt/cdrom

[root@shie cdrom]# ./cd_install

+-----+-----+-----+-----+-----+-----+-----+-----+

 

     So you want to install the PeeWeeLinux

     development environment...

 

     Make sure you execute this from CD-ROM.

 

     The PeeWeeLinux development environment

     requires a minimum of 150MB of disk

     for the binary only version. The source

     version requires at least 250MB.

 

     Install (b)inary (s)ource... [b|s]? b

 

     The default installation directory is

     "/root" press enter to accept or

     specifiy a new destination directory.

 

     Install directory?

 

     Installing PeeWeeLinux

     Source:      /mnt/cdrom

     Destination: /root

 

     Continue [y|n]?y

 

這樣就會安裝在/root/Embedded_Build/目錄下。

 

執行

 

首先切換至 /root/Embedded_Build/ 目錄,接下來由於RedHat 7.0 的緣故,請先將函式/usr/lib/libncurses.so.4作適當連結,如下:

 

ln -sf /usr/lib/libncurses.so.5.2 /usr/lib/libncurses.so.4

 

接下來執行 ./pwlconfig 即可,或許讀者也可以加上 –b 選項,試試它的某些實驗功能,如圖1所示。

 

1

 

接下來選擇專案,在此可建議讀者先選用它的範例專案來練習。只有第一次才須解開所有套件,如圖2所示。

 

2

 

接下來進入主選單,如圖3所示。

 

3

 

一般而言,除非有相當特殊的需要,我們不太需要重新打造核心,挑選該系統提供的核心程式,和核心模組即可。所以接下來選擇[Configure Project File System],如圖4所示。

 

4

 

接下來請依需要選擇各別套件,如圖5所示,如果將來是要放置碟片中請注意選擇的檔案大小。

5

 

如果有必要的話可以再進一步做細部選取,如圖六所示。

 

6

 

依需要選取完畢之後,執行 [Extract File System for Project],此時它會解開至/root/Embedded_Build/projects/minimal/mnt  (minimal 是專案名),如果讀者有點功力,對Linux系統了解,且有部份需求的話,可以直接進入該目錄修改。接下來執行[Configure Target Hardware],作目的選擇,如圖7所示。

 

7

 

接下來執行[Target:------],可以讓我們將設計好的系統環境放入單一碟片或硬碟中,如圖8所示。由於日前筆者曾經有接觸過將 Compact flash RAM card作為 IDE0 的主機板,類似圖9,所以筆者在此選擇[Read-write root on a single partition]。另外補充ㄧ點,大部分真實硬碟都可以正常安裝成功,但是有些Compact flash RAM card作為 IDE0 的主機板,在執行lilo會有問題,此時建議改用 RedHat 6.2 Trustix 1.2 lilo 程式。

 

8

 

9

 

接下的是一些 lilo syslinux 相關選項,如下:

 

--- Global configuration parameters --

Project Mount Point: "mnt"

Project Custom Source File path: "/root/custom"

Device Mount Point: "./mnt"

Boot Image Name: "bzImage" (請跟著核心改)

Ramdisk File Name: "ramdisk"

Initrd File Name: "initrd”"

Modify System Boot Files: "y"

--- Boot loader options ---

Boot Label: "linux"

Boot Prompt Timeout: "2"

VGA Mode: "normal"

Append Options: ""

--- floppy target configuration parameters ---

Floppy Device: "/dev/fd0"

Free Space on Ramdisk: "500"

--- ide flash target (or HD) configuration parameters ---

Target Device: "/dev/hda" (請跟著實際改)

Boot Device on Target System: "/dev/hda"

--- single ramdisk target configuration parameters ---

Free Space on Ramdisk: "2000"

--- multiple ramdisk target configuration parameters ---

Free Space on /dev Ramdisk: "1000"

Free Space on /etc Ramdisk: "100"

Free Space on /home Ramdisk: "500"

 

一切都設定好了之後,便可正式寫入目的地了,如圖10所示。

 

10

 

再次確認,如圖11所示。

 

11

 

安裝過程,如圖12所示。

 

12

 

安裝結果訊息,如圖13所示,如果其中有錯誤的話請檢查看看。

 

13

 

測試

 

如果一切順利,我們便可以使用它來開機了,此時root的密碼為redhat,是不是相當簡單就可以打造自己所需的Linux環境。另外有個小技巧是,讀者可以取RedHat 6.2 Trustix 1.2的程式來用,不過要記得將相關函式庫一併複製到相對位置。

 

討論

peeweelinux 有兩個相關的郵件論壇,一般討論和發展者,讀者可以訂閱,另外歷史的資料在http://adis.on.ca/archives/index.html

 

結語

 

Peeweelinux雖然讓讀者有機會打造自己所需的Linux環境,但是在真真正正的商業用途的話是需要在加些巧思的。而在此筆者也希望讀者能稍具有Linux完整啟動程序的概念,方能夠變化出不同,否則只是由Microsoft陣營換至RedHat陣營,筆者實在看不出有何不同。

 

筆者任職於亞東技術學院電機系

URL:http://mouse.oit.edu.tw

Email:[email protected]