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

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

  • Простой скрипт BASH, обрабатывающий флаги как команды
  • ошибка при компиляции ffmpeg: gcc не может создать исполняемый файл
  • Установка расширения php phalcon
  • Как построить Shallot
  • Linux / compiler-gcc5.h: нет такого файла или каталога
  • Как установить GCC в систему без компилятора?
  • Проблемы с компиляцией Python 3.6.0+ в Qubes OS Debian
  • Я пытаюсь скомпилировать alsa-driver-RTv5.18, но получить дату-время ошибки для gcc 4.9.2
  • 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.

    Interesting Posts

    Разбиение файла на каждые 10000 номеров (не строк)

    awk regex соответствует неправильному?

    Строковые артефакты из истории в командной строке

    Открыты ли файлы процессами, загруженными в ОЗУ?

    Инкрементное резервное копирование с жесткими ссылками для нескольких папок

    Сделать файлы доступными через локальный адрес

    Где уходит трейлинг-символ новой строки из моей подстановки?

    Как найти файл, не зная его имени

    Как выполнить программу в gnome и заставить ее использовать другую тему gtk, отличную от стандартной?

    Смешанное прописное и строчное слово в слове

    cp все файлы и подкаталоги в каталоге ksh

    Как сделать anaconda пропустить установку пакета?

    redirect stdout и stderr в сценарии bash

    Как я могу перечислить все страницы руководства с определенным текстом без отображения содержимого?

    BASH: запустить фоновый процесс и проверить, когда он заканчивается

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