2026/02/05

以虛擬化軟體QEMU操縱RedBoot和eCos

摘要

本文記錄以Ubuntu上的QEMU虛擬化軟體來操縱建構完畢的RedBoot啟動程式(開機環境)和eCos即時作業系統。

本文

本文記錄於Windows 11 Pro宿主機運行VMware Workstation Player虛擬化軟體來執行Ubuntu 12.04虛擬機上的QEMU虛擬化軟體,以操縱編譯完畢的RedBoot和eCos的步驟。主要參考了eCos-on-qemu這個Github的倉庫,並且因應相關資源年久失修而補充了前置作業。

前置作業 

於Ubuntu 12.04虛擬機更改APT倉庫,因為這一版的Ubuntu已經退役許久,預設的APT倉庫已不容許更新並且安裝套件,所以參考這裡來更改倉庫來源。

sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
sudo apt-get update 

參考這裡這裡、和這裡來安裝相關套件;至於aterm和qemu-system這2個套件則是運行時才察覺需要補充的套件。

sudo apt-get install build-essential
sudo apt-get install tcl8.5
sudo apt-get install libstdc++5
sudo apt-get install aterm
sudo apt-get install qemu-system

接下來準備下載預先建構完畢的i386-elf工具鏈。曾經嘗試參考這裡來建構i386-elf的工具鏈,但於建構binutils-2.13.1時遭遇tc-i386.h的array type has incomplete element type問題、且於建構gcc-3.2.1時遭遇read-rtl.c的lvalue required as increment operand問題,所以姑且忽略之,逕自使用預先建構完畢的版本。

cd ~
wget ftp://ecos.sourceware.org/pub/ecos/gnutools/i386linux/ecoscentric-gnutools-i386-elf-20081107-sw.i386linux.tar.bz2
tar -jxvf ecoscentric-gnutools-i386-elf-20081107-sw.i386linux.tar.bz2

再來可以準備下載eCos原始碼了;這裡選擇了編號22的來源(ftp://ecos.sourceware.org/pub/ecos)、且選擇了編號q的工具鏈(Finish selecting GNU tools)。

wget --passive-ftp ftp://ecos.sourceware.org/pub/ecos/ecos-install.tcl 
sh ecos-install.tcl

再接下來是準備下載eCos-on-qemu這個Github的倉庫。

sudo apt-get install git
git clone https://github.com/GrantEdwards/eCos-on-qemu.git
cd eCos-on-qemu

再接下來是準備設置相關的環境變數;這裡不使用該倉庫的環境變數設置腳本setup.sh,以適應當前的工具鏈擺放位置。

export ECOS_REPOSITORY=~/ecos/ecos-3.0/packages
export PATH=$PATH:~/ecos/ecos-3.0/tools/bin:~/Downloads/gnutools/i386-elf/bin

建構並運行RedBoot

./buildredboot.sh
./runit.sh build-redboot/install/bin/redboot.elf

當中的runit.sh腳本將會呼叫qemu-system-i386這支QEMU虛擬化軟體。相關截圖如下所示。

運行RedBoot,之1
運行RedBoot,之2
測試RedBoot

建構並運行eCos

nano Makefile
./buildecos.sh
make
./runit.sh hello.elf
./runit.sh server.elf 

其中以nano編輯器修改Makefile是為了適應當前的工具鏈擺放位置;當中的runit.sh腳本將會呼叫qemu-system-i386這支QEMU虛擬化軟體。相關截圖如下所示。 

編輯Makefile
運行eCos,之1
運行eCos,之2
測試eCos

完成。

 

參考文獻

http://www.panix.com/~grante/eCos-on-QEMU.html
https://github.com/GrantEdwards/eCos-on-qemu
https://www.digitalocean.com/community/questions/unable-to-apt-update-my-ubuntu-19-04
https://b8807053.pixnet.net/blog/posts/10003611911
https://b8807053.pixnet.net/blog/posts/10003611989
https://ecos.sourceware.org/getstart.html
https://ecos.sourceware.org/build-toolchain.html 

 

沒有留言:

張貼留言