Сборка ChromiumOS из исходных текстов для запуска в QEMU |
[исправить] |
Доступный в исходных текстах ChromiumOS главным образом отличается отсутствием
элементов брендинга ChromeOS и компонентов DRM для просмотра защищённого контента.
Для сборки вначале нужно клонировать репозиторий с инструментарием:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PATH:$PWD/depot_tools
После чего можно приступить к загрузке и сборки исходных текстов ChromiumOS
(сборку осуществляем для целевой платформы amd64-generic, при низкой скорости
сети или недосаточном свободном дисковом пространстве в "repo init" также можно
указать опцию "-g minilayout" для загрузки минимально необходимого набора кода):
mkdir chromiumos
cd chromiumos
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git --repo-url https://chromium.googlesource.com/external/repo.git -g minilayout
repo sync -j75
cros_sdk
export BOARD=amd64-generic
./setup_board --board=${BOARD}
./build_packages --board=${BOARD}
./build_image --board=${BOARD} --boot_args "earlyprintk=serial,keep console=tty0" --noenable_rootfs_verification test
./image_to_vm.sh --board=${BOARD} --test_image
Для запуска окружения ChromiumOS можно воспользоваться командной cros_start_vm:
cros_sdk
./bin/cros_start_vm --image_path=../build/images/${BOARD}/latest/chromiumos_qemu_image.bin --board=${BOARD}
но при использовании cros_start_vm наблюдаются мешающие полноценной работе
ограничения, такие как невозможность перенаправить графический вывод через VNC.
Поэтому будем запускать ChromiumOS при помощи QEMU и виртуального GPU Virglrenderer.
Установим сборочные зависимости (список для Ubuntu 17.10):
sudo apt install autoconf libaio-dev libbluetooth-dev libbrlapi-dev \
libbz2-dev libcap-dev libcap-ng-dev libcurl4-gnutls-dev libepoxy-dev \
libfdt-dev \
libgbm-dev libgles2-mesa-dev libglib2.0-dev libgtk-3-dev libibverbs-dev \
libjpeg8-dev liblzo2-dev libncurses5-dev libnuma-dev librbd-dev librdmacm-dev \
libsasl2-dev libsdl1.2-dev libsdl2-dev libseccomp-dev libsnappy-dev l\
ibssh2-1-dev libspice-server-dev libspice-server1 libtool libusb-1.0-0 \
libusb-1.0-0-dev libvde-dev libvdeplug-dev libvte-dev libxen-dev valgrind \
xfslibs-dev xutils-dev zlib1g-dev libusbredirhost-dev usbredirserver
Соберём Virglrenderer, который позволяет задействовать виртуальный GPU и
использовать из гостевой системы графические возможности хост-системы, в том
числе аппаратное ускорение для OpenGL. Virglrenderer является не обязательным,
если не нужно ускорение вывода графики можно обойтись без сборки Virglrenderer
и убрать из строки запуска QEMU "virgl".
git clone git://git.freedesktop.org/git/virglrenderer
cd virglrenderer
./autogen.sh
make -j7
sudo make install
Собираем QEMU для целевой платформы x86_64:
git clone git://git.qemu-project.org/qemu.git
mkdir -p qemu/build
cd qemu/build
../configure --target-list=x86_64-softmmu --enable-gtk --with-gtkabi=3.0 \
--enable-kvm --enable-spice --enable-usb-redir --enable-libusb --enable-virglrenderer --enable-opengl
make -j7
sudo make install
Запускаем ChromiumOS в QEMU с использованием драйверов virtio (Linux-ядро
хост-системы должно быть собрано с опциями CONFIG_DRM_VIRTIO,
CONFIG_VIRT_DRIVERS и CONFIG_VIRTIO_XXXX):
cd chromiumos
/usr/local/bin/qemu-system-x86_64 \
-enable-kvm \
-m 2G \
-smp 4 \
-hda src/build/images/amd64-generic/latest/chromiumos_qemu_image.bin \
-vga virtio \
-net nic,model=virtio \
-net user,hostfwd=tcp:127.0.0.1:9222-:22 \
-usb -usbdevice keyboard \
-usbdevice mouse \
-device virtio-gpu-pci,virgl \
-display gtk,gl=on
|
|
|
|
Раздел: Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu |
|
2.5, Anonimous (?), 04:07, 09/12/2017 [^] [^^] [^^^] [ответить]
| +/– |
Флудеры! я вполне конкретный вопрос задал, мне интересны юзкейсы для QEMU. Ну кроме "на посмотреть" и "потому что могу!". Подозреваю, что в qemu будут проблемы с ускорением графики, ютуб да и просто веб-приложения будут ощутимо лагать по сравнению с голым железом. Собственно отсюда и вопрос, м.б. её можно использовать для чего-то ещё...
| |
|
3.8, EHLO (?), 10:01, 11/12/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Флудеры! я вполне конкретный вопрос задал, мне интересны юзкейсы для QEMU.
На наброс похоже потому что.
Для разработки и тестирования, _очевидно_.
Но можно и терминалы и бездисковые киоски всякие.
Ускорение в QEMU есть, SPICE и QXL драйвер в ядре и иксах, будет virgl еще для 3D.
| |
|
|
1.3, foobar (??), 08:39, 08/12/2017 [ответить]
| +/– |
Зря наговариваете. Популярность этой ОС идет вверх, особенно в корпоративном секторе.
| |
|
2.10, stalkerdroad (ok), 20:03, 26/12/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Популярность этой ОС идет вверх, особенно в корпоративном секторе.
Пруфы на статистику будут ?
| |
|
1.9, Алког (?), 18:02, 23/12/2017 [ответить]
| +/– |
А теперь этот "полезный совет" с разъяснениями и объяснениями.
Особенно по выполняемым загадочными "утилитами repo" действиям, необходимым им ресурсам, какой доступ и куда им потребуется, какие объёмы, где и зачем они будут сохранять... Хватит ли нормальной дискеты... >:-)
| |
|