1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-stratovirt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
build_guide.md 5.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 4 месяцев назад 123faeb

Сборка StratoVirt из исходного кода

1. Проверка окружения Rust

Для сборки StratoVirt убедитесь, что среда языка Rust и Cargo уже установлены. Рекомендуется использовать версию rustc 1.64.0 или более позднюю, иначе компиляция может завершиться неудачно.

$ rustc --version
rustc 1.64.0

Если вы хотите развернуть окружение Rust, вам поможет следующая ссылка:

https://www.rust-lang.org/tools/install

2. Сборка с glibc

При использовании glibc StratoVirt связывается динамически. Это целевой объект по умолчанию для сборки StratoVirt.

# Добавьте цепочку инструментов gnu rust, если она установлена, пропустите
$ arch=`uname -m`
$ rustup target add ${arch}-unknown-linux-gnu

# Соберите StratoVirt
$ cargo build --workspace --bins --release --target ${arch}-unknown-linux-gnu

Теперь вы можете найти двоичный файл StratoVirt в target/${arch}-unknown-linux-gnu/release/stratovirt.

3. Сборка с musl-libc

StratoVirt также можно собрать с помощью инструментальных цепочек musl-libc. Таким образом, StratoVirt связан статически и не имеет зависимостей от библиотек.

# Добавьте цепочку инструментов musl rust, если она установлена, пропустите
$ arch=`uname -m`
$ rustup target add ${arch}-unknown-linux-musl

# Соберите StratoVirt
$ cargo build --workspace --bins --release --target ${arch}-unknown-linux-musl

Теперь вы можете найти статический двоичный файл StratoVirt в target/${arch}-unknown-linux-musl/release/stratovirt.

4. Сборка с функциями

Для различных сценариев StratoVirt предоставляет опции условной компиляции на основе груза feature.

Список дополнительных функций:

  • scream_alsa: включить виртуальную звуковую карту с интерфейсом ALSA
  • scream_pulseaudio: включить виртуальную звуковую карту с интерфейсом PulseAudio
  • usb_host: включить устройство USB Host
  • usb_camera_v4l2: включить камеру USB с бэкэндом v4l2
  • gtk: включить отображение GTK
  • vnc: включить отображение VNC
  • ramfb: включить устройство отображения ramfb
  • virtio_gpu: включить виртуализированную видеокарту virtio-gpu
  • pvpanic: включить виртуализированное устройство pvpanic pci
$ cargo build --workspace --bins --release --features "scream_alsa"

5. Компиляция версии OpenHarmony OS

Stratovirt теперь может работать на OpenHarmony OS (OHOS). Stratovirt, версия OHOS, скомпилирован для x64 и использует набор инструментов для кросс-компиляции RUST и SDK, предлагаемый OHOS.

Перед компиляцией укажите путь к SDK OHOS в переменной среды OHOS_SDK. Некоторые ящики, необходимые для StratoVirt, теперь не поддерживают платформу OHOS, необходима адаптация.

Вот пример команды:

RUSTFLAGS="-C link-arg=--target=aarch64-linux-ohos -C linker={OHOS_SDK}/llvm/bin/clang" cargo build --target aarch64-linux-ohos --features {FEATURES}"

Сборка статического StratoVirt в контейнерах

1. Проверьте окружение docker

Чтобы собрать StratoVirt в контейнеры, убедитесь, что программное обеспечение docker установлено. Это можно проверить с помощью следующей команды:

$ docker -v
Docker version 18.09.0

Если вы хотите настроить окружение docker, вам может помочь следующая ссылка:

https://docs.docker.com/get-docker/

2. Запустите скрипт сборки

Запустите скрипт в каталоге tools/build_stratovirt_static, чтобы автоматически запустить контейнер docker для сборки статически связанного StratoVirt.

$ cd tools/build_stratovirt_static
# Соберите StratoVirt с вашим custom_image_name
$ sh build_stratovirt_from_docker.sh custom_image_name

После завершения сборки вы можете найти статически связанный двоичный файл StratoVirt по пути: target/${arch}-unknown-linux-musl/release/stratovirt.

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openeuler-stratovirt.git
git@gitlife.ru:oschina-mirror/openeuler-stratovirt.git
oschina-mirror
openeuler-stratovirt
openeuler-stratovirt
master