Mac OS X в эмуляторе QEMU под Linux

    Здравствуйте хабровчане. Недавно понадобилось писать на Objective C под Mac OS X. Железо у меня не самое подходящее для всяких сборок, да и сидеть полностью в этой ОС религия не позволяет. Решил поставить Mac OS X в на виртуальную машину Qemu в Linux.

    Вот список всего, что я использовал:

    -Gentoo Linux 64 bit
    -Qemu 0.10.5
    -KVM (Kernel-based Virtual Machine) 88-r1
    -Поддержка KVM в ядре Linux
    -Процессор с поддержкой Intel Virtualization Technology (в моем случае это Core2Duo E6400)
    -Linux kernel>=2.6.20
    -Сборка Mac OS X iATKOS v7 (Leopard 10.5.7)

    Переходим к настройке, в ядре необходимо добавить KVM. Качаем исходники, распаковываем, запускаем make menuconfig:
    Processor type and features->Paravirtualized guest support
    Отмечаем:
    -KVM paravirtualized clock
    -KVM Guest support
    -Paravirtualization layer for spinlocks

    Далее в корне настройки ядра появляется новая опция Virtualization
    Переходим туда и отмечаем:
    -Kernel-based Virtual Machine (KVM) support
    -KVM for Intel processors support
    -KVM trace support
    -PCI driver for virtio devices
    -Virtio balloon driver

    Собираем, устанавливаем, и перезагружаемся с новым ядром.
    Теперь устанавливаем Qemu с поддержкой KVM, и сам KVM
    USE=«kvm» emerge qemu
    emerge kvm

    Теперь переходим к шаманствам с виртуальной машиной.
    Создаем виртуальный жесткий диск:
    qemu-img create -f raw macos.disk 30G

    Если собираемся запускать Qemu не от рута, необходимо дать прав другим пользователям на чтение/запись на устройство /dev/kvm:
    chmod 0666 /dev/kvm

    Запускаем:
    kvm -boot d -hda macos.disk -m 900 -net nic,model=rtl8139 -net tap -usb -no-reboot -no-shutdown -vga std -cpu core2duo -cdrom 10.5.7.iso
    -hda путь к нашему виртуальному жесткому диску
    -cdrom пусть к образу
    -no-shutdown -no-reboot необходимы для того чтобы в случае ошибки окно эмулятора «замораживалось» и можно было прочитать ошибку
    -net nic,model=rtl8139 эмулируем сетевую карту Realtek 8139
    -net tap чтобы гостевая система видела по сети хостящую необходим TAP девайс

    -m 900 количество памяти отдаваемое гостевой системе
    -boot d грузимся с сидирома
    -usb поддержка USB
    -cpu core2duo эмуляция процессора Core2Duo

    Грузим диск. Размечаем жесктий диск при помощи Disk Utility (выбираем из меню сверху).

    Настройка драйверов.
    Перед тем как нажать кнопку Install обратите вниманине на кнопку Customize

    Вещи которые нам необходимо выбрать:
    x86 ACPI
    Disabler
    OHR
    Remove TyMCE
    CardBus
    USB
    Intel SATA/IDE
    Kernels
    Apple PS/2

    Можно устанавливать. Ждем примерно 30 минут.
    Mac OS X установлена, настраиваем.
    Теперь в строке для запуска меняем -boot d на -boot c чтобы грузится с жесткого диска.
    Загружаемся. Теперь надо придумать чтонибудь с сетью.
    Ищем в интернете PCGenRTL8139Ethernet.kext, устанавливаем его, очень легко установить с помощью программы kextinstaller. Пока нету сети необходимые файлы передавать в систему можно через флешку например, добавляем -hdb /dev/sdb (путь к устройству флешки)
    Перезагржаем гостевую ОС.
    Теперь чтобы сеть в Mac OS X заработала необходимо зайти в управление сетью, выбрать Ethernet девайс, выключить его (Off), а затем включить и настроить нужный IP (например 192.168.1.1), а в хостящей системе настроить девайс tap0:
    ifconfig tap0 192.168.1.2

    Вот вообщем то и все.

    image

    UPD. Автор поста появился на хабре vinnishtein
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 41

      0
      А интерфейс без аппаратного ускорения не сильно лагает?
        0
        Всмысле без видео? ну по мне довольно не сильно, но OpenGL скринсейвер тормозит на полный экран.
        0
        И какова производительность? Пробовал установленные образы в вмваре образы — сильно тормозит конечно.
          +1
          Производительность ничем не измерял, приложения открываются адекватно, так как если бы это была реальная система. С помощью Xcode проекты шустро собираются.
            +3
            Главная фишка это использование KVM, без него тормозит ужасно конечно.
            • НЛО прилетело и опубликовало эту надпись здесь
              +1
              Ну, это вмваре. Топикстартер говорит о KVM — а значит тормозить не должно.
              0
              Стоп! Оно работает нормльно по скорости, как я понял? о_О
              Просто в VMWare оно ЖУТКО тормозит(скачивал образы из сети).
                0
                Работает по скорости нормально, кроме графики. Проверял на скринсейвере на весь экран-тормозит.
                  0
                  Насколько я понял, то под графикой имеется ввиду только OGL?
                  Интерфейс не тормозит? На графику то мне параллельно ) Не для развлечений сабж же )
                    0
                    Интерфейс работает немного рывками, например если из панельки снизу(извините не знаю названия) запустить приложение, иконка начинает прыгать, но что-то как-то не полностью плавно.
                      0
                      Хм… а вы пробовали в VMWare?
                      Вдруг то, что вы считаете «без тормозов» на самом деле будет таким же, как в нем?
                +1
                Допустим я достал сабж: qemu-0.10.6-windows.zip
                Как насчет поддержки виртуализации у винды?
                  0
                  работает по скорости нормально, кроме графики. Проверял на скринсейвере на весь экран-тормозит.
                    +4
                    Сорри, не то ответил))) Как с этим всем дела обстоят под виндой не знаю, но если народ хочет, то могу сделать продолжение под винду.
                      +4
                      Народ очень сильно хочет :)
                        0
                        Очень хочется.
                        А какие процессоры поддерживают это?
                        На AMD будет работать? На двуядернике на AM2 сокете?
                          0
                          Под AMD есть аналогичная технология виртуализации, к сожалению сам ни разу AMD не трогал о производительности сказать не могу.
                          +3
                          KVM под винду? O_O
                            0
                            Под винду ускорения виртуализации поддерживает эмулятор VirtualBox, возможно на нем все будет работать нормально.
                            0
                            Напишите, пожалуйста.
                        +1
                        готовый образ бы, да на рапиду… :)
                          +1
                          Автор забыл указать некоторые полезности:
                          qemu под линуксом позволяет
                          1. делать горячую замену дисков (сд, флоппи, винты подключать), в т.ч. все из образов
                          2. отдавать виртуальной системе доступы к usb шине, что позволяет устанавливать дрова, которые есть только под оффтопик

                          Скорость работы — вполне, вполне. В jagget aliance 2, например, нормально играется (из-под ХР), без тормозов на существенно более слабом железе.

                          Одно время я держал образы полусотни систем с разными наборами софта для тестов. Вообщем, очень полезная штука для вебразработок.
                            0
                            Да, а acpi в qemu лучше отключать.
                            0
                            это что такая за хитрая «Сборка Mac OS X iATKOS v7 (Leopard 10.5.7)»? Хакнутая чтоли?

                            на QEMU-KVM и нормальную Mac OS X от Apple можно запустить

                            alex.csgraf.de/self/?part/projects&folder/Qemu%20OSX&type/&project/projects¶meters/id=Qemu%20OSX
                              0
                              Да это хакнутая сборка, настоящих от Apple в руки не попадалось, пробовал еще на сборках iDeneb, но не пошло.
                                0
                                Настоящие берутся там же, где и хакнутые :)
                              +7
                              А возможно ли сабж заставить работать в VirtualBox?
                                +8
                                Раз Вас тема так заинтересовала, то попозже сделаю под виндой и VirtualBox. Если все удстся ждите поста.
                                  0
                                  Более чем! Тем более что VBox основан на QEmu.
                                  Очень ждем :)
                                0
                                А как Ваш компьютер в Гигагерцах и Гигабайтах, в смысле какая частота и сколько памяти?
                                  0
                                  процессор core2Duo E6400 базовая частота 2.13 Ггц, разогнан до 3.2Ггц
                                  2 Гигабайта памяти, под гостевую систему выделял 900.
                                  Количество памяти выделяйте на свое усмотрение, чтоб и гостевую не обидеть, и себя не обделить
                                    0
                                    На более слабых тоже все будет нормально. Памяти бы только побольше. Я работал на qemu с ноута
                                    core duo 1.8 (НЕ core 2!!! переходная версия проца, весьма мерзкая), 1 гиг памяти. Системе выделял 512мегов.
                                  0
                                  Небольшая поправка.
                                  emerge qemu в данном случае не нужен.
                                  kvm приходящий по emerge kvm это и есть специально заточенная под работу с /dev/kvm и только под архитектуру x86/x86_64 версия qemu :)
                                  ну и наверное стоит в ядре включить tun/tap
                                    0
                                    да, и поставить bridge-utils еще нужно, вдруг у кого не стоит :)
                                      0
                                      и iproute2 тоже не забыть :)
                                        0
                                        А обновлять систему установленную таким образом возможно?
                                          0
                                          Три раза пытался установить — падает и усё. И ставится не 30 минут а около 1,5 часа, хотя в самом инсталлире ничего не тормозило — интерфейс шустренько прорисовывался.
                                          Может автор поделится образом с установленной системой?
                                            0
                                            поставил как написано но чтото не грузится…
                                              0
                                              тупо черный экран и стоппед в консоль не ругается…
                                              и да gentoo ~amd64
                                              проц атлон 3600+
                                              сборка iDeneb v1.3 10.5.5
                                              0
                                              euse -E qemu
                                              emerge -v virt-manager

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое