LINUX.ORG.RU

Установка QEMU в Gentoo без KVM

 , ,


0

2

Я хочу установить QEMU для эмуляции arm, в том числе, чтобы делать chroot. Насколько я понял, KVM мне в таком случае не нужно, к тому же я использую VirtualBox. В общем, я не хочу устанавливать модуль KVM.

Насколько я знаю, если в QEMU не используется KVM, то используется Tiny Code Generator (TCG).

Но глядя в ebuild, я вижу, что не предусмотрена установка QEMU без KVM, если хост - Linux. Вот фрагмент:

if use kernel_linux && kernel_is lt 2 6 25; then
                eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
        elif use kernel_linux; then
                if ! linux_config_exists; then
                        eerror "Unable to check your kernel for KVM support"
                else
                        CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
                        ERROR_KVM="You must enable KVM in your kernel to continue"
                        ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
                        ERROR_KVM_AMD+=" your kernel configuration."
                        ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
                        ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
                        ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
                        ERROR_TUN+=" into your kernel or loaded as a module to use the"
                        ERROR_TUN+=" virtual network device if using -net tap."
                        ERROR_BRIDGE="You will also need support for 802.1d"
                        ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
                        use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
                        ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
                        ERROR_VHOST_NET+=" support"

                        if use amd64 || use x86 || use amd64-linux || use x86-linux; then
                                CONFIG_CHECK+=" ~KVM_AMD ~KVM_INTEL"
                        fi

                        use python && CONFIG_CHECK+=" ~DEBUG_FS"
                        ERROR_DEBUG_FS="debugFS support required for kvm_stat"

                        # Now do the actual checks setup above
                        check_extra_config
                fi
        fi
И я не могу сделать что-то типа
KERNEL="-linux" emerge -av app-emulation/qemu

Что делать? Я что-то не понял или нужно действительно открывать баг-репорт в bugs.gentoo.org?



Последнее исправление: MyLittleGentoo (всего исправлений: 1)

Помести ebuild в локальный overlay, исправь его как тебе нужно и поставь.

Попробуй выключить флаг kernel_linux.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

так установи qemu, но не используй kvm, в чем проблема?

kep
()

Выпили эту секцию в локальном оверлее

Поддержка kvm включается соответствующей опцией при запуске(accel=kvm), а не пересборкой qemu. Собственно тебе нужно собрать qemu и использовать опцию accel=tcg в ключе -machine

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от kostik87

Как выключить? Я пробовал через USE, не получается.

 # USE="-kernel_linux" emerge -av1 qemu 

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

Calculating dependencies... done!
[ebuild   R    ] app-emulation/qemu-2.5.0-r3::gentoo  USE="aio alsa caps curl fdt filecaps gnutls jpeg ncurses nls opengl pin-upstream-blobs png pulseaudio seccomp static-user threads uuid vhost-net vnc xattr -accessibility -bluetooth -debug (-glusterfs) -gtk -gtk2 -infiniband -iscsi -lzo -nfs -numa -python -rbd -sasl -sdl -sdl2 (-selinux) -smartcard -snappy -spice -ssh -static -static-softmmu -systemtap -tci {-test} -usb -usbredir -vde -virgl -virtfs -vte -xen -xfs" LINGUAS="-de_DE -fr_FR -hu -it -tr -zh_CN" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="arm -aarch64 -alpha -cris -i386 -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -or32 -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -x86_64 -xtensa -xtensaeb" QEMU_USER_TARGETS="arm -aarch64 -alpha -armeb -cris -i386 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc -ppc64 -ppc64abi32 -ppc64le -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -tilegx -unicore32 -x86_64" 0 KiB

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

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests
>>> Running pre-merge checks for app-emulation/qemu-2.5.0-r3
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found kernel object directory:
 *     /lib/modules/4.4.6-gentoo/build
 * Found sources for kernel version:
 *     4.4.6-gentoo
 * Checking for suitable kernel configuration options...
 *   You must enable KVM in your kernel to continue
 *   You will also need support for 802.1d Ethernet Bridging for some network configurations.
 *   You must enable VHOST_NET to have vhost-net support
 *   If you have an AMD CPU, you must enable KVM_AMD in your kernel configuration.
 *   If you have an Intel CPU, you must enable KVM_INTEL in your kernel configuration.
 * Please check to make sure these options are set correctly.
 * Failure to do so may cause unexpected problems.
Конечно, сборка продолжается дальше, но я хочу убрать сообщения об ошибке, и лучше всего, если исправление будет в апстриме (например, сделать отдельно флаг kvm).

MyLittleGentoo
() автор топика

Десять килобайт решил сэкономить, балбес?

anonymous
()
Ответ на: комментарий от Pinkbyte

Спасибо. На счёт убирания секции в локальном оверлее - это понятно.

А как на счёт исправления в главном дереве, например, добавкой отдельного флага kvm?

MyLittleGentoo
() автор топика
Ответ на: комментарий от MyLittleGentoo

Конечно, сборка продолжается дальше, но я хочу убрать сообщения об ошибке, и лучше всего, если исправление будет в апстриме

Зачем? Это не ошибка, а лишь рекомендации о требуемых опциях в ядре для использования kvm. Тем более сборка продолжается.

kostik87 ★★★★★
()
Ответ на: комментарий от MyLittleGentoo

CONFIG_CHECK=«~KVM ~TUN ~BRIDGE»

Курим linux-info.eclass

# @ECLASS-VARIABLE: CONFIG_CHECK
# @DESCRIPTION:
# A string containing a list of .config options to check for before
# proceeding with the install.
#
#   e.g.: CONFIG_CHECK=«MTRR»
#
# You can also check that an option doesn't exist by
# prepending it with an exclamation mark (!).
#
#   e.g.: CONFIG_CHECK="!MTRR"
# To simply warn about a missing option, prepend a '~'.
# It may be combined with '!'

Это warning, а не ошибка. Вводить USE-флаг только для того чтобы погасить некритичный warning - идея так себе.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Перфекционист во мне говорит, что warning не должен там быть, если я точно знаю, что хочу сделать. А warning'и только засоряют логи, которые потом по e-mail скидываются с разных компов (особенно, если рулить ими с помощью puppet/ansible). И нужно ещё помнить, что вот этот warning можно игнорировать, а тут нужно на него обратить внимание.

IMHO, должен быть способ подавить это сообщение. Как ты считаешь?

MyLittleGentoo
() автор топика
Ответ на: комментарий от MyLittleGentoo

https://wiki.gentoo.org/wiki/Portage_log, читал?

Можно предложить патч на eclass(например гасить данные логи при какой-нибудь включенной переменной окружения - у нас для таких случаев есть I_KNOW_WHAT_I_AM_DOING). Patches are welcome.

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.