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上的网络。