Hanacuk 07.10.2012 18:49
Есть проблема! — XEN - дай жизни
Всем привет, решил себе на ноут XEN запилить.Ubuntu 12.04 x64, Linux compname 3.6.0-030600-generic #201209302035 SMP Mon Oct 1 00:36:01 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Мноооого прочитал чего и получилась каша в голове, или анаком, кому как нравится :-)
Остановился на мой взгляд над самой для меня понятной инструкцией, но кроме того, как установить XEN и загрузить его ядро - ни чего не вышло.
Изменил скрипт создания машины под себя
config.cfg
Команда myname@compname:~$ sudo xm create /media/Data/XEN/Windows/config.cfg
выдаёт ошибку Error: Domain 'windows' does not exist.
Привожу логи:
qemu-dm-windows.log
domid: 3
-c config qemu network with xen bridge for
tap3.0 eth0
can't add tap3.0 to bridge eth0: Operation not supported
/etc/xen/scripts/qemu-ifup: could not launch network script
Could not initialize device 'tap'
-c config qemu network with xen bridge for
tap3.0 eth0
can't add tap3.0 to bridge eth0: Operation not supported
/etc/xen/scripts/qemu-ifup: could not launch network script
Could not initialize device 'tap'
xend.log - Пусто
xen-hotplug.log
RTNETLINK answers: Operation not supported
can't add vif3.0 to bridge eth0: Operation not supported
Cannot find device "tap3.0"
can't add vif3.0 to bridge eth0: Operation not supported
Cannot find device "tap3.0"
Насколько я понял - не удалось сделать бридж, т.е. проблеммы с сетевыми устройствами
Сам я в интернет выхожу через андройд планшет по USB кабелю, и моё соеденение usb0, но подставив его вместо eth0 в 3-ей строке config.cfg таже ошибка.
Привожу в довесок ко всему вывод ifconfig
eth0 Link encap:Ethernet HWaddr a0:b3:cc:45:40:09
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1733 errors:0 dropped:0 overruns:0 frame:0
TX packets:1733 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:155337 (155.3 KB) TX bytes:155337 (155.3 KB)
usb0 Link encap:Ethernet HWaddr 02:4c:47:42:34:33
inet addr:192.168.42.88 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::4c:47ff:fe42:3433/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:29237 errors:1 dropped:0 overruns:0 frame:1
TX packets:23181 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33576588 (33.5 MB) TX bytes:3273602 (3.2 MB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1733 errors:0 dropped:0 overruns:0 frame:0
TX packets:1733 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:155337 (155.3 KB) TX bytes:155337 (155.3 KB)
usb0 Link encap:Ethernet HWaddr 02:4c:47:42:34:33
inet addr:192.168.42.88 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::4c:47ff:fe42:3433/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:29237 errors:1 dropped:0 overruns:0 frame:1
TX packets:23181 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33576588 (33.5 MB) TX bytes:3273602 (3.2 MB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush xen-pciback.hide=(01:00.0)"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush xen-pciback.hide=(01:00.0)"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
Знать не знаю что ещё делать, связался через контакт с автором статьи, приятный отзывчивый парень, был не против помочь мне, но кроме чем закоментировать 3-юю строку конфига, и тем самым отказаться от поддержки сети, что в свою очередь всё же привело к запуску домена Windows ни к чему не привели.
Подключение к машине по VNC, через Remina на адрес сервера 127.0.0.1 ни к чему не приводят, нету такого сервера (локального, меня же и нет (: и всё тут)
Значит нужно добиваться поддержки сети. Какие будут предложения ? :-)
bridge-utils я пока не в курсе, пишу с планшета.
По поводу KVM - спасибо, не слышал, интересно, а смогу ли я использовать винду в линуксе для игрушек при таком подходе к эмуляции ?
А вот по поводу вашего совета, про виртуальный бридж, не могли бы вы дать исчерпывающий ответ, я боюсь что не допру самостоятельно что да как
Спасибо
По поводу KVM - спасибо, не слышал, интересно, а смогу ли я использовать винду в линуксе для игрушек при таком подходе к эмуляции ?
А вот по поводу вашего совета, про виртуальный бридж, не могли бы вы дать исчерпывающий ответ, я боюсь что не допру самостоятельно что да как
Спасибо
Исчерпывающий ответ могу дать если хоть как-то опишите какую сеть хотите, тупой бридж, NAT или роутинг?
В KVM можно использовать любые виртуалки, в том числе и солярис и тучу чего еще. Там помимо апп. виртуализации есть и софтовая, так что можете хоть m68k эмулировать.
По поводу игр, там конечно тоже есть пробросы pci-устройств, но проц/мать должны поддерживать VT-x (впрочем как и при ксене).
Но вообще это тернистый путь, ради такой простой цели. Я бы посоветовал дуалбут.
В KVM можно использовать любые виртуалки, в том числе и солярис и тучу чего еще. Там помимо апп. виртуализации есть и софтовая, так что можете хоть m68k эмулировать.
По поводу игр, там конечно тоже есть пробросы pci-устройств, но проц/мать должны поддерживать VT-x (впрочем как и при ксене).
Но вообще это тернистый путь, ради такой простой цели. Я бы посоветовал дуалбут.
Кроме того, тут
address = 'assigned-ip'
netmask = '255.255.255.XXX'
необходимо указывать какие-то осмысленные значения
address = 'assigned-ip'
netmask = '255.255.255.XXX'
необходимо указывать какие-то осмысленные значения
Автор сказал что так и должно быть, я тоже сперва принял это как переменные для замены под свои нужды
В официальной документации таких параметров нет. Можете в этом убедиться http://www.google.ru/url?sa=t&rct;=j&q;=&esrc;=s&source;=web&cd;=1&cad;=rja&ved;=0CBwQFjAA&url;=http%3A%2F%2Fwww.xen.org%2Ffiles%2FSupport%2FXenConfigurationDetails.pdf&ei;=su5xUKKoDdCP4gSm04GACA&usg;=AFQjCNGxXbb2XFZnL2cv1ydOIWoAd26ncQ&sig2;=cx4Ga76GMmH9lNmPgSvn3w
Вся сеть обычно конфигурируется в параметре vif.
Вся сеть обычно конфигурируется в параметре vif.
А как называется, что бы виртуалка видела сеть хоста и интернет ?
Как проверить подходит мать или нет ?
Дуал бут вы имеете ввиду две отдельные системы ? Наоборот хочу уйти от этого максимально далеко
Как проверить подходит мать или нет ?
Дуал бут вы имеете ввиду две отдельные системы ? Наоборот хочу уйти от этого максимально далеко
>А как называется, что бы виртуалка видела сеть хоста и интернет ?
Это можно реализовать с помощью всех трех вышеописанных методов. Возможно вам будет проще именно NAT
>Как проверить подходит мать или нет ?
Мат. плата должна поддерживать IOMMU. Можете погрепать dmesg на предмет записей IOMMU и DMAR
>Дуал бут вы имеете ввиду две отдельные системы ? Наоборот хочу уйти от этого максимально далек
Почему? Это самый простой и надежный путь для вашей цели.
Это можно реализовать с помощью всех трех вышеописанных методов. Возможно вам будет проще именно NAT
>Как проверить подходит мать или нет ?
Мат. плата должна поддерживать IOMMU. Можете погрепать dmesg на предмет записей IOMMU и DMAR
>Дуал бут вы имеете ввиду две отдельные системы ? Наоборот хочу уйти от этого максимально далек
Почему? Это самый простой и надежный путь для вашей цели.
kvm
+
настраивается просто
маленькие потери производительности
у меня на ноуте работает уже 2 год ;)
-
нет паравиртуализации видеокарты, нужно пробрасывать pci устройтво
с установленным pulseaudio звук мягко говоря странный
+
настраивается просто
маленькие потери производительности
у меня на ноуте работает уже 2 год ;)
-
нет паравиртуализации видеокарты, нужно пробрасывать pci устройтво
с установленным pulseaudio звук мягко говоря странный
насколько знаю там с 3d все плохо, есть вариант с пробросом реальной видеокары в виртуалку.
в virtualbox с 3d дела обстоят лучше,
в virtualbox с 3d дела обстоят лучше,
myname@compname:~$ dmesg | grep IOMMU
myname@compname:~$ dmesg | grep DMAR
Значит не судьба ? ((
myname@compname:~$ dmesg | grep DMAR
Значит не судьба ? ((
Нет, значит скорее всего они как минимум не включены по умолчанию. В той же инструкции указано как это сделать:
GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush xen-pciback.hide=(04:00.0)(04:00.1)"
GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush xen-pciback.hide=(04:00.0)(04:00.1)"
Ну у меня все было включено кроме amd_iommu=fullflush
П.С. Добавил в шапку свой /etc/default/grub
П.С. Добавил в шапку свой /etc/default/grub
Оффтоп, но не советую на ноут ставить XEN, много проблем. Если можете обойтись KVM, то всячески советую.
И кстати вроде нельзя в качестве моста указывать реальный интерфейс. Нужно сделать виртуальный бридж, с привязкой на реальный интерфейс, и потом его указывать в конфиге.
что-то вроде
brctl addbr br0
brctl br0 addif eth0
выставить всякие stp, fd, hello, timeout
и в конфиге использовать bridge=br0