LINUX.ORG.RU

patch -po (извечная непонятка)


0

0

Пробую пропатчить ядро-2.6.1 до 2.6.3 версии.

Тащу patch-2.6.3.gz файл и кладу его в /usr/src директорию.

linux-2.6.1 папка уже стоит здесь и я делаю ей ссылку как linux там же, а также полностью очищаю от предыдущих сборок эту папку:

"cd /usr/src/linux;make mrproper" и иду обратно в /usr/src/ директорию.

Далее делаю "zcat patch-2.6.3.gz | patch -p0" и получаю это "любимое" сообщение))):

"can't find file to patch at input line 4 Perhaps you should have used the -p or --strip option? The text leading up to this was: -------------------------- |diff -Nru a/CREDITS b/CREDITS |--- a/CREDITS Tue Feb 17 20:00:07 2004 |+++ b/CREDITS Tue Feb 17 20:00:07 2004 -------------------------- File to patch:"

Также, если зайти в linux директорию и скомандовать оттуда то получу тоже самое.

Также если вместо -p0 сказать p1 итд то получу тоже самое.

Что я делаю не так?

anonymous
Ответ на: комментарий от anonymous

Посмотри внимательнее, для "патчения" используются две директории a и b, т.е. делаешь две ссылки (a,b) на директорию /usr/src/linux-2.6.3 и потом патчишь. Кстати с последним патчем (2.6.2->2.6.3) к меня почему-то заработало только когда поместил патч в /usr/src/linux-2.6.3 и там пропатчил на уровне p1. P.S. И действительно сначала проптчи с 2.6.1 до 2.6.2 :)

gfh ★★★
()
Ответ на: комментарий от gfh

Официальные патчи с kernel.org всегда -p1 вроде. И вне зависимости от того где находимся можно и нужно использовать -d. Я обычно делаю так:

$ bzcat /path/to/patch-2.6.3.bz2 | patch -p1 -d /usr/src/linux-2.6.2

И всегда сначала запускайте patch --dry-run, а то отковыривать плохо наложенный патч врагу не пожелаешь.

rihad
()
Ответ на: комментарий от anonymous

> А разве пропатченное дерево можно пропатчивать далее? 2.6.1>2.6.2>2.6.3 etc ?

Именно так и только так. Ядерные патчи НЕ кумулятивные. Иными словами, если у вас есть сырцы ядра версии A.B.X, то для получения A.B.Y необходимо наложить последовательно ВСЕ патчи от X до Y.

Obidos ★★★★★
()
Ответ на: комментарий от anonymous

а я еще тебе по большому секрету скажу что в usr/src/linux/README все это написано :)

sasha999 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.