Генерація латок

Всі зміни початкового коду ядра Linux поширюються у вигляді латок (patch) Латки являють собою результат виведення утиліти GNU diff (1) у форматі, який може подаватися на вхід програми patc h (1) Найбільш просто згенерувати латку можна у випадку, коли є два дерева вихідних кодів ядра: одне – стандартне, а інше – з вашими змінами Звичайна схема імен полягає в тому, що каталог, в якому знаходиться стандартне ядро, називається 1inux-xу z (каталог, в який розгортається архів дерева вихідного коду у форматі tar), a

імя модифікованого ядра – linux Для генерації латки на основі двох каталогів звихідним кодом необхідно виконати наступну команду з каталогу, в якому знаходяться два розглянутих дерева вихідного коду

diff -urN linux-xyz/linux/ &gt my-patch

Зазвичай це робиться де-небудь в домашньому каталозі, а не в каталозі / usr / src / linux, тому немає необхідності мати права користувача root Прапор-u вказує, що необхідно використовувати уніфікований формат виведення команди diff Без цього прапора зовнішній вигляд латки виходить неудобочітаемимі Прапор-r вказує на необхідність рекурсивного аналізу каталогів, а флаг-N вказує, що нові файли, які зявилися в зміненому каталозі, повинні бути включені в результат виведення команди diff Якщо ж необхідно отримати тільки зміни одного файлу, то можна виконати наступну команду

diff -u linux-xyz/some/file_linux/some/file &gt my-patch

Зверніть увагу на те, що обчислювати зміни необхідно завжди, перебуваючи в одному поточному каталозі, а саме в тому, де знаходяться обидва дерева вихідного коду При цьому виходить латка, яку легко можуть використовувати всі, навіть у випадках, коли імена каталогів вихідного коду відрізняються від тих, які використовувалися при генерації латки Для того щоб застосувати латку, яка сгенерирована таким чином, необхідно виконати наступну команду з кореневого каталогу дерева вихідного коду

patch -p1 &lt ./my-patch

У цьому прикладі імя файлу, який містить латку, my-patch, а знаходиться він у батьківському каталозі по відношенню до каталогу, в якому зберігається дерево вихідного коду ядра Прапор-p1 означає, що необхідно ігнорувати (strip) імя першого каталогу в шляхах всіх файлів, в які вноситимуться зміни Це дозволяє застосувати латку незалежно від того, які імена каталогів коду ядра були на тій машині, де створювалася латка

Корисна утиліта diffsta t дозволяє згенерувати гистограмму змін, до яких призведе застосування латки (видалення і додавання рядків) Для того щоб отримати цю інформацію для якої-небудь латки, необхідно виконати наступну команду

diffstat -p1 my-patch

Зазвичай корисно включити результат виконання цієї команди при відправленні латки п список розсилки lkml Так як програма patc h (1) ігнорує всі рядки до того моменту, поки не буде виявлений формат diff, то спочатку латки можна включити короткий опис

Джерело: Лав, Роберт Розробка ядра Linux, 2-е видання : Пер з англ – М: ТОВ «ІД Вільямс »2006 – 448 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*