патч для QEMU для сборки 4-ым GCC [SOLVEd] (thnx RDron)

Всем привет!
Решил забить на virtualbox и поставить Qemu. Да вот незадача-то - с 4-ым гцц не собираеццо. Нарыл патч http://www.busybox.net/downloads/qemu/qemu-gcc-4-all.patch а вот как его применять не знаю (стыдно). Опишите, пожалуйста, алгоритм действий. В обход портежа ставить как то не гарно... Простите великодушно, если вопрос показался тупым, гуглить времени нет =(

http://en.gentoo-wiki.com/wik

Нужно модифицировать ебилд, который собираемся использовать.

http://en.gentoo-wiki.com/wiki/Portage_Overlay#Creating_a_local_overlay
http://devmanual.gentoo.org/ebuild-writing/functions/src_unpack/epatch/index.html

Спасибо! Сейчас попробую

Спасибо! Сейчас попробую

Патч для QEMU

Мне кажется, что патч ты вабрал не тот, вот, что написано в твоём патче:

Patches needed to get qemu (tested up through 0.8.1) to build under GCC 4.x.
Note that for 0.9.0 this isn't enough, see
http://www.kju-app.org/proj/browser/trunk/patches/qemu-0.9.0-gcc4.patch (ссылка не работает)

Или тебе нужна версия QEMU 0.8.1? Если нет то скачай, что нибудь более подходящее:

Вот для QEMU 0.9.0
http://oe.linuxtogo.org/~zecke/git/oe/openembedded.dev/packages/qemu/qemu-0.9.0+cvs20070701/qemu-0.9.0-gcc4.patch

Вот для QEMU 0.9.1
http://trac.kju-app.org/browser/branches/0_9_1/patches/qemu-0.9.1-gcc4.patch?format=raw

Может есть более хорошие патчи, чем те, что я привёл... Я сам не пробовал их использовать (ставил GCC 3 для сборки QEMU).
Если не будут правильно работать погугли там много разных вариантов.
Ещё я для себя поправил ebuild, чтобы он не применял патч "CVE-2008-0928", если его применить, то функция сохранения виртуальной машины (снапшот) будет портить образ виртуального HDD.

Если нужен GUI, то есть неплохой вариант http://sourceforge.net/projects/aqemu (тут можно и ebuild скачать).

Во, то что надо, СПАСИБО! А

Во, то что надо, СПАСИБО! А то чуть было не пропатчил уже...

Что-то я немного запутался...

Что-то я немного запутался... я так понял, что в сам ебилд нужно воткнуть

src_unpack() {
  unpack ${A}
  cd "${S}"
  epatch "${FILESDIR}/${P}-qemu-0.9.1-gcc4.patch

и всё? сам патч надо класть в папку files или можно с ебилдом в одной папке?

Вообще-то области применения

Вообще-то области применения куэму и виртуалбокса несколько разные. Насколько помню куему особой скоростью эмуляции PC (x86_32) не отличался никогда, что в общем-то простительно, ибо пакет позиционируется как многоплатформенный и многоцелевой эмулятор . Хуже него PC эмулирует разве что bochs (полный отстой, поскольку позиционируется именно как эмулятор PC). Полагаю в сфере эмуляции PC вас ждет разочарование. Прикрутить аппаратную ядерную виртуализацию (kvm) лично мне, помнится, не удалось. Так что, как qemu ведет себя с kvm не скажу. Отпишитесь о результатах, если не сложно.

Хорошо, если соберу отпишу

Хорошо, если соберу отпишу тут же

qemu-kvm

С KVM QEMU очень быстр, думаю наравне с VirtualBox.
Обе программы используют схожие механизмы работы (в частности аппаратная виртуализация есть и там и там), а в боксе есть код из QEMU.
Только QEMU без "примочек" в виде kqemu и kvm исполняет весь код полностью на виртуальном CPU, а бокс только когда, не может выполнить код на реальном CPU. Вот для этого они и взяли часть QEMU.
Вообще количество ОС которые заработали у меня на QEMU значительно больше чем на боксе (я про x86 совместимые).
Что ещё очень понравилось в QEMU это возможность тонкой настойки. Очень много опций, есть практически всё, что душе угодно.
В VirtualBox сильно обломило, что я на своём Athlon 64 3500+ (и 64 битной ОС) не могу запустить 64 битную гостевую ОС... оказалось, что обязательно нужна поддержка kvm, а мой процессор её не имеет... В QEMU я даже на 32 битном процессоре в 32 битной ОС запускал 64 битные системы.
В общем юзаю QEMU, и полностью ей доволен :)

Вобщем, пошёл напролом

Вобщем, пошёл напролом (собрал 3-им гцц), установил qemu, kqemu и qemulator. Добавился в группу qemu. Запустил оболочку, создал машину (без жёсткого диска), подключил образ cd. Запускаю и ничего не происходит, процесс висит а окна с машиной нет. Вывод консоли:

qemu called with command: qemu -M pc -std-vga -full-screen -m 256 -cdrom /home/compiler/mandriva-linux-one-2009-KDE4-int-cdrom-i586.iso -net nic,vlan=0 -net user,vlan=0,hostname=emu  -monitor pty -boot d
started qemu with pid: 13394

и всё. В чём может быть проблема?

Не знаю, у меня qemu с такими

Не знаю, у меня qemu с такими параметрами работает...
Попробуй просто в консоли: qemu -cdrom /home/compiler/mandriva-linux-one-2009-KDE4-int-cdrom-i586.iso
Напиши, что QEMU на это скажет (если не заработает).
И вообще вместо qemulator, лучше воспользуйся AQEMU (если не смущает, что он использует Qt4).
Вот ebuild: http://downloads.sourceforge.net/aqemu/ebuild-aqemu-0.6.tar.bz2

И ещё, чтобы работал KQEMU нужно, чтобы ты был в группе kqemu.

Хм, странно - ноль эмоций.

Хм, странно - ноль эмоций. Ввёл команду, тупо висит. В группе kquemu состою, а насчёт aqemu... я уж тогда на виртуалбокс перейду =) ради него собссно qt4 и ставил =)

Даже окно QEMU не

Даже окно QEMU не появляется?
Если так, попробуй просто выполнить qemu без аргументов (в ответ должна появиться справка), хоть узнаешь работает ли вообще QEMU.

Поробуй ещё:
1. Укажи вместо твоего образа диска другой.
2. Вместо "qemu", запусти "qemu-system-x86_64".

Окно не появляется, на

Окно не появляется, на команду без аргументов вылазит справка - куему работает, другие образы тоже не цепляются... хз чё такое, виртуалбокс на ура пашет

С какими флагами собран

С какими флагами собран "app-emulation/qemu-softmmu"?
qemu-system-x86_64 проверял?

И ещё я вижу комп у тебя на 64 битном процессоре, ОС тоже 64 битная? Если да, то KQEMU будет работать только на qemu-system-x86_64 бинарнике.

compiler@localhost ~ $ sudo

compiler@localhost ~ $ sudo emerge -pv qemu-softmmu

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] app-emulation/qemu-softmmu-0.9.1-r3  USE="-alsa -gnutls -kqemu -sdl" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

специально в package.use ничего не указывал. Операционка 32-х битная. На всякий пожарный мой make.conf:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-O2 -mtune=i686 -pipe -msse3 -msse2 -msse"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
USE="-qt -kde sse sse2 sse3 mmx 3dnow gtk gnome ncurses truetype cdr dvd\
dvdr hal -qt2 -qt3 -qt4 X nls=utf8 userlocales win32codecs mp3 aac xine\
x264 wavpack vorbis pdf oss opengl ogg firefox mplayer jpeg flac nvidia"
MAKEOPTS="-j3"
VIDEO_CARDS="nvidia"
ACCEPT_KEYWORDS="x86"
GENTOO_MIRRORS="ftp://ftp.corbina.net/pub/Linux/gentoo/"
GENTOO_MIRRORS="ftp://mirror.aiya.ru/pub/gentoo/"
GENTOO_MIRRORS="ftp://ftp.org.kemsu.ru/gentoo"
GENTOO_MIRRORS="ftp://ftp.chg.ru/pub/Linux/distributions/gentoo"
GENTOO_MIRRORS="http://ftp.chg.ru/pub/Linux/distributions/gentoo"
LINGUAS="ru en"
FEATURES="parallel-fetch"
PORTDIR_OVERLAY="/usr/local/portage"

>>>В VirtualBox сильно

>>>В VirtualBox сильно обломило, что я на своём Athlon 64 3500+ (и 64 битной ОС) не могу запустить 64 битную гостевую ОС.
eix virtualbox
.....
Description: Softwarefamily of powerful x86 virtualization

Полагаю,что x86 и x86_64 несколько разные архитектуры. Данный функционал в виртуалбоксе не заявлен.

>>Только QEMU без "примочек" в виде kqemu и kvm
>>оказалось, что обязательно нужна поддержка kvm, а мой процессор её не имеет
>>Athlon 64 3500+

По этому вопросу есть прямо противоположное мнение - http://www.ixbt.com/cm/virtualization-h.shtml
Кто прав?

Начиная с VirtualBox 2.0,

Начиная с VirtualBox 2.0, поддерживаются и 64-битные guest'ы.

Да, в процессоре Athlon 64

Да, в процессоре Athlon 64 3500+ есть поддержка аппаратной виртуализации, но ТОЛЬКО в версии AM2, а у меня S939.
Я пробовал собирать KVM, но при загрузке модуля, было сообщение об ошибке, что мой процессор не поддерживается.
Про то, что VirtualBox поддерживает 64 битные гостевые системы знаю, я же про это писал выше, но для этого нужна поддержка аппаратной виртуализации (мне сам бокс это говорил, когда я пытался запустить 64 битный LiveCD), и если не ошибаюсь ОС должна быть тоже 64 битной.

Tormentor:
Ну, теперь понятно, в чём дело, ты собрал QEMU без графики (она ведь умеет работать даже в консоли).
Пересобери с флагом "sdl".
Ты говорил, что поставил KQEMU, а поддержку почему не включил в QEMU - флаг "kqemu".
Звук в виртуальных машинах тебе нужен? Если да то флаг "alsa".
Ну ещё я бы включил флаг "gnutls", чтобы можно было удалённо управлять виртуальной машиной.

В общем включи все флаги "alsa gnutls kqemu sdl".

Большое спасибо! Щас

Большое спасибо! Щас попробую.
ЗЫЖ а как можно узнать, поддерживает твой процессор KVM или нет? В тех.документации ничего не нашёл, хотя наврядли там напишут =).

Чтобы узнать поддерживает

Чтобы узнать поддерживает твой процессор аппаратную виртуализацию, проверь наличие vmx или svm флагов в файле /proc/cpuinfo
Для этого можно ввести: egrep '^flags.*(vmx|svm)' /proc/cpuinfo

compiler@localhost ~ $ cat

compiler@localhost ~ $ cat /proc/cpuinfo | grep svm
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch

svm присутствует, vmx нет. Для поддержки нужно оба флага или любой из них?

Любой. Я просто не помню,

Любой. Я просто не помню, точно у Intel вроде VMX, а у AMD SVM, поэтому оба и привёл.

Ну раз у тебя есть поддержка

Ну раз у тебя есть поддержка KVM, то лучше использовать KVM-QEMU - это app-emulation/kvm (не забудь про нужные тебе флаги).
В ядре KVM включён? KQEMU и KVM вместе не работают, так, что если перейдёшь на KVM-QEMU то KQEMU тебе не нужна.

Спасибо Вам большое! Всё

Спасибо Вам большое! Всё работает! За KVM отдельное спасибо!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".