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

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

  • как установить gcc4.8 в netbsd 6.1.3?
  • Как перекомпилировать пакет Debian с -O?
  • Ошибка перекрестного компиляции ядра linux с помощью buildroot
  • Невозможно найти libgmp при компиляции GCC 4.5.2
  • как указать libstdc ++. so.6 использовать
  • Компиляция и сборка с использованием make
  • Выберите версию gcc для компиляции модулей vmware
  • Ошибка GCC при попытке выполнить команду 'cc1'
  • 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

    Linux; запускать сценарий, когда конкретный хост становится доступным (входит в систему в AP)

    Каков правильный способ добавления недостающих дистрибутивов в исполняемый FreeBSD?

    Терминал изменил папку по умолчанию, чтобы начать с

    Команда sudo является неприемлемой при вызове из файлового менеджера

    Права пользователя на установленном USB-Stick

    Какие папки следует исключать / исключать при миграции сервера с помощью rsync

    Куда ушло 47 гигабайт пространства?

    Как перейти на веб-страницу и установить флажок html

    Ошибка при установке CF-карты

    Как определить, заблокированы ли администраторы пакетов прокси-сервером

    Почему я случайно теряю фокус из активного окна в KDE?

    Явная загрузка модуля ядра при запуске

    Подчиненные GIDs / UID с LXC и для непривилегированного пользователя?

    В чем разница между «cat file» ./binary "и" ./binary <файл "?

    cdc_ether 2-1: 2.0 net0: kevent 11 может быть отброшен

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