EMBOX是一種可配置的RTO,專為資源約束和嵌入式系統而設計。 EMBOX的主要想法是使用沒有Linux的Linux軟件。
郵件列表:
電報聊天:
這是有關如何構建和運行EMBOX的快速概述。
必需的環境:
gcc和make對於基於Debian的系統(雖然大多數軟件包都安裝在框外):
$ sudo apt-get install build-essential gcc-multilib curl libmpc-dev python
對於Arch Linux:
$ sudo pacman -S make gcc-multilib cpio qemu
$ yay -S python2-bin
對於Fedora Linux:
$ sudo dnf install make gcc cpio qemu patch curl python
對於Mac OS X(需要安裝自製的):
$ brew install i686-elf-binutils i686-elf-gcc awk cpio qemu python
對於任何具有Docker的系統(有關Wiki Emdocker的更多信息):
$ ./scripts/docker/docker_start.sh
$ . ./scripts/docker/docker_rc.sh
首先:
$ git clone https://github.com/embox/embox.git embox
$ cd embox
由於EMBOX是高度可配置的項目,因此有必要指定要構建的模塊並為其參數參數。構建OS make命令。下面描述的所有命令均來自embox目錄,其中包括src/ , templates/ ,...
為了配置,必須指定應該包含在系統中的參數和模塊。有兩種設置當前配置的方法:
make confload-<template> -建立在固定位置生成的偽像./confset <template> -在項目依賴工作路徑中維護的偽像當使用make confload-<template>時,將模板文件夾中的文件複製到'./conf'文件夾中。您可以修改它們。使用confset <template>時,將模板文件夾中的文件複製到./work/<template>/conf文件夾和鏈接'./conf'的文件中,創建到./work/<template>/conf 。此用法適合在模板之間快速切換,因為避免了全面的重建。此外,當您切換構建構建時,即實際目標和Qemu之間,還保留了工作匯集。僅使用confset方法的缺點:更多SSD/HDD用法,取決於並行項目數量。
EMBOX已準備好幾個模板,以使用以下命令列出:
$ make confload
加載模板的最簡單方法是在命令中指定其名稱:
$ ./confset <template>
或者
$ make confload-<template>
對於快速概述,您可以使用大多數架構中存在的qemu模板之一,即x86/qemu for x86:
$ ./confset x86/qemu
或者
$ make confload-x86/qemu
配置項目後,只需運行make構建:
$ make
現在可以在QEMU上運行所得圖像。最簡單的方法是執行./scripts/qemu/auto_qemu腳本:
$ sudo ./scripts/qemu/auto_qemu
sudo被重新設置以設置模擬網絡所需的TUN/TAP設備。
加載系統後,您將看到embox>提示,現在您可以運行命令。例如, help列出所有現有命令。
測試連接:
ping 10.0.2.16
如果一切都很好,則可以通過telnet連接到EMBOX終端。
在此之後退出QEMU類型Ctrl + A和X。
您可以將相同的腳本與-s -s -s -Machine Accel = TCG標誌進行調試:
$ sudo ./scripts/qemu/auto_qemu -s -S -machine accel=tcg
運行該QEMU後,等待GDB-CLIENT的連接。在另一個終端運行GDB:
$ gdb ./build/base/bin/embox
...
(gdb) target extended-remote :1234
(gdb) continue
系統開始加載。
在GDB終端中的任何時候,您都可以鍵入CTRL + C ,並查看當前線程( backtrace )或設置斷點( break <function name> break <file name>:<line number> )的堆棧。
EMBOX支持以下CPU架構:X86,ARM,Microblaze,Sparc,PPC,MIPS。
為了使用X86以外的架構,您需要一個交叉編譯器。安裝交叉編譯器後,只需重複上述步驟,從配置開始:
make confload-<arch>/qemu
make
sudo ./scripts/qemu/auto_qemu
輸出與x86體系結構的情況完全相同。
EMBOX支持QEMU X86,ARM,MIPS和Microblaze上的網絡。