FastNetMon

Friday 5 November 2010

Установка 64 битного ядра от Fedora 14 (2.6.35) на Debian 6 Squeeze

Пожалуйста, только не спрашивайте зачем это пригодилось :) Надо и все :)

Итак, для начала нам нужно найти собранный пакет от Fedora, поиски мы начнем со страницы: https://admin.fedoraproject.org/pkgdb/acls/name/kernel, там будет ссылка "Build Status", щелкаем по ней и попадаем на страницу http://koji.fedoraproject.org/koji/packageinfo?packageID=8, там находим нужное нам ядро по суффиксу (fc14) и версии kernel-2.6.35.xxx. В моем случае, ядро оказалось версии: kernel-2.6.35.6-50.fc14. Далее после щелчка по нужной версии ядра мы оказываемся на странице http://koji.fedoraproject.org/koji/buildinfo?buildID=202926, прокручиваем ее вниз до блока RPMS и ищем там "x86_64". Рядом с нужным нам ядром kernel-2.6.35.6-50.fc14.x86_64.rpm будет ссылка download, копируем ее и возвращаемся на машину с Дебияном.

cd /usr/src
wget http://kojipkgs.fedoraproject.org/packages/kernel/2.6.35.6/50.fc14/x86_64/kernel-2.6.35.6-50.fc14.x86_64.rpm

Теперь как вариант попробуем поставить rpm и воткнуть ядро:
apt-get install -y rpm

Для тестов нам нужен rpm новее версии 4.8, старый rpm пакетов от fc14 не поймет:
rpm --version
RPM version 4.8.1

Пробуем поставить:
rpm -Uhv kernel-2.6.35.6-50.fc14.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
error: Failed dependencies:
fileutils is needed by kernel-2.6.35.6-50.fc14.x86_64
module-init-tools is needed by kernel-2.6.35.6-50.fc14.x86_64
initscripts >= 8.11.1-1 is needed by kernel-2.6.35.6-50.fc14.x86_64
grubby >= 7.0.10-1 is needed by kernel-2.6.35.6-50.fc14.x86_64
dracut >= 001-7 is needed by kernel-2.6.35.6-50.fc14.x86_64
linux-firmware >= 20100806-2 is needed by kernel-2.6.35.6-50.fc14.x86_64
/sbin/new-kernel-pkg is needed by kernel-2.6.35.6-50.fc14.x86_64
/bin/sh is needed by kernel-2.6.35.6-50.fc14.x86_64

Ставим с отключением проверки зависимосей:
rpm -Uhv --nodeps kernel-2.6.35.6-50.fc14.x86_64.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
Preparing... ########################################### [100%]
1:kernel ########################################### [100%]
[: 5: unknown: unexpected operator

Итак, вуаля, бинарик и конфиг ядра от Fedora упали в /boot:
test:/usr/src# ls -al /boot/vmlinuz-2.6.35.6-50.fc14.x86_64
-rwxr-xr-x 1 root root 3.7M Nov 2 05:21 /boot/vmlinuz-2.6.35.6-50.fc14.x86_64
test:/usr/src# ls -al /boot/config-2.6.35.6-50.fc14.x86_64
-rw-r--r-- 1 root root 108K Nov 2 05:21 /boot/config-2.6.35.6-50.fc14.x86_64

Но initrd не был сгенерирован и ядро не было добавлено в /boot/grub/grub.cfg.

Пробуем собрать initrd для всех ядер пачкой:
depmod -a 2.6.35.6-50.fc14.x86_64 # вроде, это не требуется
update-initramfs -v -u -k 2.6.35.6-50.fc14.x86_64 -t

После этого у нас появляется увесистый initrd:
ls -la /boot/initrd.img-2.6.35.6-50.fc14.x86_64
-rw-r--r-- 1 root root 9.5M Nov 5 17:34 /boot/initrd.img-2.6.35.6-50.fc14.x86_64

Теперь обновляем конфиг grub2:
update-grub

Теперь выбираем Fedora ядро стандартным:
vi /boot/grub/grub.cfg

Это делается директивой:
set default="4"

После этого ребутаем машину в надежде, что нигде не накосячили:
shutdown -r now

Мда, у меня не поднялось, жду квм :) Кстати, чуть выше rpm нам намекал, что там ставить не нужно и чтобы мы юзали alien.

Вариант для Lenny

Ставим на Lenny RPM 4.8: так

Вариант распаковки src rpm:
cd /usr/src
mkdir fedorakernel
cd fedorakernel
wget http://kojipkgs.fedoraproject.org/packages/kernel/2.6.35.6/50.fc14/src/kernel-2.6.35.6-50.fc14.src.rpm
/opt/rpm48/bin/rpm2cpio kernel-2.6.35.6-50.fc14.src.rpm | cpio -idmuv --no-absolute-filenames

2 comments :

  1. Не легше на убунту 10.10 мигрировать? :-) там нужное ядро, как раз 2.6.35

    ReplyDelete
  2. Кстати, спасибо :) Не, мигрировать не легче, мне нужны лишь нвоые ядра.

    ReplyDelete

Note: only a member of this blog may post a comment.