Добавление патчей в ядро: различия между версиями

Материал из ALT Linux Wiki
м Добавление пачей в ядро» переименована в «Добавление патчей в ядро»: орфография)
(нет различий)

Версия от 15:07, 29 сентября 2008

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Введение

Эта статья описывает то, как добавить пачи к нашим ядрам и вообще разкавает о внутренней жизни git репозиторя с ядром. Для начала стоит понять зачем в это лезть. Цели могут быть разные:

  1. просто интересно.
  2. есть функцианальность, которую хотелось добавить, а в наших ядрах её нет.
  3. расшерение поддержки железа. Есть железяка, она не работает, но есть пач и возможность проверить.

Почему этого не стоит делать:

  1. Задача сложная, если не очень нужно, не забивате себе голову.

Чего не стоит делать:

  1. Плодить разные flavour. Лучше доавить к имеющимся в идеале в std-def.
  2. Делать только для себя. Если вы дабавили пач, делающий что то полезное, стоит его выложить в сизиф. Оно может ещё кому-то пригодиться.

Что нам нужно:

  1. знание git. Хотя бы начальные. Вся разработка ядра ведёться в git, и его здесь ни как не обойти.
  2. Знание сборочной системы gear
  3. Доступ к репозитарию.
  4. Достаточно мощьная машина. Ядро может собираться очень долго(около получаса) в зависимости от железа, и в процессе сборки потреблать до 1Gb под временные файлы. Будте готовы что этот процесс съест много ресурсов.
  5. Доступ к git.alt. git репозитарий с ядром может занимать до 300Mb будьте готовы хотябы раз его скачать полностью

Разбираемся с бранчами

Для начала нам нужны git репозитарий с ядром. для этого мы его клоним, например это

git clone git://git.altlinux.org/people/silicium/packages/kernel-image-2.6.25.git

Теперь заходим в kernel-image-2.6.25 и видим ванильное ядро. Дело в том что git cкопировал только ветку master. Посмотреть остальные ветки можно командой

git branch -a

И видим множетество веток. Оправившись от шока от их обилия, разберёмся зачем какая нужна.

При ближайшем рассмотрении все ветки можно разделить на:

  • feat-*
  • fix-*
  • kernel-image*
  • kernel-sources*
  • другие

основные бранчи это бранчи kernel-image-*, именно из них и собирается ядра. Таких бранчий там несколько соответвенно flavourам например пакет kernel-image-std-def собирается из одноименного бранча. остальные std-pae std-ll std-srv являются его производными и в данный момент нам не интересны. Для начала получим себе копию этого бранча

git checkout kernel-image-std-def -b origin/kernel-image-std-def

типерь посмотрев в директорию, мы увидим spec, .gear, modules.build, subflavours и исходники ядра.

Добавление пачей

Сборка

Критерии добавления пачей в ядро std