Инсталляция Xen из архива исходных текстов
Материал из Xgu.ru
- Короткий URL: xen/source
Эта страница, пока что — сборище заготовок. |
Содержание |
[править] Инсталляция зависимостей
Для использования Xen понадобятся пакеты:
bridge-utils iproute udev
Для более производительной работы домена 0 поверх гипервизора в 64-разрядных системах нужно установить пакет:
libc6-xen
Для 32-хразрядных систем он не нужен
Для сборки в Debian GNU/Linux необходимо установить пакеты:
libncurses5-dev gawk libx11-dev libssl-dev python-dev \ gcc \ libsdl1.2-dev \ make uuid-dev libasound2-dev \ libc6-dev \ bin86 bcc \ libvncserver-dev \ gettext \ libpci-dev \ latex-make ghostscript tetex-extra \ texinfo bzip2 patch \ zlib1g-dev \ git-core \ iasl
Если искходный код будет скачиваться из репозитория, то нужно проинсталлировать Mercurial:
mercurial
[править] Получение исходного кода Xen
Исходный код Xen, как и многих других opensource-проектов, можно получить одним из двух способов:
- скачать архив исходного кода;
- получить код из репозитория.
Первый метод используется в случаях, когда нужен код определённой версии (но и второй способ здесь прекрасно работает), а второй — когда нужно получить код, для которого архив не делали. Как правило, это относится к наиболее свежему коду или коду, для которого существует определённый патч (например, такой как патч Kemari).
[править] Получение архива исходных кодов
Архив исходных кодов можно скачать со страницы:
[править] Получение Xen из репозитория Mercurial
Для получения кода Xen непосредственно из репозитория необходимо установить mercurial. После того как он установлен, код можно получить с помощью команды:
$ hg clone http://xenbits.xensource.com/xen-3.4-testing.hg
(здесь вместо версии 3.4 должна быть указана интересующая версия).
Или, для получения последнего среза unstable:
$ hg clone http://xenbits.xensource.com/xen-unstable.hg
Взять из репозитория определённую версию и собрать именно её:
%$ hg update 3.4-rc6
Процедура получения кода из репозитория Mercurial подробно описана
на странице:
[править] Получение кода из репозитория git
В качестве основной системы контроля версий используется именно Mercurial, но периодически снимки из него копируются в git-репозиторий, который доступен по адресу:
[править] Сборка и инсталляция
%$ make world %# make install
Если ваше ядро использует initrd, то не забыть его собрать: %# mkinitramfs -o /boot/initrd.img-2.6.31.12 2.6.31.12
Добавить скрипты xend и xendomains в загрузку:
# update-rc.d xend defaults 20 21 # update-rc.d xendomains defaults 21 20
Убедиться, что на момент запуска xend существуют каталоги /var/run/xenstored и /var/lock/subsys. Можно добавить в скрипт команды:
mkdir -p /var/run/xenstored mkdir -p /var/lock/subsys
Изменить конфигурацию загрузчика.
Пример:
title Xen 4.0 root (hd0,0) kernel /boot/xen-4.0.gz module /boot/vmlinuz-2.6.31.12 root=UUID=8f17d1a1-64ab-425a-9b53-71d20aa7893e ro console=tty0 module /boot/initrd.img-2.6.31.12
Перезагрузиться.
[править] Ускорение процесса повторной сборки
Если вам нужно выполнять сборку более одного раза (а это вполне возможно, например, даже в том случае, если у вас сборка прервалась из-за ошибки), то процесс можно ускорить, если заранее получить вспомогательные репозитории ядра Linux, QEMU и других компонентов, которые используются при сборке Xen.
Их нужно разместить локально и указать в сборочном файле местоположение репозиториев.
Получение репозиториев:
%$ git clone http://xenbits.xensource.com/git-http/qemu-xen-unstable.git /xen/qemu-xen-unstable %$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git /xen/linux-2.6-pvops.git
Установка переменных:
CONFIG_QEMU = /xen/qemu-xen-unstable XEN_LINUX_GIT_URL = /xen/linux-2.6-pvops.git
В противном случае репозитории при каждой сборке будут повторно выкачиваться из сети.
[править] Досборка модулей ядра
Если после сборки вы обнаружили, что каких-то модулей вам недостаёт (а это вполне возможно, потому что по умолчанию конфигурация ядра такова, что собирается только необходимый минимум), можно дособрать необходимые вам модули.
%$ cd /usr/src/xen/xen-unstable.hg %$ cd build-linux-2.6-pvops_x86_32 %$ make menuconfig %$ make modules %$ make modules_install
Что вам может понадобиться и чего нет в конфигурации ядра по умолчанию:
- поддерка разных файловых систем, например XFS, Btrfs и других;
- поддержка 802.1Q;
- поддержка TUN/TAP-интерфейсов.
|
---|