Embox는 자원 제한 및 임베디드 시스템을 위해 설계된 구성 가능한 RTO입니다. Embox의 주요 아이디어는 Linux없이 Linux 소프트웨어를 사용하는 것입니다.
메일 링리스트 :
전보 채팅 :
다음은 Embox를 빌드 및 실행하는 방법에 대한 빠른 개요입니다.
필요한 환경 :
gcc 와 make데비안 기반 시스템의 경우 (대부분의 패키지는 상자 밖으로 설치됩니다) :
$ 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 합니다. 아래에 설명 된 모든 명령은 src/ , templates/ , ...에 embox 디렉토리에서 호출됩니다.
구성하려면 시스템에 포함되어야하는 매개 변수 및 모듈을 지정해야합니다. 현재 구성을 설정하는 두 가지 방법이 있습니다.
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의 x86/qemu 사용할 수 있습니다.
$ ./confset x86/qemu (그러나 부품 만 입력 할 때 AutoComplete/-suggest :해야 할 일)
또는
$ make confload-x86/qemu
프로젝트를 구성한 후 make to Build를 실행합니다.
$ 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 클라이언트의 연결을 기다립니다. 다른 터미널에서 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의 네트워킹을 지원합니다.