Desenvolva Drivers de Dispositivo Ubuntu

1

Estou tentando escrever um driver de dispositivo simples de acordo com o livro "Linux Device Drivers", mas não consigo configurar o caminho de inclusão correto. Eu estou usando um script de make simples. O sistema operacional é o Ubuntu 14.04 LTS com o kernel 3.13.0-29-genérico em um computador antigo baseado em Intel (Pentium D (EMT / 64 bits). Eu tentei:

I/usr/src/include
    - > Erro não pode encontrar module.h (deve haver links, mas não estava lá)

I/usr/src/linux-headers-3.13.0-29-generic/include and copied .config from /boot/...
  - > funciona por um tempo, mas não consegue encontrar asm inclui

No diretório include acima, encontrei um diretório chamado asm-generic, por isso criei um link asm -> asm-generic . Trabalha novamente um pouco mais até que um arquivo asm/Thread_info.h seja pesquisado.
Encontrei muitos deles na estrutura de diretório dependente de hardware. Antes que eu estrague todo o sistema com a criação de mais links, qual é a maneira correta de configurar o caminho de inclusão?

    
por Hasso 24.07.2014 / 12:22

1 resposta

0

Para drivers do kernel, você deve incluir o caminho /lib/modules/$(uname -r)/build/include . Não use /usr/src/include - esse é o caminho para os cabeçalhos de espaço do usuário.

Note que o livro "Linux Device Drivers" está desatualizado agora (~ 10 anos) e muitos dos exemplos não serão compilados. Existe um repositório do github que tem a fonte original corrigida para compilar com kernels mais recentes no link

    
por bain 24.07.2014 / 14:20