Различие между этими двумя методами загрузки исходного кода Linux

Информация о системе:

root@zaidi:/home/uzair# uname -a
Linux zaidi 3.11.0-26-generic #45~precise1-Ubuntu SMP Tue Jul 15 04:04:35 UTC 2014 i686 i686 i386 GNU/Linux

Я пытаюсь записать драйвер простого устройства. Для этого я должен загрузить исходный код ядра, которое я выполняю (право?)

Я нашел следующие два метода:

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


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

Каково различие между этими двумя командами? Какой на самом деле требуется для создания драйвера. У меня есть make-файл как это:

# Makefile – makefile of our first driver
# if KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq (${KERNELRELEASE},)
    obj-m := ofd.o
# Otherwise we were called directly from the command line.
# Invoke the kernel build system.
else
    KERNEL_SOURCE := /usr/src/linux
    PWD := $(shell pwd)
default:
    ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules
clean:
    ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean
endif

Я хотел бы иметь исходный код в /usr/src/linux

2
задан 15 September 2014 в 22:50

2 ответа

Различие между процессом установки apt-get install И apt-get source:

  1. sudo apt-get install <package>пакеты установок с их зависимостями из репозиториев и кэшируемых файлов найдены в /var/cache/apt/archives в .deb расширение.
  2. sudo apt-get source <package> загрузит исходные файлы в текущем каталоге.

Теперь бросьте взгляд на то, как создать и установить пакет от загруженных исходных файлов (из репозитория):

  • Сначала установите зависимости сборки командой: sudo apt-get build-dep <package>
  • Затем загрузите исходный пакет командой: sudo apt-get source <package>
  • Затем перейдите к каталогу, содержащему источник cd и используйте dpkg-buildpackage -uc -us -b получить двоичные файлы, dpkg-buildpackage -uc -us -S для исходного пакета, не используя sudo.
  • Это получает/создает .deb файлы, которые могут быть установлены dpkg -i <file-name>.deb

Но если <package> непосредственно доступно для установки из репозиториев затем, рекомендуется установить пакеты следующей командой

sudo apt-get install <package>

Для компиляции пакета от посещения исходного кода: общественная справка

1
ответ дан 5 August 2019 в 01:39

Необходимо только быть нужно соответствующее linux-headers пакет:

apt-cache show linux-source-3.13.0
Package: linux-source-3.13.0
...
Description-en: Linux kernel source for version 3.13.0 with Ubuntu patches
This package provides the source code for the Linux kernel version
3.13.0.
 .
This package is mainly meant for other packages to use, in order to build
custom flavours.
.
If you wish to use this package to create a custom Linux kernel, then it
is suggested that you investigate the package kernel-package, which has
been designed to ease the task of creating kernel image packages.
.
If you are simply trying to build third-party modules for your kernel,
you do not want this package. Install the appropriate linux-headers
package instead.

Сделайте:

sudo apt-get install linux-headers-$(uname -r)
0
ответ дан 5 August 2019 в 01:39

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

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