Я хочу понизить ядро fedora 20 (3.11) до версии 2.6, потому что у меня есть пакет, который поддерживает только это ядро. Я везде искал ядро 2.6 для fedora 20, но безуспешно. Если я попытаюсь поставить ядро 2.6, предназначенное для Fedora Core 16, то Fedora просто не загрузится. У кого-нибудь есть предложения?

1 ответ1

1

У Fedora (относительно) не должно быть проблем с загрузкой более старых ядер, мы делаем это постоянно, чтобы запускать Fedora на платформах ARM, которые не могут запускать компиляции ядра ядра.

Для правильной работы системы необходимо решить две ключевые проблемы.

Первый - это загрузчик (GRUB, по всей вероятности). Это действительно только проблема, если вы не установите официальный RPM для своего ядра - официальные RPM сгенерируют initramfs для вас и создадут запись загрузчика.

Второй связан с загрузкой прошивки. Большинство дистрибутивов переключилось с загрузки прошивки в пользовательском пространстве на загрузку прошивки в ядре около 3.10 или около того. Все поддерживаемые в настоящее время выпуски Fedora загружают прошивку таким образом. Таким образом, переход на более старое ядро означает, что ядро ожидает, что ОС загрузит прошивку, а ОС ожидает, что ядро загрузит прошивку. Нам нужно будет снова включить загрузку прошивки в пользовательском пространстве.

Итак, для начала установите старое ядро любым удобным для вас способом. Чтобы упростить задачу, я установил новейшее ядро 2.6, созданное для Fedora (f15 был последним выпуском, официально поддерживавшим 2.6). Пакеты все еще доступны в Koji, системе сборки Fedora [1].

Затем я убедился, что запись GRUB создана. Вы должны увидеть упоминание ядра 2.6 в /boot/grub/grub.cfg (при условии, что вы не в системе EFI).

Наконец, нам нужно решить проблему с прошивкой. Я видел два решения этого:1. Установите или скомпилируйте более старую версию udev (теперь включена в systemd), в которой включена внутренняя загрузка прошивки. 2. Используйте firmware.sh как в старые добрые времена.

Последнее значительно проще в этом сценарии. Для этого необходимо добавить два файла: /usr/lib/udev/firmware.sh и /usr/lib/udev/rules.d/50-firmware.rules . Покопайтесь в Google, чтобы найти копию этих файлов [2] - я бы предпочел не связываться напрямую ни с какими.

Как только они появятся в вашей системе, вам нужно будет заново сгенерировать initramfs, чтобы при необходимости можно было загрузить прошивку до монтирования рута. Это легко сделать в Fedora, используя dracut; бежать:

dracut /boot/initramfs-2.6.43.8-2.fc15.x86_64.img 2.6.43.8-2.fc15.x86_64 --force

Первый вариант - целевой файл initramfs, второй - версия ядра, и --force необходим для перезаписи уже созданных initramfs (скорее всего, во время установки RPM).

И это должно сделать это. Я только что проверил это на ВМ, и это сработало хорошо. В заключение, обратите внимание на поддержку драйверов для вашего оборудования. Может отсутствовать в ядре 2.6. Это был случай сетевого адаптера Hyper-V для моей виртуальной машины. Однако переход к сетевому адаптеру "Legacy" дал свои результаты.

[1] http://koji.fedoraproject.org/koji/buildinfo?buildID=327165

[2] https://www.google.com/search?q=%22firmware.sh%22+%2250-firmware.rules%22

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .