The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Сборка 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
 
02.12.2017 , Источник: https://www.collabora.com/news-and-...
Ключи: compile, chromeos, chromiumos, qemu, gpu, virglrenderer, opengl / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu

Обсуждение [ RSS ]
  • 1.1, Аноним (-), 04:35, 05/12/2017 [ответить]  
  • +/
    А для чего нужна хромось в QEMU?
     
     
  • 2.2, Аноним (-), 13:58, 05/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Правильный вопрос: зачем вообще нужна хромось?
     
  • 2.4, kamiram (?), 03:43, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    да нет. для чегота мелкого легкого а ля нетбук - очень даже.
     
  • 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" действиям, необходимым им ресурсам, какой доступ и куда им потребуется, какие объёмы, где и зачем они будут сохранять... Хватит ли нормальной дискеты... >:-)
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру