Como criar arquivos .ko no Linux

6

Eu escrevi um driver para um dispositivo no Linux. Como posso criar (usando gcc ) um arquivo .ko para que eu possa inseri-lo no kernel?

    
por Renjith G 08.12.2010 / 06:24

2 respostas

8

Crie um Makefile como este.

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

Supondo que a origem do seu módulo esteja em mymodule.c , a execução de make criará mymodule.ko .

    
por 08.12.2010 / 07:29
2

Resposta curta: você não pode. Um arquivo .ko é mais do que apenas uma versão compilada de sua fonte de driver. O sistema de compilação do kernel inclui algumas informações extras, por exemplo (versão do compilador, dependências do módulo, ...).

Você provavelmente pode vasculhar o sistema de compilação do kernel para encontrar todas as operações necessárias, mas não deve. É quase certo que isso irá romper com o próximo lançamento do kernel, ou o seguinte. Você deve usar o ephemient do makefile fornecido.

    
por 08.12.2010 / 16:32