Как создать файлы .ko в Linux

Я написал один драйвер для одного устройства в Linux. Как я могу создать (используя gcc ) файл .ko чтобы я мог вставить его в ядро?

  • Как изменить аргументы по умолчанию на gcc Когда я запустил Make "filename"
  • Модуль ядра VMware: совместимая версия gcc не найдена
  • Запуск программ на Linux в Linux
  • Ядро Linux, отсутствует символ «__fentry__»
  • Как изменить CFLAGS для autogen.sh
  • .dtors выглядит доступным для записи, но попытки написать segfault
  • Перекомпилируйте gcc со встроенной версией
  • Как мы можем установить devtoolset-4.0 на CentOS 6.7
  • 2 Solutions collect form web for “Как создать файлы .ko в Linux”

    Создайте Makefile как это.

     ifneq ($(KERNELRELEASE),) obj-m := mymodule.o else KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules install: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install %: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $@ endif 

    Предполагая, что источник вашего модуля находится в mymodule.c , запуск make создаст mymodule.ko .

    Короткий ответ: вы не можете. Файл .ko – это больше, чем просто скомпилированная версия вашего источника драйвера. Система сборки ядра включает в себя некоторую дополнительную информацию, например (версия компилятора, зависимости модулей, …).

    Вероятно, вы можете прорваться через систему сборки ядра, чтобы найти все необходимые операции, но не следует. Это почти наверняка сломается со следующей версией ядра или после нее. Вы должны использовать поставляемый файл makefile.

    Linux и Unix - лучшая ОС в мире.