сборка embox для mips/qemu

62 views
Skip to first unread message

Antony Pavlov

unread,
Jun 15, 2016, 2:05:47 PM6/15/16
to Anton Bondarev, Anton Kozlov, embox...@googlegroups.com
Здравствуйте!

Я попробовал собрать embox для mips/qemu. К сожалению, собрать embox
при помощи mips-linux-gnu toolchain из Debian testing (основные пакеты
gcc-mips-linux-gnu 5.2.1-14+really5.2.1-13cross1 и binutils-mips-linux-gnu 2.26-5).

Так как для embox предлагается собственный toolchain (https://github.com/embox/crosstool),
то я решил им воспользоваться.

Я использовал __минимальную__ установку ОС Debian jessie (stable) для amd64
и собрал необходимый toolchain для mips (mips-elf-toolchain.tar.bz2).
В процессе работы crosstool я выявил несколько тривиальных проблем;
патчи, которые исправляют данные проблемы --- в pull request

update prerequisites for Debian 8.5.0 amd64 (https://github.com/embox/crosstool/pull/1)

прошу их интегрировать.


Далее я распаковал свежесобранный mips-elf-toolchain.tar.bz2 в каталог
/home/antony и попробовал собрать embox.

В соответствии с embox/README.md я выполнил установку требуемых для embox пакетов

# apt-get install build-essential gcc-multilib curl libmpc-dev

Далее я попробовал собрать embox:

$ git clone https://github.com/embox/embox
$ cd embox
$ git log -1
commit b7839502277bba1fcb01c91c136a088c06176c2c
Merge: bcc9a3a 34337e2
Author: Anton Bondarev <anton.bon...@gmail.com>
Date: Wed Jun 1 20:37:26 2016 +0300

Merge pull request #946 from embox/ti816x-net-update

Update ti816x net driver

$ make confload-mips/qemu-small
$ sed -i "s#^CROSS_COMPILE.*#CROSS_COMPILE = /home/antony/mips-elf-toolchain/bin/mips-elf-#" conf/build.conf
$ make

В результате получил такую ошибку:

/home/antony/mips-elf-toolchain/bin/mips-elf-gcc -pipe --debug-prefix-map=`pwd`= --debug-prefix-map=./= -fno-strict-aliasing -fno-common -Wall -Werror -Wundef -Wno-trigraphs -Wno-char-subscripts -Wno-nonnull-compare -Wformat -std=gnu99 -O0 -g -G0 -march=24kf -msoft-float -EB -U__linux__ -Ulinux -U__linux -D__EMBOX__ -D__unix -imacros build/base/gen/config.lds.h -Ibuild/base/include -I./src/include -I./src/arch/mips/include -Ibuild/base/gen/include -Ibuild/base/gen/src/include -Ibuild/base/gen/src/include -Ibuild/base/gen/src/arch/mips/include -I./src/compat/linux/include -I./src/compat/posix/include -I./src/compat/libc/include -nostdinc -MMD -MP -include build/base/gen/include/config/embox/kernel/thread/signal/siginfoq.h -D__EMBUILD_MOD__=embox__kernel__thread__signal__siginfoq -c -o build/base/obj/src/kernel/thread/signal/siginfoq.o src/kernel/thread/signal/siginfoq.c
In file included from src/kernel/thread/signal/siginfoq.c:17:0:
./src/include/mem/objalloc.h:27:39: fatal error: module/embox/mem/objalloc.h: No such file or directory
#include <module/embox/mem/objalloc.h>
^

Как же всё-таки собрать embox для mips/qemu?

-- 
Best regards,
  Antony Pavlov

anton.bon...@gmail.com

unread,
Jun 15, 2016, 2:57:23 PM6/15/16
to Antony Pavlov, Anton Kozlov, embox...@googlegroups.com
Антон, добрый вечер.

Спасибо за патчи, проверим и накатим.

Попробуйте
make confload-mips/qemu
make

Потом по readme

./scripts/qemu/auto_qemu

С уважением, Антон Бондарев

Отправлено с моего HTC

Antony Pavlov

unread,
Jun 15, 2016, 4:52:55 PM6/15/16
to anton.bon...@gmail.com, Anton Kozlov, embox...@googlegroups.com
On Wed, 15 Jun 2016 22:02:35 +0300
"anton.bon...@gmail.com" <anton.bon...@gmail.com> wrote:

> Антон, добрый вечер.
>
> Спасибо за патчи, проверим и накатим.
>
> Попробуйте
> make confload-mips/qemu
> make

Попробовал --- действительно, сборка дошла до конца,
хотя при этом выявились некоторые проблемы:

mips/qemu: soft/hard-float ABI inconsistency (https://github.com/embox/embox/issues/949)
python is missed in the README.md build prerequisites list (https://github.com/embox/embox/issues/948)

> Потом по readme
>
> ./scripts/qemu/auto_qemu

sudo qemu-system-mips -M mipssim -kernel ./build/base/bin/embox -m 256 -net nic,vlan=0,model=mipsnet,macaddr=AA:BB:CC:DD:EE:02 -net tap,script=./scripts/qemu/start_script,downscript=./scripts/qemu/stop_script,vlan=0 -nographic
./scripts/qemu/auto_qemu: line 203: sudo: command not found

sudo наверное тоже следует занести в список требуемого ПО.

Но без sudo всё запустилось:

$ qemu-system-mips --version
QEMU emulator version 2.1.2 (Debian 1:2.1+dfsg-12+deb8u6), Copyright (c) 2003-2008 Fabrice Bellard

$ qemu-system-mips -M mipssim -kernel ./build/base/bin/embox -m 256 -nographic

...

root@embox:/#version

.------. _
| ____| | |
| |____ _ __ ___ | |_ _____ __
| ____| '_ ` _ \| _ \ / _ \ \/ /
| |____| | | | | | |_) | (_) > <
|______|_| |_| |_|____/ \___/_/\_\

Date: Jun 15 2016
Time: 22:46:08
Compiler: 4.9.2
root@embox:/#


Спасибо!
--

Anton Bondarev

unread,
Jun 16, 2016, 6:00:31 AM6/16/16
to Antony Pavlov, Anton Kozlov, embox...@googlegroups.com
Антон, добрый день.

sudo - требуется только для работы с сетью, для создания tuntab интерфейса. Странно что его нет, может Вы работали под root-том?

Если запустите через ./script/qemu/auto_qemu то можно будет попробовать telnet и httpd которые в этом темплейте запущены по умолчанию.

С уважением, Антон Бондарев

16 июня 2016 г., 0:54 пользователь Antony Pavlov <antony...@gmail.com> написал:

Antony Pavlov

unread,
Jun 16, 2016, 7:11:40 AM6/16/16
to Anton Bondarev, Anton Kozlov, embox...@googlegroups.com
On Thu, 16 Jun 2016 14:00:30 +0400
Anton Bondarev <anton.bon...@gmail.com> wrote:

> Антон, добрый день.
>
> sudo - требуется только для работы с сетью, для создания tuntab интерфейса.
> Странно что его нет, может Вы работали под root-том?

Обижаете!

Я же написал

> > > Я использовал __минимальную__ установку ОС Debian jessie (stable) для
> > amd64

В минимальной установке нет ни xz, ни bzip2, (см.
мои патчи для crosstool https://github.com/embox/crosstool/pull/1)
ни даже python.

Соответственно sudo тоже нет.

> Если запустите через ./script/qemu/auto_qemu то можно будет попробовать
> telnet и httpd которые в этом темплейте запущены по умолчанию.

Для моих целей сеть совсем не нужна, достаточна вывода в последовательный порт,
поэтому для минимизации моих действий я предпочёл просто отключить сеть через TUN/TAP в qemu.

Anton Bondarev

unread,
Jun 16, 2016, 8:04:41 AM6/16/16
to Antony Pavlov, Anton Kozlov, embox...@googlegroups.com
Извините, не хотел обидеть.

Спасибо за вклад в проект! Если возникнут вопросы обращайтесь!

16 июня 2016 г., 15:13 пользователь Antony Pavlov <antony...@gmail.com> написал:
Reply all
Reply to author
Forward
0 new messages