Problemas ao instalar drivers do linux a partir do makefile

0

Como esse foi mais um problema de software / driver, eu postei a pergunta no SuperUser em vez do EE Exchange.

Pesquisei um pouco na internet e encontrei um muito útil Ponte do conversor USART para USB . O CP2102 é um dispositivo programável com muitas configurações no que diz respeito ao enquadramento de dados. Como tal, um driver para o dispositivo deve ser usado para interagir e modificar esses parâmetros.

No site da Silabs, encontrei este driver para o linux (kernel 3.14.4-1 no Arch Linux). O problema é que esse driver é apenas um único programa em C com documentação zero. Um arquivo include make é tão útil, considerando que possui uma única linha que falha (para mim) em tempo de execução.

obj-m = cp210x.o
KVERSION = $(shell uname -r)
all:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

A fonte do driver pode ser encontrada aqui .

Onde o meu erro é

make -C /lib/modules/3.14.4-1-ARCH/build M=/home/branden/Desktop/Linux_3.x.x_VCP_Driver_Source modules

make[ 1 ]: Entering directory '/usr/lib/modules/3.14.4-1-ARCH/build'

make[ 1 ]: *** No rule to make target 'modules. Stop.

make[ 1 ]: Leaving directory '/usr/lib/modules/3.14.4-1-ARCH/build'

Makefile:4: recipe for target 'all' failed

make: *** [all] Error 2

Não há documentação além de:

  1. make ( your cp210x driver )
  2. cp cp210x.ko to /lib/modules//kernel/drivers/usb/serial
  3. insmod /lib/modules/
  4. insmod cp210x.ko

O que é realmente direcionado para o Ubuntu. O sistema operacional que uso é o Arch Linux, então percebo que pode haver algumas discrepâncias, mas não consigo resolvê-las.

Alguém pode fornecer alguma orientação sobre as etapas para instalar esse driver (ou pelo menos onde procurar) e por que há tanta falta de documentação? Existem suposições aqui que eu não conheço? Como alguém deve usar isso? Se você olhar na fonte, existem estruturas sendo usadas como argumentos para funções que nunca são definidas, tanto quanto eu posso dizer. Talvez eles façam parte dos arquivos de cabeçalho incluídos no topo, mas também não consegui encontrar alguns deles na minha máquina.

    
por sherrellbc 26.05.2014 / 18:54

2 respostas

1

Você não carregou os cabeçalhos do Linux:

 sudo pacman -S linux-headers

resolve o seu problema. Sua mensagem de erro informa que não há regra em / linux / modules / $ (uname -r) / build para criar módulos. Se você olhar dentro desse diretório neste momento, você encontrará nada ou talvez um arquivo vmlinux. Depois de atualizar com o comando acima, você encontrará todos os módulos que você precisa.

Esta emissão não é específica do Arch, é comum a todas as distribuições do Linux.

    
por 26.05.2014 / 19:29
0

Eu tive o mesmo problema quando instalei o linux-headers. pacman instalou um pacote de um kernel mais novo. Eu resolvi meu problema recompilando o módulo logo após atualizar tudo:

pacman -Syu && pacman -S linux-headers
    
por 04.07.2014 / 09:29