Понижение ядра на сервере Ubuntu 9.10 с помощью apt-get?
Можно ли понизить ядро на сервере Ubuntu с 9.10 до 2.6.30 (или любое ядро 2.6 ниже 2.6.31), используя менеджер пакетов apt-get?
Вот мотивация:
Я установил сервер Ubuntu 9.10 на компьютер, на котором установлена сетевая карта NetXen NXB-10GCX4 10GbE. Драйвер netxen_nic, поставляемый с Linux 2.6.31, жаловался на то, что прошивка на сетевой карте была слишком старой (прошивка была 3.4.114, а ядру требуется версия прошивки 3.4.216 или выше).
Я пошел на веб-сайт производителя (QLogic, который приобрел NetXen), загрузил последние версии драйверов и прошил прошивку. К сожалению, сетевые карты все еще не работали должным образом. Согласно документации драйвера, мне нужно установить коммерческие драйверы для правильной работы с последней прошивкой.
Я попытался собрать коммерческие драйверы в модуль ядра. К сожалению, они не будут компилироваться в Ubuntu 9.10, потому что они были написаны для более старой версии сетевого API-интерфейса Linux, который был удален из ядра в 2.6.31.
Поскольку QLogic считает это устаревшим продуктом, никаких дополнительных обновлений драйверов не будет. Поэтому мне нужно запустить ядро, которое все еще поддерживает старый API. Я все еще хотел бы использовать Ubuntu 9.10. Я бы предпочел использовать диспетчер пакетов, чтобы зависимости обрабатывались должным образом, а не вручную, выполняя понижение ядра.
Изменить: Для тех, кто зашел на эту страницу, выполнив поиск этой конкретной сетевой карты, я решил свою конкретную проблему, загрузив версию 3.4.216 драйверов Linux с японского сайта NetXen и перепрограммировав прошивку, скопировав 3.4.216/bin/cx4_romimage в /lib/firmware/nxroming.bin и перезагрузка модуля netxen_nic.
4 ответа
У меня нет информации об этом NIC, поэтому я сосредоточусь на понижении ядра.
Ядра 2.6.30.x использовались в более ранних выпусках Karmic и, по-видимому, недоступны при использовании APT для любого текущего выпуска. Я предлагаю вам следовать этой процедуре, чтобы установить версии 2.6.30 версий пакетов ядра сервера Ubuntu (я не уверен, что он работает нормально). Пакеты серверов ядра не находятся в основном архиве ядер, но они должны быть доступны на зеркалах архива Ubuntu ( список зеркал). Я бы попробовал установить последнюю доступную версию (я видел серверные пакеты 2.6.30.7 на зеркале, последний вышедший выпуск - 2.6.30.10).
Я только что попробовал ядро рабочего стола 2.6.30.10 на современной установке Karmic для настольного компьютера, и оно, очевидно, работает без проблем, поэтому процедура, вероятно, будет работать на сервере.
После установки, если это работает, вы можете изменить ядро по умолчанию, используя команду grub-set-default (см. Документацию Grub2- Community Ubuntu) или используя StartUp-Manager (пакет startupmanager) в X. Редактирование /boot/grub/grub.cfg не рекомендуется
В большинстве случаев старое ядро все еще будет присутствовать в вашей системе, все что вам нужно сделать, это отредактировать конфигурацию grub, указав на старое, и перезагрузиться. (/Boot/grub/grub.conf)
Если старое ядро было удалено, вам нужно будет установить его снова с помощью apt-get, я сомневаюсь, что менеджер пакетов позволит вам это сделать.
Другая вещь, которую нужно сделать, это добавить свой голос в кампанию за стабильный интерфейс драйвера, чтобы эти проблемы больше не возвращались.
Есть два способа, во-первых, если это не ваш рабочий сервер, вы можете установить обновление Ubuntu 8.04 до Ubuntu 9.10. Во-вторых, apt-get удалите это kernel.XX.XX.XX.dep перед запуском, и вам нужно добавить старое ядро на ваш сервер.
Я хотел бы найти прошивку, которую хотел драйвер в стандартном ядре Ubuntu, поскольку последняя не работала. В долгосрочной перспективе я бы заменил карту на что-то более поддерживаемое. Понижение версии ядра для удовлетворения потребностей проприетарных драйверов - проигрышное предложение.