Де / яке власне джерело ядра?


8

Я стежу за цим, щоб навчитися складати ядро. я використав

apt-get source linux-image-$(uname -r)

для завантаження вихідного коду ядра Linux я з великим бажанням використовую.

Після виконання вищевказаної команди було завантажено наступні файли (та каталоги).

user $ ls -l
total 130972
drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0
-rw-rw-r--  1 sps sps  10980684 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz
-rw-rw-r--  1 sps sps      7396 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.dsc
-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz
user $ 

На цій же сторінці згадується:

Побудувати ядро ​​досить просто. Змініть робочий каталог на корінь дерева джерела ядра та введіть такі команди:

Але я не впевнений, який "корінь дерева джерела ядра".

Це поточний каталог (куди я біг apt-get source ...і де я перераховані вище файли)?

Або це каталог:

drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0

або, чи слід витягувати тарбол

-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz

Вихід для uname -r:

user $ uname -r
3.19.0-30-generic
user $ 

Відповіді:


8

З Вікі Debian :

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

Він складається в найпростішому вигляді з трьох файлів:

  • Верхній тарбол із закінченням .tar.gz

  • Файл опису із закінченням .dsc. Він містить назву пакета, як в назви файлу, так і в вмісті (після ключового слова Джерело:).

  • Тарбол, з будь-якими змінами, внесеними у вихідний код, плюс усі файли, створені для пакета Debian.

    • Це .debian.tar.gz (формат джерела: 3.0)
    • або закінчення .diff.gz (формат джерела: 1.0)

Це зовсім те саме для Ubuntu, і у вашому випадку:

  • "linux-lts-vivid-3.19.0": власне ядро , виправлене починаючи з висхідного тарболу "linux-lts-vivid_3.19.0.orig.tar.gz" з модифікаціями, переліченими в "linux-lts-vivid_3.19.0 -30,34 ~ 14.04.1.diff.gz ";
  • "linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz": тарбол, із будь-якими змінами, внесеними у вихідний код, плюс усі файли, створені для пакета Debian;
  • "linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.dsc": закінчення файлу ".dsc". Він містить назву пакета, як в назви файлу, так і в вмісті (після Джерело: ключове слово);
  • "linux-lts-vivid_3.19.0.orig.tar.gz": тарбол вгорі за течією із закінченням ".tar.gz" (майте на увазі, що, на мій досвід, це не завжди файл ".tar.gz", він може бути трохи різні формати, такі як ".tar.xz");

Під час запуску apt-get source linux-image-$(uname -r)тарбол висхідної течії автоматично виправляється з модифікаціями, переліченими у "linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz" у "linux-lts-vivid-3.19.0":

% apt-get source linux-image-$(uname -r)
# ...
dpkg-source: info: extracting linux in linux-3.19.0
dpkg-source: info: unpacking linux_3.19.0.orig.tar.gz
dpkg-source: info: applying linux_3.19.0-30.34.diff.gz
# ...

4

Корінь вашого дерева ядра - це каталог linux-lts-vivid-3.19.0.

Про інші файли:

У тарболі linux-lts-vivid_3.19.0.orig.tar.gzможна знайти ядро ​​"ванілі", як випущене вгору за течією; до цього ядра розробники Ubuntu додали патчі, драйвери, змінили речі, зібрані в diffякі стискаються linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz.


4

Хммм. При запуску команди

apt-get source linux-image-`uname -r`

команда повинна автоматично витягувати вихідні тарболи та виправляти їх, щоб створити каталог, викликаний після вашого ядра. У вашому випадку він виглядає так, як його називають "linux-lts-vivid-3.19.0" - він є у вашому списку каталогів.

Отже, це вихідний каталог, вам слід запустити:

cd linux-lts-vivid-3.19.0

а потім продовжуйте виконувати вказівки

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.