Я следую инструкциям, расположенным здесь , , чтобы настроить мой сервер. В нем говорится, что я должен применить патч, который я скачал на машину. Мой вопрос заключается в том, что в статье сказано использовать следующую команду:
/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
. Мне нужно знать, как мне найти конкретный файл, который нужно исправить здесь ...
Чтобы избежать разочарований, вы обычно должны делать такие вещи способом Ubuntu. Полные инструкции по использованию официальных пакетов можно найти здесь:
https://help.ubuntu.com/community/Kernel/Compile
Здесь приведены списки зависимостей и пошаговые команды для запуска собственного ядра.
Выполнив эту процедуру, вы получите деинсталлируемый пакет, содержащий ваше собственное ядро, а это значит, что вы сможете в будущем, при необходимости, вернуться к официальным ядрам.
Вам нужно скачать исходники. Вы можете сделать это через 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'ом, пока вы это делаете.
Следующие инструкции показывают вам интерпретатор командной строки /usr/src/linux #
, который вы вводите не как часть команды. Команда для ввода, которая применит патч, начинается с patch
и продолжается оттуда.