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