Atualizar módulo / driver único do kernel

1

Eu precisava de uma versão mais recente de um módulo Kernel em um kernel bastante antigo.

Como posso substituir um único módulo de kernel do kernel linux principal e compilar somente este módulo?

    
por Alex 02.12.2012 / 15:45

1 resposta

2

Um aviso: Não há garantias de que a nova versão do driver é compatível com o kernel antigo. Mas vale a pena tentar.

  1. Encontre o driver mais novo no kernel. Existem duas opções: Você pode usar o driver original do kernel do kernel git, por exemplo, no link . É útil selecionar uma tag para encontrar a versão específica do kernel que você precisa. Faça o download dos arquivos thedriver.h e thedriver.c específicos e coloque-os em um novo diretório.

    A segunda opção é buscar o novo kernel do Ubuntu a partir do link ou via apt-get source ...

  2. Instale os pacotes build-essentials e linux-kernel-headers

  3. Agora, criamos um makefile para este módulo único, conforme mostrado em cyberciti.biz , thedriver.o precisa ser substituído pelo nome do driver. Na pasta que contém o código do driver, crie um arquivo Makefile com o seguinte conteúdo:

    obj-m += thedriver.o
    
    all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    
    clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
    
  4. Agora, neste diretório, digite make para compilar o driver.

  5. Se tudo funcionar bem, um arquivo thedriver.ko deve ter sido criado para ser colocado na pasta /lib/modules/$kernelversion/kernel/drivers (não esqueça de criar um backup)

por 02.12.2012 / 16:04