Ajuda em compilaçao...coisa de iniciante... :oops:

Iniciado por diegocesarmota, 08 de Outubro de 2005, 17:58

tópico anterior - próximo tópico

diegocesarmota

Ola!

Eu uso uma ASUS A7v600-x e a placa de rede nao foi reconhecida. Peguei no site do fabricante o driver e me deparei com um probleminha: ele me manda compilar alguns arquivos *.c e *.h, nas nao sei como compila-los! Ja instalei toda a biblioteca de desenvolvimento e tudo o q achei que envolvia gcc...acho que ja estou com o carro pronto mas nao sei girar a chave!

Alguem me ajuuda! :shock:

Abraços!

LedStyle

Tem algum arquivo "INSTALL" e/ou arquivo "README" ai no driver? Geralmente neles que você encontra as instruções de como proceder.

Se você achar e conseguir beleza, mas se você achar e não conseguir posta os arquivos ai pragente dar uma lida.


[]s

diegocesarmota

Ele tem um arquivo de instruçao, mas num vi nele nada que me diga como compilar os arquivos...aih vai:
Citar**  VIA Rhine Family Fast Ethernet Adapter
**
**  Linux Driver
**
**  v4.22  Aug. 2002
**
**


Introduction:
=============

   The instructions listed below are for linux driver installation. You must
   compile the source code to generate rhinefet.o and use insmod command to
   insert rhinefet.o as module.


Contents of the Subdirectory:
=============================

   linux.txt               This file.
   rhine_main.c            The linux core driver source code file
   rhine_proc.c            The linux core driver source code file
   rhine_vmns.c            The vmns driver support source file
   rhine_wol.c             The linux core driver source code file
   rhine_drv.h             The linux core driver header file
   rhine_wol.h             The linux core driver header file
   rhine_vmns.h            The vmns driver support header file
   rhine_proc.h            The linux core driver header file
   rhine_cfg.h             The vmns driver support header file
   rhine.h                 The linux core driver header file
   kcompat.h               The linux core driver header file
   Makefile                Makefile for generating driver object file

Kernel Supported
================
   This driver support linux kernel version 2.2.x and 2.4.x now.

Installation
============
   Please enter the following commands at the UNIX prompt. Remember, UNIX is
   case sensitive.

   1) Create a temporary directory:
       mkdir /temp

   2) Change to the temporary directory:
       cd /temp

   2) Copy driver (rhinefet.tgz) from DOS disk, (mcopy below is one tool in
      mtools, if you didn't install mtools, you can type
      'mount -t msdos /dev/fd0 /mnt' and use 'cp /mnt/rhinefet.tgz /temp'
      command to copy the driver to the temporary directory):
       mcopy a:rhinefet.tgz .

   3) untar the archive file:

       tar xzvf rhinefet.tgz
       cd rhinefet

   4) Compile the driver source files and it will generate rhinefet.o, and
      copy it to correct driver installation path (The installation directory
      is different in different kernel versions. In 2.4.x kernel, the path is
      /lib/modules/KERNEL_VERSION/kernel/drivers/net/, and in 2.2.x kernel,
      the path is /lib/modules/KERNEL_VERSION/net/, the KERNEL_VERSION (see
      above) means the kernel version of your Linux distribution. If you don't
      know your kernel version , please run 'uname -r' command in command
      line. The kernel version will look like '2.2.16', '2.4.2-2smp' etc.) :
       make install

   5) Check configuration file (/etc/modules.conf or /etc/conf.modules,it
      depend on your Linux distribution) for loading kernel modules. Make sure
      there is the following content in the configuration file, where # is
      interface number (eg: alias eth0 rhinefet):
       alias eth# rhinefet

   6) Reboot now:
       shutdown -r now

   7) Install your driver module (If the driver module is in the wrong place,
      an error message will appear, and say that can't find the driver
      module):
       insmod rhinefet

   8) Use ifconfig command to assign the IP address, where # is network
      interface number:
       ifconfig eth# <IP>

   9) Check the interface works:
       ping <remote_host_IP>


Uninstallation
==============
   Please enter the following commands to uninstall your driver:
       make uninstall

Note
====
   1) Make sure the link file /usr/src/linux (or /usr/src/linux-2.4) is linked
      to correctly kernel sources directory (eg: if you run 'uname -r', it
      appears "2.4.2-2", then the link file must be linked to
      /usr/src/linux-2.4.2 directory, or you will fail in compiling),
      and make sure there are kernel header files in /usr/src/linux/include
      directory (or /usr/src/linux-2.4/include), we need kernel header files
      in compling.

   2) If you can't install driver in SUSE Linux using insmod or modprobe
      commands, and error messages appear (see below), please run 'uname -r'
      in command line. And make sure the result of 'uname -r' (eg: 2.4.2-4GB)
      is the same with the definition of UTS_RELEASE in
      /usr/src/linux/include/linux/version.h. If not, please modify the
      definition of UTS_RELEASE in /usr/src/linux/include/linux/version.h.

        rhinefet.o: kernel-module version mismatch
            rhinefet.o was compiled for kernel version 2.4.2
            while this kernel is version 2.4.2-4GB.

   3) Make sure that your kernel is built with network, fast_ethernet
      and module support. Otherwise, you have to rebuild your kernel (see
      below).
       1. Go to /usr/src/linux (or /usr/src/linux-2.4) directory:
           cd /usr/src/linux
       2: Run 'make menuconfig' or 'make config' in text mode, or 'make
          xconfig' in graphic mode.
       3: Mark the options list above.
       4: Exit and rebuild your kernel:
           make dep;make clean;make bzImage
          The file 'bzImage' will be at /usr/src/linux/arch/i386/boot/bzImage
       5: Modify /etc/lilo.conf.(this file specifies where kernel image is)
       6: Run 'lilo'
       7: Reboot, and select the correct kernel image to boot your system.

   4) You can use the utility (like netconfig, linuxconf) in your Linux
      distribution to set your network parameters(like ip,gateway). These
      parameters will be used at boot time. The following is the demonstration
      to show how to use linuxconf (it's a utitlity in RedHat Linux 6.x) set
      the network paramters.
      1. Run linuxconf:
          linuxconf
      2. Enter setting in the Config/Networking/Client tasks/Basic host information/
         and fill out the following information. Where 'xxx' is the IP address
         what you have.
                   IP address:    xxx.xxx.xxx.xxx
                   Netmask:       255.255.255.xxx
                   Net device:    eth0
                   Kernel module: rhinefet

   5) If you can't install driver at boot time.
      If you can install your driver using insmod command, but you can't
      install it at boot time, please check whether the driver is in the
      correct directory (eg: /lib/modules/2.2.XXX/net/), and check the
      /lib/modules/2.2.XXX/modules.dep file, it must include the following
      line:
           /lib/modules/2.2.XXX/net/rhinefet.o:

      You can insert this line using depmod command or insert it manually.
      Also, you must consult your Linux distribution installation guide
      and learn how to set the IP address of your network interface and
      up it at boot time.

   6) If you can't compile this driver, and parse error messages appear,
      please make sure your source code text format is right. You must convert
      your source code text format from MS-DOS to UNIX, as show below (see
      Solution 1 and 2).
      Make sure the files in floppy disk are not rhinefet.tgz file. They must
      be the source code text files (5 files), rhinefet.tgz is not a text file
      , so it can't be converted.

       Solution1:
           If you use mcopy command to copy your driver from floppy disk to
           linux, you can type:
               mcopy -t a:\* .
           then it will convert the format for you.

       Solution2:
           If you use mount command to mount floppy disk to linux, you can
           type:
               mount -t vfat -o conv=t /dev/fd0 /mnt/floppy
           then, when you copy files from /mnt/floppy, these files format will
           be right.

Module Parameter:
=================
The following parameters can be set when we install the driver module. You can add this parameters when
you execute 'insmod' or 'modprobe' command to install the driver (as below).
   insmod rhinefet.o parameter=value1,value2,value3,...
For example, if you have 3 NIC cards, and you want to set the speed_duplex paramter value of them .
You can type the following command to set it.
   insmod rhinefet.o speed_duplex=1,2,3
Then, the parameter value of first card will be 1 (100Mbps half duplex mode), the second card will
be 2 (100Mbps full duplex mode), and the third card will be 3 (10Mbps half duplex mode).
Remember, our driver only support 8 cards parameter setting.

1) speed_duplex
  speed_duplex[] is used for setting the speed and duplex mode of NIC.
  Value:
      0: indicate autonegotiation for both speed and duplex mode (Default).
      1: indicate 100Mbps half duplex mode
      2: indicate 100Mbps full duplex mode
      3: indicate 10Mbps half duplex mode
      4: indicate 10Mbps full duplex mode

2) enable_tagging
  enable_tagging[] is used for enabling VLAN ID setting and enabling
  priority transmit.
  Value:
      0: disable VID setting and priority transmit (Default).
      1: enable VID setting and priority transmit.

3) VID_setting
  VID_setting[] is used for setting the VLAN ID of NIC.
  Value:
      0: default VID.
      1-4094: other VIDs.

4) csum_offload
  csum_offload[] is used for setting the checksum offload ability of NIC.
  Value:
      0: disable csum_offload (Default).
      1: enable checksum offload. (We only support RX checksum offload now)

5) txcsum_offload (For management adapter only)
  csum_offload[] is used for setting the checksum offload ability of NIC.
  Value:
      0: disable (default)
      1: enable


6) flow_control
  flow_control[] is used for setting the flow control ability of NIC.
  Value:
      1: hardware deafult (Default). Use Hardware default value in ANAR.
      2: disable PAUSE in ANAR.
      3: enable PAUSE in ANAR.


7) IP_byte_align
  IP_byte_align[] is used for IP header DWORD byte aligned (For IPVS environment).
  (In some enviroment, the IP header should be DWORD byte aligned,or the packet
  will be droped when we receive it. (eg: IPVS))
  Value:
      0: indicate the IP header won't be DWORD byte aligned (Default).
      1: indicate the IP header will be DWORD byte aligned.


8) tx_thresh
  tx_thresh[] is used for controlling the transmit fifo threshold.
  Value:
      0: indicate the txfifo threshold is 128 bytes (Default).
      1: indicate the txfifo threshold is 256 bytes.
      2: indicate the txfifo threshold is 512 bytes.
      3: indicate the txfifo threshold is 1024 bytes.
      4: indicate that we use store and forward

9) rx_thresh
  rx_thresh[] is used for controlling the receive fifo threshold.
  Value:
      0: indicate the rxfifo threshold is 64 bytes (Default).
      1: indicate the rxfifo threshold is 32 bytes.
      2: indicate the rxfifo threshold is 128 bytes.
      3: indicate the rxfifo threshold is 256 bytes.
      4: indicate the rxfifo threshold is 512 bytes.
      5: indicate the rxfifo threshold is 768 bytes.
      6: indicate the rxfifo threshold is 1024 bytes.
      7: indicate that we use store and forward

10) DMA_length
  DMA_length[] is used for controlling the DMA length.
  Value:
      0: 8 DWORDs
      1: 16 DWORDs (Deafult)
      2: 32 DWORDs
      3: 64 DWORDs
      4: 128 DWORDs
      5: 256 DWORDs
      6: SF(flush till emply)
      7: SF(flush till emply)

11) ValPktLen
   ValPktLen[] is used for controlling driver to receive or drop
   the frame with invalid layer 2 length.
   Value:
       0: Receive frame with invalid layer 2 length.
       1: Drop frame with invalid layer 2 length.

12) wol_opts
   wol_opts[] is used for controlling wake on lan behavior of NIC.
   0: Wake up if recevied a magic packet. (Default)
   1: Wake up if link status is on/off.
   2: Wake up if recevied an arp packet.
   4: Wake up if recevied any unicast packet.
   Those value can be sumed up to support more than one option.

Pequeno, neh? :lol:

Valew ae a ajuda!

LedStyle

Como não cara... acho que você ta precisando comprar uns óculos novos heim... heheheh

Segue a parte importante:

Installation
============
Please enter the following commands at the UNIX prompt. Remember, UNIX is
case sensitive.

1) Create a temporary directory:
mkdir /temp

2) Change to the temporary directory:
cd /temp

2) Copy driver (rhinefet.tgz) from DOS disk, (mcopy below is one tool in
mtools, if you didn't install mtools, you can type
'mount -t msdos /dev/fd0 /mnt' and use 'cp /mnt/rhinefet.tgz /temp'
command to copy the driver to the temporary directory):
mcopy a:rhinefet.tgz .

3) untar the archive file:

tar xzvf rhinefet.tgz
cd rhinefet

4) Compile the driver source files and it will generate rhinefet.o, and
copy it to correct driver installation path (The installation directory
is different in different kernel versions. In 2.4.x kernel, the path is
/lib/modules/KERNEL_VERSION/kernel/drivers/net/, and in 2.2.x kernel,
the path is /lib/modules/KERNEL_VERSION/net/, the KERNEL_VERSION (see
above) means the kernel version of your Linux distribution. If you don't
know your kernel version , please run 'uname -r' command in command
line. The kernel version will look like '2.2.16', '2.4.2-2smp' etc.) :
make install

5) Check configuration file (/etc/modules.conf or /etc/conf.modules,it
depend on your Linux distribution) for loading kernel modules. Make sure
there is the following content in the configuration file, where # is
interface number (eg: alias eth0 rhinefet):
alias eth# rhinefet

6) Reboot now:
shutdown -r now

7) Install your driver module (If the driver module is in the wrong place,
an error message will appear, and say that can't find the driver
module):
insmod rhinefet

Cool Use ifconfig command to assign the IP address, where # is network
interface number:
ifconfig eth# <IP>

9) Check the interface works:
ping <remote_host_IP>


Mas pelo que eu estou vendo ele pe meio antigo heim. Ta falando em kernel 2.4 ainda e agente já está no 2.6. Não sei não se isso vai funcionar!

LedStyle

Vamos la... crie um diretório chamado "temp" no seu desktop e jogue o driver dentro dele (pode fazer isso pelo modo gráfico mesmo).
Ai entra no diretório, clica com o botão direito no driver e da um "Extrair aqui".

Ai abra um terminal, e de um:

cd ~/Desktop/temp

Dai você da o comando:

./configure (tomara que tenha unm arquivo de configuração)
Se ele rodar... vai dizer qualquer coisa que esteja faltando no seu sistema.

Depois da um:

make

Se não der erros da um:
sudo make install

Agora se não tiver um arquivo chamado "Makefile", o comando "make" não vai funcionar... ai só os experts em "c" vão pode te ajudar hehe. Não saberei como compilar.

Se der tudo certo você edita o arquivo /etc/modprobe.conf (ele mudou de nome ja a algum tempo... pra vc ver como o driver é antigo heim) e insere a linha:
alias eth0 rhinefet (sypondo que você só tem 1 placa de rede. Se tiver 2 pode ser que a placa que você esteja tentando configurar seha a eth1).

Dai ele manda vc reiniciar... o micro. Qdo terminar de rebootar da um "insmod rhinefet" pra ver se aparece algum erro.

Se tudo tiver ok configura pela ferramenta do Ubuntu a rede ai.


Eu só pulei alguns passos que da pra fazer pelo ambiente gráfico e traduzi um pouco o que o readme manda fazer.


Boa sorte, você vai precisar hehehe.

diegocesarmota

Fiz o q c disse, LedStyle, mas ele nao tem o arquivo de configuraçao...
E quando eu dou o MAKE, ele me responde:

Makefile:29: ***Linux Kernel source not found. Pare

To perdiido!

LedStyle

Ahh você tem que instalar o kernel source cara...

Abre o gerenciador de pacotes Synaptic e procura la o pacote "linux-source" e o pacote "linux-headers". Instale a versão do seu kernel ok? Pra saber qual a versão da um "uname -r" em qualquer terminal. Ele indicará a versão do kernel que você está usando.

Ai só pegar o linux-source e o linux-headers da versão correta e instalar.

Demora que os pacotes são grandes ok?

[]s

gony64

Citação de: "LedStyle"Vamos la... crie um diretório chamado "temp" no seu desktop e jogue o driver dentro dele (pode fazer isso pelo modo gráfico mesmo).
Ai entra no diretório, clica com o botão direito no driver e da um "Extrair aqui".

Ai abra um terminal, e de um:

cd ~/Desktop/temp

Dai você da o comando:

./configure (tomara que tenha unm arquivo de configuração)
Se ele rodar... vai dizer qualquer coisa que esteja faltando no seu sistema.


Depois da um:

make

Se não der erros da um:
sudo make install

Agora se não tiver um arquivo chamado "Makefile", o comando "make" não vai funcionar... ai só os experts em "c" vão pode te ajudar hehe. Não saberei como compilar.

Se der tudo certo você edita o arquivo /etc/modprobe.conf (ele mudou de nome ja a algum tempo... pra vc ver como o driver é antigo heim) e insere a linha:
alias eth0 rhinefet (sypondo que você só tem 1 placa de rede. Se tiver 2 pode ser que a placa que você esteja tentando configurar seha a eth1).

Dai ele manda vc reiniciar... o micro. Qdo terminar de rebootar da um "insmod rhinefet" pra ver se aparece algum erro.

Se tudo tiver ok configura pela ferramenta do Ubuntu a rede ai.


Eu só pulei alguns passos que da pra fazer pelo ambiente gráfico e traduzi um pouco o que o readme manda fazer.


Boa sorte, você vai precisar hehehe.

no terminal quando vc for usar o comando " ./configure" tente usar "sudo auto-apt run ./configure"  ele vai te pedir só pra confirmar pra vc baixar os arquivos que tão faltando automaticamente pra vc, então é so clicar nas janelas que irão aparecer " ok" :wink: