Подборка о сборке ядра linux с поддержкой Hyper-V
Источник 1 (kernel 2.6.36 )
Подготавливаем:
apt-get update aptitude update apt-get install build-essential ncurses-dev kernel-package fakeroot |
Теперь приступим к сборке нового ядра 2.6.36 взятого с kernel.org
cd /usr/src wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2 bzip2 -d linux-2.6.36.tar.bz2 tar xf linux-2.6.36.tar cd linux-2.6.36 cp /boot/config* ./.config make menuconfig |
В меню выбираем Device Drivers -> Stagging Drivers –> Microsoft Hyper-V Client Drivers
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-hyper-v kernel_image kernel_headers |
После этого в /usr/src появятся два deb пакета которые можно установить в систему командой dpkg –i.
Редактируем /etc/initramfs-tools/modules
и добавляем следующие строки указывающие загружать нужные модули при старте системы:
hv_vmbus hv_storvsc hv_blkvsc hv_netvsc |
Обновляем initramfs:
update-initramfs -uk all |
Проверка:
lsmod | grep hv |
http://blogs.technet.com/b/abeshkov/archive/2011/03/17/hyperv_5f00_debian.aspx
——————————————————————————-
Источник 2 (kernael 2.6.38.4)
apt-get install build-essential ncurses-dev kernel-package fakeroot bzip2 -d linux-2.6.38.4.tar.bz2 tar xf linux-2.6.38.4.tar cd linux-2.6.38.4 make menuconfig |
Device Drivers —>; Stagging Drivers —>; Microsoft Hyper-V Client Drivers
make-kpkg clean
fakeroot make-kpkg –-initrd -–revision=blogs.technet.com.vm.1.0 kernel_image |
cd .. ls -l |
Устанавливаем с помощью # dpkg -i два получившиеся deb-пакета;
Включить поддержку синтетической сетевой карты, вместо эмулируемой:
sed -i 's/eth/seth/g' /etc/network/interfaces |
Настроить загрузку модулей Hyper-V при старте ОС:
echo –e "hv_vmbus\nhv_storvsc\nhv_blkvsc\nhv_netvsc" >> /etc/initramfs-tools/modules |
update-initramfs –u –k [версия ядра или all] |
reboot
И проверим, загружены ли модули Hyper-V:
lsmod | grep hv |
——————————————————————————-
Источник 3 (kernael 2.6.36)
apt-get update aptitude update apt-get install openssh-server (for ssh support) apt-get install build-essential ncurses-dev kernel-package fakeroot apt-get install linux-headers-`uname -r` apt-get install linux-source-`uname -r | awk -F"-" '{print $1}'` cd /usr/src wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2 bzip2 -d linux-2.6.36.tar.bz2 tar xf linux-2.6.36.tar cd linux-2.6.36 cp /boot/config* ./.config make menuconfig |
Device Drivers -> Stagging Drivers -> Microsoft Hyper-V Client Drivers
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-hyperv kernel_image kernel_headers |
After this process, you will find your two .deb files in /usr/src directory.
cd .. dpkg -i имя_пакета.deb |
——————————————————————————-
Источник 4 (kernael 2.6.38 талково)
——————————————————————————-
Источник 5 (kernael 2.6.31.4 талково)
aptitude install fakeroot kernel-package libncurses5-dev cd /usr/src sudo -s wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.4.tar.bz2 tar xjf linux-2.6.31.4.tar.bz2 if [ -d linux ]; then rm linux; fi; ln -s linux-2.6.31.4 linux cd linux |
Тут есть один момент. Так как у нас уже есть рабочее ядро в установленной системе то, если не хотим выставлять все галочки в конфигурации нового ядра с нуля, берём готовый config либо из /boot
либо из /proc
:
cp /boot/config-$( uname -r ) .config zcat /proc/config.gz > .config |
make menuconfig |
Тут интересно будет отметить, что если мы сразу-же выйдем из меню, то можем увидеть что-то подобное этому:
.config:903:warning: symbol value 'm' invalid for RFKILL_INPUT
.config:2920:warning: symbol value 'm' invalid for DRAGONRISE_FF
.config:2937:warning: symbol value 'm' invalid for GREENASIA_FF
.config:2939:warning: symbol value 'm' invalid for THRUSTMASTER_FF
.config:2940:warning: symbol value 'm' invalid for ZEROPLUS_FF
имеет смысл найти эти опции при конфигурировании нового ядра и посмотреть что да к чему… Или использовать
make oldconfig |
Кстати, если кому интересно под X-ами заниматься конфигурированием, то может сделать так:
make xconfig |
make-kpkg clean fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_image |
После того как предыдущая команда нормально выполнится, можно также дать такой «джентельменский набор»:
fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_headers
fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_manual
fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_doc
fakeroot make-kpkg --initrd --revision=og.091015.00 kernel_source
cd /usr/src dpkg -i ./linux-image-2.6.31.4_og.091015.00_i386.deb |
reboot |
Сборка на основе kernel 3
——————————————————————————-
Источник 6 (kernael 3.0)
#Ставим нужные пакеты для компиляции ядра. sudo apt-get install kernel-package build-essential libncurses5 libncurses5-dev #Заходим в директорию src cd /usr/src #Качаем сорцы Linux 3 wget http://www.kernel.org/pub/linux/kernel/ … .0.tar.bz2 #Распаковываем tar jxvf linux-3.0.tar.bz2 #Идем в папку с ядром cd linux-3.0/ #Копируем файл config-(ядро) в скрытый файл cp -vi /boot/config-`uname -r` .config make menuconfig make localmodconfig make-kpkg clean #Задаем ключи fakeroot make-kpkg –initrd –append-to-version=-put-your-custom-label-here kernel-image kernel-headers #Идем в соседнюю папку cd .. #Ставим готовый пакет ядра Linux 3 sudo dpkg -i *.deb |
О компонентах Microsoft Hyper-v в ядре kernel 3:
__________________________________________________________________________________________________________
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/917135
As of kernel 3.2, all of drivers (except for the storage driver) required to be able to run Ubuntu as a guest image in a Microsoft Hyper-V environment have exited the staging tree of the kernel, and are now present in the following locations:
a. hv_timesource: Merged with general CPU detection code.
b. hv_vmbus: Moved to drivers/hv. Provides general vmbus functionality.
c. hv_utils: Moved to drivers/hv. Provides kvp, timesync, shutdown, and heartbeat.
d. hv_netvsc: Moved to drivers/net/hyperv. Provides synthetic network access.
e. hv_mouse: Moved to drivers/hid. Provides synthetic mouse access.
f. hv_storvsc: Still in drivers/staging/hv. Minor fixes still being hammered out (see http://driverdev.linuxdriverproject.org/pipermail/devel/2012-January/024012.html for more details on remaining fixes)
For the Ubuntu 12.04 kernel please ensure that:
1. Drivers are added to the install initrd so users have access to all synthetic devices during installation
2. Drivers are automatically installed by default in the installed initrd (so no rebuilding is necessary)
———————————
http://cateee.net/lkddb/web-lkddb/HYPERV_UTILS.html