Bê-a-bá da compilação. Preciso dessa ajuda.

Iniciado por Imfernandes, 24 de Julho de 2006, 20:09

tópico anterior - próximo tópico

Imfernandes

Pessoal, tenho uns 5 meses de Linux e agora tô querendo aprender a compilar. Já li vários textos ensinando, arquivos read me, tópicos aqui do fórum, etc. Aprendi duas coisas:
- Que compilar pode não ser para iniciantes
- Que mesmo com vários textos e tópicos, não existe nada a nível iniciante

O fato é que a gente deve começar do início e por mais que isso pareça óbvio, não há tópicos para esse tipo de iniciante como eu e várias outras pessoas que vi desamparadas aqui.

Sou leigo, meu ramo profissional não é a informática, mas apesar disso a tenho como hobby, gosto muito. Mas preciso de paciência de vcs para me ensinar essa técnica (?) de compilar. No momento quero compilar o drive da minha webcam que só achei em arquivo tar.bz2. Já procurei em .deb, mas não tem.

Me sentiria satisfeito se além de aprender essa compilação pudesse fazer desse tópico o verdadeiro bâ-a-bá da compilação e que este pudesse ajudar essas várias outras pessoas que devem estar perdidas como eu.

Bom, descompactei esse arquivo tar.bz2. Foi criada uma pasta com vários arquivos texto. Li o read me e tentei o makefile, mas é tão enrolado para um leigo que não fez muito sentido. Vamos lá.
Alguém gostaria de acompanhar o caso?

O que faço no terminal? Escrevo make file e...?  ???

Desde já agradeço.

Imfernandes

Só para adiantar, o drive é o OV51x USB Webcam Driver for 2.2, 2.4, and 2.5 kernels.

Imfernandes

Continuando...

quando cheguei pelo terminal até a pasta do drive, digitei "make clean" como diz o read me file em um tópico de "quick installation" e a resposta foi:

imfernandes@Imfernandes:~/Downloads/ov51x-1.65-1.11-mark$ make clean
rm -f *.mod.c *.ko *.o *~ core *.i

O que isso quer dizer?

gaijin

Bom, não sei quanto ao driver da sua cam, mas normalmente é assim:

Primeiro você precisa dos pacotes de senvolvimento importantes, eles servem para a maioria dos casos, instale o build-essential através do apt, ele vai instalar um compilador C e outras coisas.

sudo apt-get install build-essential

Com o build-essential instalado, agora é a hora de compilar. Normalmente segue-se um padrão, mas você pode consultar isso no README ou INSTALL para ver como faz aí.

./configure (ou ./setup)
make
make install

Caso não instale, atente para o que ele vai escrever na tela, normalmente ele avisa a dependência que você não tem e que impossibilitou a instalação do programa.

Obs: Evite "floodar" em tópicos. Para fazer correções, apenas modifique seu tópico original.  ;)



"Conhece-te a ti mesmo." Oráculo de Delfos

Como proceder quando tenho uma dúvida? (7 passos) http://ubuntuforum-pt.org/index.php?topic=8212.0

Imfernandes

Ok. Esse ./configure faço assim que o terminal abrir ou em algum outro caminho?
Pq ao fazer logo que ele abriu o resultado foi esse:

imfernandes@Imfernandes:~$ ./configure
bash: ./configure: No such file or directory
imfernandes@Imfernandes:~$ ./setup
bash: ./setup: No such file or directory

ou

imfernandes@Imfernandes:~/Downloads/ov51x-1.65-1.11-mark$ ./configure
bash: ./configure: No such file or directory
imfernandes@Imfernandes:~/Downloads/ov51x-1.65-1.11-mark$ ./setup
bash: ./setup: No such file or directory

Como vc pode ver, o resultado foi o mesmo.

Ah, o build-essential já havia sido instalado por mim.

gaijin

Ele tem que ser feito na pasta do programa. Cola o README ou INSTALL aqui.
"Conhece-te a ti mesmo." Oráculo de Delfos

Como proceder quando tenho uma dúvida? (7 passos) http://ubuntuforum-pt.org/index.php?topic=8212.0

Imfernandes

É, eu fiz como vc pôde ver, mas nada adiantou.

Aí vai o Read me:

OV51x USB Webcam Driver for 2.2, 2.4, and 2.5 kernels

More thorough installation instructions are available in:
doc/install.html
or at:
http://alpha.dyndns.org/ov511/install.html

Quick Installation:

   make clean
   make
   (log in as root)
   make install   (Gives a list of the supported installation types)
   (run the appropriate install command)

Compression support:

- For OV511/OV511+ cameras: The decompression module is ov511_decomp.o . You
   must load ov511.o with the "compress=1" module parameter to enable it.

- For OV518/OV518+ cameras: The decompression module is ov518_decomp.o .
   Compression will always be enabled; no need to specify compress=1.



gaijin

Acabei de ver que este driver está disponível nos repositórios.

sudo apt-get install ov511-source

:P
"Conhece-te a ti mesmo." Oráculo de Delfos

Como proceder quando tenho uma dúvida? (7 passos) http://ubuntuforum-pt.org/index.php?topic=8212.0

Imfernandes

Hum, que ótimo. Parece que instalou aqui. Mas onde se vê esses repositórios?

Outra coisa, não está funcionando ainda assim. Bom, mas aí pode ser uma incompatibilidade do drive, né?! Pq na página que me indicaram dizia que minha webcam pegava com esse drive, mas tinham vários deles e peguei os dois mais recentes. De qq jeito, todos eles eram ov511X.

De qq maneira obrigado pela ajuda. Mas ainda vou querer aprender a compilar! rs

Sou brasileiro e não desisto nunca! hahaha

Lamego

CitarÉ, eu fiz como vc pôde ver, mas nada adiantou.
Não adiantou como ? Qual foi o erro que deu ?

Alem disso antes de tentar compilar um programa você precisa saber o basico de utilizar um terminal, navegar nas pastas por terminal, etc, procura um guia de  comandos, sem isso não vai saber compilar nada...
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

Imfernandes

É que não sei se instalou. Na verdade acho que instalou sim, mas não está funcionando. Digo isso baseado no comando lsusb que me mostra em uma das saídas a cam:

imfernandes@Imfernandes:~$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 05a9:8519 OmniVision Technologies, Inc.
Bus 002 Device 001: ID 0000:0000

Mas não consigo fazê-la funcionar.

Acabei de achar no google o que seria um suposto bug no módulo ov511 do kernel. Veja:

Summary: Módulo ov511 do kernel com defeito
           Product: Linux kernel MM
           Version: 2.5 (beta)
          Platform: All
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: linux mm
        AssignedTo: linux-mm-bugs@nl.linux.org
        ReportedBy: carlos_arroyo@uol.com.br


Quando eu fui instalar o kernel 2.4.5 não foi possível a compilação do módulo
ov511 que serve para as câmeras de vídeo. Apareceu uma mensagem de erro
reclamando sobre uma variável indefinida (version) em ov511.

Eu editei o arquivo fonte e inclui a seguinte linha, posicionada na linha 34 do
arquivo (ou seja, logo no início):

    33  /* Hacked by Carlos <chaplin40@yahoo.com.br> */
    34  static const char version[] = "1.28";

A numeração que aparece aqui é o número da linha e não faz parte do arquivo!

Após a colocação dessa linha com a declaração da variável, compilei os módulos
do kernel e o kernel sem problemas. O módulo também funcionou adequadamente.

Não sei se a versão do kernel lançado pela Conectiva tem o mesmo problema, de
qualquer forma fica aqui minha observação.
-
Linux-mm-bugs:  bugzilla list for the Linux-MM subsystem
Archive:        http://mail.nl.linux.org/linux-mm-bugs/
Web site:       http://linux-mm.org/
Development:    linux-mm@kvack.org

Será que no Ubuntu existe esse mesmo bug?