Как мне получить исходный код ядра?

Я планирую написать несколько драйверов устройств, и мне нужно получить исходный код ядра Linux. Моя версия ядра Linux - 3.2.0-23-generic-pae, и я загрузил изображение с этот. Во многих статьях, которые я прочитал, говорится, что мне нужно иметь все дерево ядра, чтобы начать вставлять новые модули.

Достаточно ли, если я скачаю это изображение и вставлю его в usr/src/ папка или я должен сделать что-то еще?

Это позволит получить исходный код исходного ядра:

apt-get source linux-source

Вы можете проверить, какая версия ядра работает следующим образом:

uname -r

Который напечатает что-то вроде:

3.13.0-46-generic

Вы можете найти список текущих версий исходных пакетов, доступных в вашей системе, через:

apt-cache search linux-source

Чтобы получить вышестоящую версию ядра:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git

В приведенной выше ссылке "надежный" - это кодовое название версии Ubuntu. Вы можете узнать кодовое имя установленной вами версии Ubuntu через:

cat /etc/lsb-release
apt-get source linux

это самый простой способ. Он загрузит исходный код из вашего репозитория - и он будет таким же, как версия, которую вы используете (при условии, что вы еще не настроили его).

Но если вы хотите найти, где поддерживается исходный код, вы можете запустить:

apt-cache showsrc linux

Найдите атрибут 'Vcs-' (система контроля версий). Обычно это будет репозиторий git (Vcs-Git) или mercurial.

Примечание - эти команды работают с любым пакетом. Просто замените "linux" на интересующий вас пакет. А также обратите внимание, что 'apt-get source' не нуждается в доступе sudo и будет сбрасывать исходный код в ваш текущий каталог.

Просто выберите один из:

sudo apt install linux-source  # downloads into system directorysudo apt source linux-source  # downloads into working directory

Если вам скажут указать некоторые URL-адреса "источников" в вашем sources.list, перейдите к редактированию вашего /etc/apt/sources.list файл и раскомментируйте желаемый deb-src строка, например (если вы используете Ubuntu):

deb http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted

Удаление # в этой последней строке включены репозитории исходных текстов для загрузки, включая исходные тексты ядра.

Замечания:

  • Используйте современные инструменты; избегайте apt-get.
  • Эти команды загружают исходный код для вашего текущее ядро (в моем случае 4.4.0-75-generic например).
  • При загрузке в системный каталог файлы сохраняются в /usr/src/linux-source-4.4.0/ (например).

Загрузите исходный код непосредственно с панели запуска

Как ни странно, все рекомендуют apt-get source который не работает большую часть времени, если вы ищете конкретную версию ядра:

Допустим, вам нужен исходный код ядра для 3.19.0-58 :
apt-get source linux-image-3.19.0-58-generic получите исходный код для последнего ядра в серии: в данном случае 3.19.0-80, что не то, что вы просили.

Итак, у вас есть два варианта:

1) Откажитесь, установите ядро 3.19.0-80 и используйте apt-get source

2) Получить исходный код непосредственно с панели запуска:

links

  • Поместите их в новый каталог, распакуйте с помощью dpkg-source -x *.dsc

Записи:

  • Должен быть лучший способ.
  • Вы можете получить нужную вам версию из git, но вам предстоит большая загрузка. См. раздел "Получение исходных текстов ядра для выпуска Ubuntu с помощью git" в Исходный код ядра Ubuntu Wiki.

Обычно я просто устанавливаю пакет “linux-source” из synaptic, когда выполняю пользовательскую компиляцию для одной из своих машин, но, учитывая, что вы занимаетесь разработкой, вам может понадобиться самая последняя версия.

Эта ссылка может быть вам полезна:
https://help.ubuntu.com/community/Kernel/Compile/