LINUX.ORG.RU

Qemu


90

0

Всего сообщений: 24

Написал эмулятор своего мобильника

Более чем два месяца назад заказал отладочные платы для своего хоббийного проекта, но они так и не пришли и хз, придут ли вообще. Разработка прошивки для него из-за этого застопорилась: писать «на воздух» я не особо люблю, а текущая клавиатура уже не отвечает моим требованиям - банально не хватает кнопок.

И тогда в голову начала приходить мысль - а не организовать ли мне эмулятор по типу того, который используется в Android Studio? Идея показалась мне классной, но останавливало отсутствие внятной документации по qemu, поэтому для реализации задумки предлагалось соснуть сурца. В какой-то момент я понял, что без полноценной клавиатуры я не смогу продолжить проект - банально нет всех нужных кнопок - было принято решение засучить рукава и попробовать.

В штатной поставке esp-idf есть qemu, но в ней особо не развернёшься, поэтому начал с простого - используя простое i2c устройство в качестве шаблона, создал заглушки для клавиатуры, контроллера модема и контроллера питания. Подключить их тоже не составило труда - код как раз на скриншоте. Обмен данными по шине i2c оказался очень простым: на эмулируемом устройстве есть всего 2 функции обратного вызова - для чтения и для записи. Таким образом, когда мастер пишет и читает, то просто подсовываем ему то, что он просит. Таким образом реализовать эмуляцию i2c устройств оказалось легче лёгкого.

Далее прерывания. Для эмуляции линий gpio в qemu используются линии прерываний. Тут вроде всё просто: на эмулируемом устройстве создаются выходные линии qemu_irq и далее они подключаются… куда? Вот тут меня ждала первая, пусть и лёгкая, задача. В самом начале я подключил линию irq клавиатуры на матрицу прерываний. Обработчик прерываний вызывался, но понять, на каком gpio оно произошло он не мог. Немного пораскинув мозгами и пососав сурца покопав исходники, я нашёл правильное место для подключения - матрица gpio. Как видите, в функциях read и write ничего нет, поэтому реализовать матрицу предлагается самостоятельно. Ожидаемо :) Реализовывается она очень просто. Сначала в матрице gpio создаются 40 входных и 40 выходных лини qemu_irq, которые будут отвечать за все gpio, которые есть у esp32. Далее создаются ещё 2 выходные линии qemu_irq, которые отвечают за обычные и non-maskable прерывания. Их я подключил к матрице прерываний на специально предусмотренные для этого каналы.

Теперь возвращаемся к функцуиям read и write. Вы когда-нибудь работали с расширителями портов, которые подключаются по шинам spi и i2c? Вся суть сводится к тому, что вы просто пишете и читаете нужные регистры по шинам, верно? Вот тут всё тоже самое, только с одним маленьким отличием - сами регистры нахадятся в самом микроконтроллере и процессор имеет к ним прямой доступ. То есть матрица gpio - это просто расширитель портов, который встроен в процессор и подключен напрямую к нему. Таким образом, вы теперь выступаете в качестве микросхемы :) В ваши регистры будут что-то писать и читать, а вы будете управлять линиями gpio. Когда процессор хочет выставить нужный gpio в нужный уровень - он просто пишет нужный бит в нужный регистр. Вы это видите и переключаете нужную линию qemu_irq в нужный уровень. Если же входная линия изменяет свой уровень, то вы просто отмечаете это у себя в структуре и при чтении сможете вернуть процессору текущие уровни gpio. Если процессор настроил прерывание на каком-либо gpio, то его можно уведомить об этом с помощью линий irq и nmi-irq. Далее процессор прочитает регистр прерываний и попросит вас сбросить их и вы это сделаете :) (иначе он будет постоянно опрашивать регистры прерываний, думая, что они всё ещё активны). Таким образом, реализовать матрицу gpio не составило особого труда. После этого я подключил свои устройства к нужным линиям матрицы gpio и смог эмулировать работу gpio без проблем.

Итак, я уже потирал руки и думал: «Сейчас я кабанчиком организую эмуляцию дисплея на шине spi и можно будет браться за гуй.». Ок, по аналогии с устройством i2c, беру в качестве шаблона какое-нибудь spi-устройство и начинаю реализовывать дисплей. Общение происходит как по i2c, только вместо обратных вызовов read и write, у вас есть обратный вызов transfer, в котором одновременно происходит и приём и передача данных. Сделал я дисплей, запускаю и… тишина! То есть по шине мне передаются сплошные нули! Всмысле? 0_0 В этот раз пососать сурца покопаться в исходниках пришлось гораздо более основательно. В итоге, понатыкав везде и всюду спасительный printf(), я нашёл чёрную дыру, в которой терялись данные по дороге от гостя до эмулируемого дисплея. На первый взгляд кажется, что тут всё ок, но когда я расставил printf() для распечатки адресов регистров, которые пишет и читает процессор, то всё встало на свои места - этот код никаким образом не обрабатывает регистры DMA! То есть вообще. Получается, что гость пытается слать данные через DMA буфер, а ванильный эмулятор spi туда даже не смотрит. В итоге, я сделал его копию и написал свою реализацию, которая позволяет отправлять данные по spi с использованием dma (полную реализацию пилить не стал, ибо влом). И для этого пришлось решить задачу со звёздочкой - доступ к памяти гостя.

Пару слов о том, как работает DMA на esp32. Прошивка организовывает где-нибудь в памяти специальные структуры с указателями на сами данные и входной буфер. Далее в специальнные DMA-регистры записываются адреса (указатели) этих структур. Далее подаётся команда на запуск передачи и данные передаются/принимаются без участия процессора. Теперь передо мной встала задача - как получить доступ по указателям, которые мне передаёт гость? Ведь гость даёт адрес внутри адресного пространства виртуальной машины. Сначала я нашёл решение с помощью функций cpu_physical_memory_read() и cpu_physical_memory_write(), которые работают с указателями из адресного пространства гостя. Но лишнее копирование не давало мне покоя и я нашёл решение получше.

При создании виртуальной машины qemu создаются различные области памяти. Одна из них - оперативка. Создаётся с помощью memory_region_init_ram(). В esp32 создаётся несколько различных областей такого типа. Фишка в том, что все эти области выделены как обычная память на хосте. Идея заключается в том, чтоб использовать memory_region_get_ram_ptr(), чтоб получить указатель на каждую область. Затем, зная начальный и конечный адрес каждого региона, можно вычислить расположение данных в оперативке хоста и работать с ними напрямую.

Последняя задача - как передать эти указатели, которые возвращают вызовы memory_region_get_ram_ptr(), в сам эмулятор spi? Он выполнен как отдельное устройство. В этот раз сосание сурца ковыряние в исходниках и чтение крох документации ничего не дали, поэтому решил действовать в лоб - передавать через свойства устройства. В эмуляторе spi я сделал несколько свойств с помощью object_property_add(), при создании машины при инициализации spi просто передал указатели как uint64_t с помощью qdev_prop_set_uint64(). Не уверен, что поступал правильно, но других решений не нашёл. Возможно, в таких случаях следует создавать отдельное устройство - эмулятор DMA, не знаю. Тем не менее, это сработало - я смог получить доступ к памяти гостя, высчитав смещение и прибавив его к одному из указателей на область памяти.

Гуй сделал на Tcl/Tk. Общение в машиной идёт через fifo. Просто и понятно. Уверен, что у qemu есть свой api для построения гуя, но я, честно говоря, к этому моменту уже окончательно устал искать информацию раз, и хотелось немного попрактиковаться в тикле два. До этого в тикле не работал с цветными изображениями и это был неплохой повод попробовать. Оказалось, что всё делается элементарно через image. Благо по тиклю информация есть, в отличие от.

К чему я вообще пишу обо всё об этом? Похвастаться? Да, не без этого, но ещё больше хочется поделиться вот чем. До того, как я полез писать эмулятор, я многое знал, но не понимал как именно работают те или иные вещи в микроконтроллерах. После того, как я написал эмулятор, я многое понял. Например, как именно процессор управляет своей перефирией. Как работают прерывания. Как работает DMA. Да и вообще, получил опыт в работе с «сырыми» регистрами. Я это к тому, что если у вас есть какая-нибудь идея и вам хочется её осуществить, то всегда пробуйте! Даже если задача изначально кажется сложной и неподъёмной. Запросто может оказаться так, что вы, как и я, не просто реализуете задуманное, но ещё получите ценные знания и/или опыт в процессе.

Такие дела \ё/

 , ,

u5er
()

VMware из 2000 года в современных реалиях

Собственно, запустил VMware из 2000-го года на QEMU 10.0 во вложенной виртуализации.

Большинство современных linux’ов в ней не запускается (в лучшем случае ядро уходит в панику с ошибкой «fatal exception in interrupt», ну или же появляется ошибка о том, что процессор остановлен со стороны гостевой ОС).

Также, виртуальная машина, в которой всё это запущено, может в любой момент зависнуть с ошибкой «internal error». В логах QEMU при этом:

( читать дальше... )

Ещё, почему-то, Windows 98 ведёт себя очень странно, если установить её в данную версию VMware на данном дистрибутиве. (Хотя, здесь был опыт запуска Windows 98 в VMware).

Cкриншот с багом данной VMware прилагается.

Всё это дело работает на Mandrake Linux 8.2. На виртуалке, на которой всё это запущено – Alpine Linux 3.22.
А на хосте – Devuan 5 Daedalus.

 , ,

ne-vlezay
()

cingg + qemu-system-ppc (mac OS X Tiger for PPC)

Ну как бы скрин не новый, от 2024-го. Но раз уж пошла такая пьянка …

qemu-system-ppc -m 1024  -M mac99,via=pmu  -hda ~/QEMU/osx-tiger_10.4.11_installed-compressed.qcow -cpu G4 -boot c -accel tcg,tb-size=256  -g 1368x768x32 -display  sdl,gl=on -device intel-hda -device hda-duplex -nic user,hostfwd=tcp:127.0.0.1:6001-:6000

Картинка-видео да, всего 320*240. Но и эмулирумая сеть не гигабит по скорости …

Хост на тот момент амд FX 4300, 32bit qemu

 ,

Andrew-R
()

Альт 11, cinnamon 24.04, windows 10, mac os 13 — все в kvm-qemu

Установил на свой основной комп убунту 25.04.

$ fastfetch
                             ....              jura1243@jura1243-B660M-GAMING-DDR4
              .',:clooo:  .:looooo:.           -----------------------------------
           .;looooooooc  .oooooooooo'          OS: Ubuntu 25.04 x86_64
        .;looooool:,''.  :ooooooooooc          Host: B660M GAMING DDR4
       ;looool;.         'oooooooooo,          Kernel: Linux 6.14.0-15-generic
      ;clool'             .cooooooc.  ,,       Uptime: 1 hour, 35 mins
         ...                ......  .:oo,      Packages: 2297 (dpkg), 29 (snap)
  .;clol:,.                        .loooo'     Shell: bash 5.2.37
 :ooooooooo,                        'ooool     Display (SKG2722): 2560x1440 @ 144 Hz in 27" [External]
'ooooooooooo.                        loooo.    DE: GNOME 48.0
'ooooooooool                         coooo.    WM: Mutter (Wayland)
 ,loooooooc.                        .loooo.    WM Theme: Yaru
   .,;;;'.                          ;ooooc     Theme: Yaru [GTK2/3/4]
       ...                         ,ooool.     Icons: Yaru [GTK2/3/4]
    .cooooc.              ..',,'.  .cooo.      Font: Ubuntu Sans (11pt) [GTK2/3/4]
      ;ooooo:.           ;oooooooc.  :l.       Cursor: Yaru (24px)
       .coooooc,..      coooooooooo.           Terminal: mc
         .:ooooooolc:. .ooooooooooo'           CPU: Intel(R) Core(TM) i7-14700F (28) @ 5.40 GHz
           .':loooooo;  ,oooooooooc            GPU: NVIDIA GeForce RTX 4060 Ti [Discrete]
               ..';::c'  .;loooo:'             Memory: 17.23 GiB / 30.42 GiB (57%)
                                               Swap: 764.00 KiB / 8.00 GiB (0%)
                                               Disk (/): 350.22 GiB / 456.35 GiB (77%) - ext4
                                               Local IP (enp5s0): 192.168.1.71/25
                                               Locale: ru_RU.UTF-8

Решил добавить системы на всякий случай в virt-manager.

Винду взял с пиратского сайта, макось ventura это хакинтошь, скачивается автоматом https://github.com/kholia/OSX-KVM/tree/master . Встала со второго раза. Изучаю Альт линукс, поэтому добавил. И для лучшей связки с убунтой еще накатил ubuntu cinnamon 24.04.

 , , ,

jura12
()

SuSE 9.1 Professional на qemu 9.0

Скачал я Сузю 9.1 для х86 процессоров, аж 3.8 Гб.

https://archive.org/details/SuSE_Linux_9.1

Поставил на qemu 9.0, скормил бете MainActor 5.2 ключ от 5.5 (иначе был водяной знак на всё видео), скомпилял make 3.82, yasm 1.3.0, ffmpeg 0.5.13, mplayer 1.0rc3 (сильно более новые версии хотели inttypes.h которого ещё не было в этом дистре, gcc 3.3.3).

Скачал хорошо известный dothack.mpg с samples.mplayerhq.hu, сконвертировал его ффмпегом в тот же мпег контэйнер, но с mp2 звуком (поддержка ac3 любезно вырезана, Broadcast2000 в консоль ругнулся), загрузил и проверил фильтры. Random fade оказалось чем-то типа точек на киноплёнке, забавно.

Кде 3.2.1 даже можно на 64 Мб запустить, правда в своп под 40 мб уходит. На пентиум1 не грузится - modprobe использует cmov …

Места занимает под 2гб (вместе с доустановленной девелоперской начинкой для mplayer-а и предустановленным openOffice 1.1), reiserfs по умолчанию. Есть ещё странности-проприетарности типа acrobat Reader 5.0 и RealPlayer. Несколько удивила бета xfree 4.4

 qemu-system-i386 -accel tcg,tb-size=256 -cpu pentium2  -cdrom ~/ISO/SU910.001.iso -m 64   -hda ~/QEMU/suse-9.1-compressed.qcow2 -device ES1370 -vga cirrus -display sdl

MainActor правда проверял на 512 Мб памяти и с включённым -enable-kvm. Без него даже с бустом до почти 4 ггц мой хост с Amd fx 4300 по тесту mplayer проигрывает 720x576 mpeg2 только на половинной скорости, 16 секунд за 31-32 :) Жаль 86Box в среднем ещё сильно медленнее, там хоть эмуляция видеокарт с поддержкой оверлея есть.

Может быть когда-нибудь и cinelerra там скомпиляю. Но пока вот, забытое проприетарное зло ;)

 , ,

Andrew-R
()

Поставил macos x 10.6 на виртуалку qemu

  1. Загрузить образ https://archive.org/download/mac-os-x-snow-leopard-10.6-10a-432/Mac_OS_X_Snow_Leopard_10.6_10a432.dmg

Length: 6586892984 (6.1G) [application/x-apple-diskimage]

  1. Загрузчик UEFI

OpenCore for Legacy EFI - bootloader https://khronokernel.com/apple/silicon/2021/01/17/QEMU-AS.html

прямая ссылка https://github.com/khronokernel/khronokernel.github.io/blob/master/Binaries/OpenCore/EFI-LEGACY.img.zip?raw=true

1.5 mb но распкаковывается почти на 200 mb

  1. Грузим(ся) в qemu 9.0+
qemu-system-x86_64 -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -usb -M pc-q35-6.1 -device usb-kbd -device usb-tablet -m 2047  -hda EFI-LEGACY.img -hdb osx.qcow2  -cpu Penryn,vendor=GenuineIntel,+ssse3,+sse4.1  -boot d -bios /usr/share/edk2-ovmf-x64/OVMF_CODE.fd -display sdl,gl=on -accel kvm

Для установки с образа dmg просто добавьте ‘-cdrom some.dmg’

Мне диска на 12 Гб хватило. Звука правда нет, и сети что-то не видно .. потом ещё поковыряю.

 ,

Andrew-R
()

Самая первая версия debian на qemu

Ну, собственно, первая версия Debian запущена из под QEMU 2.0 под Windows XP, которая работает из-под QEMU 7.2.7.

 ,

ne-vlezay
()

Небольшая локальная сеть в virtualbox на qemu

Хост — всё тот же:

  • CPU: AMD FX-6300;
  • RAM: 24G;
  • SSD: Smartbuy 60G (На виртуалке с xp у меня 8.5GB) (SSD - пока что тестовый);
  • дистрибутив хоста: Devuan Daedalus 5.0;
  • QEMU: 7.2.5;
  • скрипты для управления: самописные.

Но теперь в virtualbox’е под гостевой Windows XP запущена небольшая локальная сеть…

Немного о виртуальных машинах в этой сети:

  • sw – это роутер (debian squeeze 6.0);
  • puppypc – это виртуальная машина с puppyrus 4.2;
  • ws – это виртуальная машина для работы с образами дискет (debian squeeze 6.0);
  • debian server – это виртуальная машина с debian sarge (3.1).

 , ,

ne-vlezay
()

Dell Unix и выход в интернет

На скриншоте результат моего очередного эксперимента по оживлению мертвых. В этот раз удалось оживить систему из 1992 года и выпустить ее в интернет.

Статья с описанием всех этих замечательных приключений и обзором Dell Unix тут. Особо внимательных ждет знакомство с 4м Перлом.

Заодно решил побыть в тренде и поставил Wayland в KDE, очередное адское оформение - в качестве бесплатного приложения. Угар должен продолжаться!

 dell unix, , ,

alex0x08
()

MacOS Ventura в эмуляции: Qemu + KVM

В этот раз покажу действительно красивый десктоп,чтобы умилились самые бородатые обитатели ЛОРа ;)

Ну и заодно расскажу о настройке Вентуры в эмуляторе.

OS: Mageia Linux, XFCE4
Иконки: Vimix
Оформление окон: HitoriDots4
Шрифты: Carlito Regular

Про то что KVM и Qemu настолько сильно развился честно говоря даже не подозревал, как и про возможность пробросить видеокарту целиком в эмулируемую систему. Поэтому до последнего гонял MacOS в Vmware и Virtualbox, со всеми присущими тормозами и проблемами.

Вообщем взял вот эти скрипты и чуть доработал. Получилось отдельное руководство, уже на русском. Наслаждайтесь.

P.S. Wallpaper тоже мой.

 , ,

alex0x08
()

Запустил в qemu на Arm64 винду ХР и семёрку

ХР работает шустрее семёрки, я даже в пейнте порисовал. Можно ИЕ запустить и админить айпи камеры, заточенные под ActiveX или как это пишется?

На чём запустил: Khadas VIM3, чип A311D.

Семёрка:

https://sun9-5.userapi.com/impg/j7_dO8B3uN-PxMvYCyQUCmzUqD6O-8o38RO6yQ/eKAhfp...

https://sun9-7.userapi.com/impg/E-ogFd8-UsjqyO40MWAofihG1FxR-BcTu1ddcQ/fVPpU5...

 

burato
()

links в FreeDOS в qemu

Я решил попробовать FreeDOS в qemu, и в результате получилось примерно следующее:
Для установки пакетов в freedos необходимо набрать FDNPKG.
Я в FreeDOS установил все сетевые инструменты.
Для работы сети в qemu рекомендуется устанавливать сетевой адаптер pcnet.

 , ,

ne-vlezay
()

Насколько глубоко возможно погружение?

И как узнать, ты в виртуалке или в виртуалке в виртуалке...?

 , , , ,

ukr_unix_user
()

Debian GNU/Hurd в QEMU

Вышел GNU Hurd 0.6 и я решил попробовать, что это такое и чем отличается от того, что я уже видел.
Запустил образ в QEMU, выполнил пример (можете видеть результаты на скриншоте), подробнее тут.
Вообще система стала намного быстрее запускаться, чем 0.5. Но вместо многих вызовов до сих пор заглушки, для ежедневного использования не годится.
До сих пор не умеет возвращаться в консоль, если однажды были запущены иксы. Обязательная перезагрузка после проверки файловой системы, иногда просит вручную исправлять ошибки ФС. При запуске xterm из openbox перманентный фриз, из icewm всё работает. В старой версии такого не было.

 , , ,

CYB3R
()

NetBSD/sparc32 на qemu

Поставил NetBSD/sparc32 6.1.4 вовнутрь qemu из git. Работает, правда не в SMP-режиме. Для графики (Х сервер) пришлось добавить " -g 1024x768x24" в параметры запуска qemu.

В SMP-режме падает сам qemu:

guest@slax:~$ qemu-system-sparc  -hda /mnt/sdb2/QEMU-KVM_IMG/SPARC32-netbsd-6-4gb.img -boot c -m 512 -g 1024x768x24 -M SS-10 -smp 2
qemu: fatal: Trap 0x29 while interrupts disabled, Error state
pc: 00000000  npc: 00000004
%g0-7: 00000000 00001011 00000011 00000001 00000000 1fffff08 f0006000 00000001
%o0-7: f0002000 00000000 00000000 00000000 00000000 00000000 f9f13ef0 f004f2a8
%l0-7: 400010c7 f0009f80 f0009f84 00000000 00000000 00000001 f0002000 00000000
%i0-7: f9f12000 00000000 00000000 00000000 00000000 00000000 f9f13f50 f0009f6c
%f00:  0000000000000000 0000000000000000 0000000000000000 0000000000000000
%f08:  0000000000000000 0000000000000000 0000000000000000 0000000000000000
%f16:  0000000000000000 0000000000000000 0000000000000000 0000000000000000
%f24:  0000000000000000 0000000000000000 0000000000000000 0000000000000000
psr: 400010c7 (icc: ---- SPE: SP-) wim: 00000002
fsr: 00000000 y: 00000000

Аварийный останов
guest@slax:~$

 , ,

Andrew-R
()

Ущербно ориентированное программирование

Gentoo, awesome, vim.

Продолжаю пилить ncurses gui для qemu.

Поразится глубине говнокода можно тут

https://bitbucket.org/PascalRD/qemu-manage

 , , ,

pascal
()

OSX Mavericks на Arch Linux KVM

Вчера состоялась презентация новой операционной системы OSX 10.9 Mavericks и я решил попробовать запустить ее в виртуальной машине Qemu с пробросом видеокарты AMD Radeon Sapphire 7770 Ghz Edition. На скриншоте представлен результат. Host hardware: Intel Core i5 3470, 16Gb DDR3 RAM, Intel HD2500, OCZ Agility 3 SSD 60Gb, Hitachi Sata 3 500Gb HDD, ASUS Xonar DX, Thermaltake Purepower RX 800W. Host configuration: Arch Linux 2013.10.01, syslinux bootloader, 3.11.6 kernel с патчем polarity-kvm-patch, qemu 1.6.1 с поддежкой spice, xfce 4.10, slim. / - 59GB reiserfs SSD /boot - 1Gb FAT32 SSD /home - 98Gb HDD /opt - 400Gb reiserfs HDD (/opt/Qemu - VMs) /var - 2Gb HDD

P.S.: Не ругайте сильно за OSX, целью была демонстрация возможностей ядра Linux и KVM.

 , ,

MasterSplinter777
()

Лор такой лор

        По причинам болезни пещеместных жителей, выкладываю полную версию скриншота.
        На скриншоте явно виден qemu, в котором и вертится оффтопик. Кстати, внезапно, qemu оказался очень удобен для зоопарка виртуалок. На пощупать систему — самое оно. Сейчас задумчиво смотрю в сторону Xen, т.к. перезагружаться лень, а поигорять хочется. Тем более есть на что посмотреть.
        to smilessss: В скриншотах с виндой вообще нет ничего интересного, невзирая на софт и на вм, потому что это винда, и как ты её не обмазывай, она останется виндой. В таком случае, лучше бы подтвердили вышеприведённый скриншот с Xen, т.к. там хотя бы по теме и с обоснованием нужности.

 

pikwik
()

Slackware-11 в qemu, Mplayer - 16 метров хватит всем.

Решил посмотреть, что случится если в относительно старую Слакварь попробовать поставить (скомпилировать) что-то относительно свежее и ресурсоёмкое, типа MPlayer'а с его libavcodecs.

Обкусал 11-ю Слаку до примерно 700 Мб, еле влезло со всякими разработческими штуками и Х. Далее попробовал скомпилировать MPlayer-0.90 - облом на стадии линковки. Добавил ещё виртуальный диск, 250 Мб - и там распаковал MPlayer-1.0rc4. Он-то и собрался за 21 час. На 16 метрах. gcc 3.4.6, kernel 3.8 (! на хост-машине скомпилировал), glibc 2.3.6, X 6.9.0 . Конечно, на время компиляции ничего лишнего на машине не крутилось. Однако - с 50+ метрами виртуального свопа оно пережило и configure и make. Я был приятно удивлён.

Скриншот немного фэйковый - указанное видео на неускоренном qemu с хост-процессором вида Селерон-1ГГц конечно не играется иначе как слайдшоу. Но mencoder вполне позволяет перекодировать его в нечто играбельное, пусть даже 160*120*12 fps, ASV1/pcm (Со своих экспериментов с 486 запомнил параметры).

Всё дефолтное, кроме естественно MPlayer'а и невидимого героя - gcc. Под ядром 3.8 оно тоже играется, только старт иксовых приложений почему-то заметно медленнее.

Тот же MPlayer играет 320Kbps mp3 через libmad декодер с нагрузкой гостя примерно в 34-36%, а хоста - в 52-54%. Стандартная mp3lib тормозит и скипает звук - потому как softfloat никогда не бывает достаточно быстрым (старые версии qemu пропускали плавучку насквозь в режиме x86-on-x86, новые, типа этого 1.5.50 - эмулируют).

 , ,

Andrew-R
()

Arch Linux + OSX 10.8.3

Наконец-то мне удалось запустить полностью рабочую OSX с работающим звуком, интернет-соединением, возможностью проброса pci- и usb-устройств. Вся проблема оказалась в двух небольших патчах для ядерного модуля kvm (спасибо разработчику драйвера virtio-net для OSX, Филу Джордану (Phil Jordan) - он мне подсказал решение данной проблемы). «My best guess is the interrupt polarity issue that is mentioned here: http://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/#sec_2 »

 , , ,

MasterSplinter777
()