“make” pára durante a instalação de tty0tty (emulador de modem nulo)

1

Eu tento instalar tty0tty um emulatom de modem nulo como no guia de instalação vinculado, mas eu tenho um problema em "3 Construa o módulo do kernel a partir da fonte fornecida ":

user@linux-bmne:/run/media/.../Downloads/tty0tty-1.2/module> make
make -C /lib/modules/3.16.7-29-desktop/build M=/run/media/.../Downloads/tty0tty-1.2/module modules
make[1]: Entering directory '/lib/modules/3.16.7-29-desktop/build'
make[1]: *** No rule to make target 'modules'. Stop.
make[1]: Leaving directory '/lib/modules/3.16.7-29-desktop/build'
Makefile:26: recipe for target 'default' failed
make: *** [default] Error 2

Sim, o makefile está na pasta module . Também /lib/modules/3.16.7-29-desktop/build exit (depois de eu mkdir build in 3.16.7-29-desktop ). Você pode dar uma olhada na estrutura de pastas do tty0tty aqui (é muito simples). Eu também tentei sudo make , mas não fez diferença.

O problema No rule to make target parece ser comum, mas não encontrei uma solução correspondente nesse caso. Eu não sei se isso é útil, mas meu sistema está aberto suse 13.2 x86_64.

Eu ficaria grato por sua ajuda.

    
por goulashsoup 08.03.2016 / 12:15

1 resposta

1

Para construir um módulo do kernel, você precisa de alguns arquivos de cabeçalho que são gerados durante a construção da imagem principal do kernel. O makefile espera que esses cabeçalhos estejam disponíveis em /lib/modules/3.16.7-29-desktop/build , onde o 3.16.7-29-desktop é determinado pelo kernel em execução. Juntamente com os arquivos de cabeçalho, há um makefile que pode ser usado para construir módulos de terceiros. O makefile em module chama esse makefile, mas não está presente em seu sistema.

Você precisa instalar os cabeçalhos do kernel para o seu sistema. No OpenSUSE, esse é o pacote kernel-devel . Na maioria das distribuições, /lib/modules/VERSION/build é um link simbólico para onde a árvore de cabeçalho do kernel está localizada. Eu não sei se o OpenSUSE faz isso; se isso não ocorrer, crie o link simbólico ou passe o local real dos cabeçalhos (o diretório que contém os arquivos Makefile e Module.symvers e os subdiretórios include e arch ) como um argumento para make

make KERNELDIR=/path/to/kernel-headers

O último método é o que você precisará usar se quiser construir o módulo para uma versão do kernel que não é a que está sendo executada atualmente.

    
por 09.03.2016 / 01:43