Como compilar um driver de dispositivo linux

Compilar um driver de dispositivo Linux

Os controladores de cargas de dispositivos Linux kernel e é o núcleo do sistema operacional em todas as versões do Linux. Os drivers de dispositivo são carregados automaticamente para o hardware suportado na maioria apt e distribuições baseadas em RPM. Se o seu hardware não é carregado automaticamente e o fabricante fornece um driver de dispositivo, você pode instalá-lo manualmente. módulos compilados pode ser carregado e adicionou-se a configuração do núcleo imediatamente. O código-fonte deve primeiro ser compilados usando os cabeçalhos do kernel ou código fonte completo.

Compilando um módulo

  • Faça o download do código-fonte para o módulo do kernel.

  • Digite o seguinte comando em uma janela de terminal para instalar os cabeçalhos do kernel:

    RPM distribuições baseadas: su -c `yum install kernel-devel`

    distribuições baseadas APT: sudo apt-get install linux-headers - $ (uname -r)

    Use o comando correto para sua versão do Linux. Certifique-se de digitar os comandos exatamente como mostrado, incluindo aspas simples.

  • Digite o seguinte comando para alterar para o diretório do código-fonte:

    cd / home / myuser / modulecode

    Alterar "/ Home / myuser / modulecode" para a localização do módulo de código fonte.

  • Digite o seguinte comando para criar um "makefile:"

    vi Makefile

    Isso abre o editor de texto vi e cria o makefile. o "faço" comando usa o makefile para compilar o módulo.

  • Digite os seguintes seis linhas de código no editor de texto:

    obj-m = mymodule.o

    KVERSION = $ (shell uname -r)

    todos:

     make -C / lib / modules / / construir M = $ (PCD) módulos $ (KVERSION)

    limpar:

     make -C / lib / modules / $ (KVERSION) / construir M = $ (PCD) limpa


    Substituir "mymodule" com o nome do módulo que você está compilando. Salve o vi arquivo e saia.

  • Digite o seguinte comando para compilar o módulo:

    faço

  • Digite os seguintes comandos para carregar e descarregar o módulo:

    Carga: su -c `mymodule.ko insmod`

    Descarregar: su -c `mymodule rmmod`

    Substituir "mymodule" com o nome do módulo que está sendo carregado ou descarregado.

Carregando módulos automaticamente na inicialização

  • Digite o seguinte comando em uma janela de terminal:

    su -c `mkdir -p / lib / modules / $ (uname -r) / kernel / drivers / mymodule`

    Substituir "mymodule" com o nome do módulo. Este comando cria um diretório para armazenar o módulo.

  • Digite o seguinte comando para copiar o módulo para o novo diretório:

    su -c `cp /modulepath/mymodule.ko / lib / modules / $ (uname -r) / kernel / drivers / mymodule /`

    Substituir "ModulePath" e "mymodule" com o caminho correto e nome do módulo.

  • Digite o seguinte comando:

    su -c `vi / etc / modules`

    Este comando abre o arquivo de configuração do módulo de todo o sistema para edição.

  • Adicione o seguinte ao final do arquivo:

    mymodule

    Substituir "mymodule" com o nome do módulo. Feche e salve o arquivo. As alterações entrarão em vigor na próxima vez que o sistema for reiniciado. Já não será necessário carregar manualmente e descarregar o módulo.

De esta maneira? Compartilhar em redes sociais:

LiveInternet