Emboxは、リソース制約および組み込みシステム用に設計された構成可能なRTOです。 Emboxの主なアイデアは、LinuxなしでLinuxソフトウェアを使用することです。
メーリングリスト:
電報チャット:
Emboxの構築と実行方法の簡単な概要を次に示します。
必要な環境:
gccとmakeDebianベースのシステムの場合(ほとんどのパッケージはすぐにインストールされています):
$ 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の場合(HomeBrewインストールが必要):
$ 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コマンドが使用されます。以下に説明するすべてのコマンドは、 src/ 、 templates/ 、...を含むemboxディレクトリから呼び出されます。
構成するには、システムに含めることになっているパラメーターとモジュールを指定する必要があります。現在の構成を設定するには、次の2つの方法があります。
make confload-<template> -固定場所で生成されたアーティファクトを構築する./confset <template> -プロジェクトに依存する作業パスで維持されているアーティファクトを構築するmake confload-<template>が使用されている間、テンプレートのフォルダーからのファイルは「./conf」フォルダーにコピーされます。それらを変更できます。 confset <template>が使用されている間、テンプレートのフォルダーからのファイルは./work/<template>/confフォルダーにコピーされ、リンク './conf'は./work/<template>/confに作成されます。この使用は、完全な再構築が回避されるため、テンプレート間の迅速な切り替えに適しています。さらに、実際のターゲットとQEMUの間の組み込みを切り替え、再び戻ってきたとき、作業中のコンフセティングも保持されます。コンフセット方法を使用する上でのみ:SSD/HDDの使用量が増え、並列プロジェクトの数に依存します。
Emboxには、次のコマンドを使用するために、いくつかのテンプレートが準備されています。
$ make confload
テンプレートをロードする最も簡単な方法は、コマンドにその名前を指定することです。
$ ./confset <template>
または
$ make confload-<template>
簡単な概要には、ほとんどのアーキテクチャに存在するqemuテンプレートの1つ、つまりx86/qemuをx86に使用できます。
$ ./confset x86/qemu (まだAutoComplete/-SuggEST部品のみが入力されている場合:する:する)
または
$ make confload-x86/qemu
プロジェクトを構成した後、実行するために実行makeだけです:
$ make
結果の画像はQEMUで実行できるようになりました。最も簡単な方法は./scripts/qemu/auto_qemu 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 -machine accel = tcgフラグを使用して同じスクリプトを使用できます。
$ sudo ./scripts/qemu/auto_qemu -s -S -machine accel=tcg
そのQemuがGDBクライアントからの接続を待つそのQemu。他の端末で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のネットワーキングをサポートしています。