Сборка ядра (linux kernel)для использования на Hyper-V

Подборка о сборке ядра linux с поддержкой Hyper-V

Linux Kernel

Источник 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

Запись опубликована в рубрике kernel, Linux, Компы. Добавьте в закладки постоянную ссылку.