Я думаю, что это не супер просто, если бы были какие-либо варианты загрузки ядра, которые могли бы помочь загрузить HP со стандартным ядром (например, noapic, nomodeset и т.д.), Я бы попробовал их в первую очередь.
Некоторые инструкции слишком длинные и разнообразные, чтобы публиковать их здесь [ https://help.ubuntu.com/community/Kernel/Compile ], но одна страница на самом деле выглядит почти разумно, если вы компилируете для той же архитектуры и выпуска Ubuntu.
Эти шаги предназначены для компиляции ядра на вашем текущем компьютере, если оно того же "типа" x64 и работает с той же версией Ubuntu, что может работать. [Из https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel ]:
Получение исходного кода для релиза Ubuntu
Или
- Либо
apt-get source linux-image-$(uname -r)
- Или
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<release codename>.git
Например, чтобы получить точное дерево:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-precise.git
Построить среду
Если вы ранее не собирали ядро в своей системе, для успешной сборки вам понадобятся несколько пакетов. Вы можете установить их с помощью:
sudo apt-get build-dep linux-image-$(uname -r)
Изменение конфигурации
[Вот часть, где вы примените свой патч. Эта ссылка выглядит так, как будто патч просто изменяет drivers/mmc/card/block.c
, поэтому этот файл должен находиться в загруженных исходных файлах. Похоже, что он просто добавляет немного к одной строке, поэтому, если вы хотите вручную отредактировать одну строку с помощью функции копирования и вставки, которая должна работать, он просто удаляет начальные строки " -
" и добавляет начальные строки " +
". Или используя программу patch
с patch --verbose -p1 <the_patch_file
(может быть, без -p1
если он не работает, контролирует, как он находит файл для патча, см. man patch
для информации). Если вы не вносите другие изменения, я пропущу все остальное, как указано в инструкциях. ]
Этот шаг можно пропустить, если не требуется никаких изменений конфигурации. Процесс сборки будет использовать конфигурацию, которая составляется из различных файлов субконфигурации. Самый простой способ изменить что-либо здесь - запустить:
chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
Это берет текущую конфигурацию для каждой поддерживаемой архитектуры / разновидности и вызывает menuconfig для редактирования своего файла конфигурации. Chmod необходим, потому что при создании исходного пакета он теряет исполняемые биты в скриптах.
apt-get попытается "обновить" ядро до стандартной сборки / версии ядра Ubuntu, если вы собираете собственное ядро, не добавляя дополнительную строку в конец вашей версии ядра. Чтобы apt-get не отображал ядро Ubuntu как обновляемое при вводе apt-get upgrade, вы должны (из документации по ядру) добавить дополнительную строку в конец версии вашего ядра. Это будет отображаться, например, при вводе uname.
Чтобы предотвратить это, в меню конфигурации ядра перейдите и измените:
- Общая настройка --->
- () Локальная версия - добавить к выпуску ядра
Сборка ядра
Сборка ядра довольно проста. Измените свой рабочий каталог на корень дерева исходного кода ядра, а затем введите следующие команды:
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic
Если сборка прошла успешно, набор из трех файлов двоичных пакетов .deb будет создан в каталоге над корневым каталогом сборки. Например, после сборки ядра с версией «2.6.38-7.37» в системе amd64 будут созданы три (или четыре) пакета .deb:
cd ..
ls *.deb
linux-headers-2.6.38-7_2.6.38-7.37_all.deb
linux-headers-2.6.38-7-generic_2.6.38-7.37_amd64.deb
linux-image-2.6.38-7-generic_2.6.38-7.37_amd64.deb
в более поздних выпусках вы также найдете пакет linux-extra-package, который вы также должны установить, если он есть.
Тестирование нового ядра
Установите набор из трех пакетов (в вашей системе сборки или в другой целевой системе) с помощью dpkg -i, а затем перезагрузите компьютер:
sudo dpkg -i linux*2.6.38-7.37*.deb
sudo reboot
Что касается его установки, я бы не стал создавать ISO (с чем-то вроде remastersys), это, вероятно, просто еще одна головная боль ;-)
Если бы вы могли просто скопировать файлы на жесткий диск, который мог бы работать. Обычно я бы предложил Linux Live CD / USB, но если Ubuntu не загружается ... может быть, другой дистрибутив с другим ядром, или использовать Windows для копирования файлов, или образ раздела и Windows-эквивалентный инструмент dd
?