Правильный способ применения патчей к вашему ядру?

Я следую инструкциям, расположенным здесь , , чтобы настроить мой сервер. В нем говорится, что я должен применить патч, который я скачал на машину. Мой вопрос заключается в том, что в статье сказано использовать следующую команду:

/usr/src/linux # patch -p1 < file.diff //note I replace file.diff w/ routes-2.6.36.16.diff

Это возвращает:

-bash: /usr/src/linux: No such file or directory

Я продолжаю предполагать, что /linux # должно быть заменено фактическим Linux версия ядра / dir. Я пробовал это с помощью следующей команды:

/usr/src/linux-headers-2.6.35.22 patch -p1 < file.diff

Это возвращает то же самое. Когда я просматриваю содержимое / usr / src, у меня есть только две директории linux-headers-2.6.35.22 и linux-headers-2.6.35.22-generic-pae, и мне нужны указания относительно правильного способа применения патча к ядру.

Редактировать

Если я выполню /usr/src/linux-headers-2.6.35.22/ patch -p1 file.diff, я получу -bash: /usr/src/linux-headers-2.6.35.22: is a directory. Мне нужно знать, как мне найти конкретный файл, который нужно исправить здесь ...

5
задан 4 November 2010 в 01:04

3 ответа

Чтобы избежать разочарований, вы обычно должны делать такие вещи способом Ubuntu. Полные инструкции по использованию официальных пакетов можно найти здесь:

https://help.ubuntu.com/community/Kernel/Compile

Здесь приведены списки зависимостей и пошаговые команды для запуска собственного ядра.

Выполнив эту процедуру, вы получите деинсталлируемый пакет, содержащий ваше собственное ядро, а это значит, что вы сможете в будущем, при необходимости, вернуться к официальным ядрам.

2
ответ дан 4 November 2010 в 01:04

Вам нужно скачать исходники. Вы можете сделать это через apt-src, но я (лично) просто возьму последний из kernel.org, извлеку его, исправлю (просто используя локальные пути, такие как десктоп, его вообще не нужно прятать в /usr/src!) и следую инструкциям "старомодным способом" для его компиляции.

Обратите внимание, что некоторые патчи предназначены только для определенных версий ядра (сюда входят точечные выпуски), так что убедитесь, что ваш патч работает для исходной версии, прежде чем тратить 20-30 минут на его компиляцию.

Но ваша особая проблема заключается в том, что вы должны быть в каталоге, к которому хотите применить патч. В вашем случае:

cd /usr/src/linux-headers-2.6.35.22/
patch -p1 < /path/to/file.diff

Очевидно, что нужно изменить путь к патчу (или поместить его в тот же каталог). Если исходные файлы принадлежат root'у, установите префикс sudo на команду patch или запустите sudo su, чтобы стать root'ом, пока вы это делаете.

4
ответ дан 4 November 2010 в 01:04

Следующие инструкции показывают вам интерпретатор командной строки /usr/src/linux #, который вы вводите не как часть команды. Команда для ввода, которая применит патч, начинается с patch и продолжается оттуда.

1
ответ дан 4 November 2010 в 01:04

Другие вопросы по тегам:

Похожие вопросы: