Я планирую написать несколько драйверов устройств, и мне нужно получить исходный код ядра Linux. Моя версия ядра Linux - 3.2.0-23-generic-pae, и я загрузил изображение с этот. Во многих статьях, которые я прочитал, говорится, что мне нужно иметь все дерево ядра, чтобы начать вставлять новые модули.
Достаточно ли, если я скачаю это изображение и вставлю его в usr/src/ папка или я должен сделать что-то еще?
это самый простой способ. Он загрузит исходный код из вашего репозитория - и он будет таким же, как версия, которую вы используете (при условии, что вы еще не настроили его).
Но если вы хотите найти, где поддерживается исходный код, вы можете запустить:
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) Получить исходный код непосредственно с панели запуска:
Прокрутите страницу вниз, нажмите на ссылку "Источник:", и вы окажетесь на Исходная страница пакета сейчас.
Прокрутите вниз и загрузите .tar.gz, .diff.gz, .dsc файлы:
Поместите их в новый каталог, распакуйте с помощью dpkg-source -x *.dsc
Записи:
Должен быть лучший способ.
Вы можете получить нужную вам версию из git, но вам предстоит большая загрузка. См. раздел "Получение исходных текстов ядра для выпуска Ubuntu с помощью git" в Исходный код ядра Ubuntu Wiki.
Обычно я просто устанавливаю пакет “linux-source” из synaptic, когда выполняю пользовательскую компиляцию для одной из своих машин, но, учитывая, что вы занимаетесь разработкой, вам может понадобиться самая последняя версия.