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

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

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

29
задан 30 June 2013 в 17:29

4 ответа

Это приведет к исходному коду стандартного ядра:

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

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

cat /etc/lsb-release
29
ответ дан 30 June 2013 в 17:29
apt-get source linux

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

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

apt-cache showsrc linux

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

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

10
ответ дан 30 June 2013 в 17:29

Загрузите исходный код прямо с Launchpad

Как ни странно, все рекомендуют 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» в Исходный код ядра Wiki Ubuntu .
6
ответ дан 30 June 2013 в 17:29

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

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

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

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/ (например).
6
ответ дан 30 June 2013 в 17:29

Другие вопросы по тегам:

Похожие вопросы: