AX88772B - Compilando o driver ( CONVERSOR USB<>RJ45 )

Autor: Rodrigo_P_A • Categoria: Linux • Postado em 08 Jan 2014 00:30 • Visualizado: 2134x

Precisei compilar o driver AX88772B para usar com minha placa ARM9, segui os passos abaixo, estou explicando da forma mais simples possível, pois a internet já tem muito artigo complicado e mirabolante! :D

1) Baixar o arquivo no site do fabricante do CHIP:
http://www.asix.com.tw/download.php?sub ... ItemID=105

Eu baixei o arquivo: Linux kernel 3.x/2.6.x Driver V4.11.0 de 08-08-2013.

2) extraia os arquivos para uma pasta do seu computador com LINUX.

Para compilar o driver para a sua placa, você deverá ter os arquivos fontes do kernel usado na sua placa, tem que ser a mesma versão, exemplo: se na sua placa roda o linux 3.0.8 você deverá ter o fonte do linux 3.0.8 na sua máquina.

3) Alterar o arquivo MakeFile pois ele vem configurado para compilar para o seu PC.

O original é assim:

Code: Selecionar todos
CURRENT   = $(shell uname -r)
TARGET   = asix
OBJS   = asix.o
MDIR   = drivers/net/usb
KDIR   = /lib/modules/$(CURRENT)/build
SUBLEVEL= $(shell uname -r | cut -d '.' -f 3 | cut -d '.' -f 1 | cut -d '-' -f 1 | cut -d '_' -f 1)

ifneq (,$(filter $(SUBLEVEL),14 15 16 17 18 19 20 21))
MDIR = drivers/usb/net
endif

EXTRA_CFLAGS = -DEXPORT_SYMTAB
PWD = $(shell pwd)
DEST = /lib/modules/$(CURRENT)/kernel/$(MDIR)

obj-m      := $(TARGET).o

default:
   make -C $(KDIR) SUBDIRS=$(PWD) modules

$(TARGET).o: $(OBJS)
   $(LD) $(LD_RFLAG) -r -o $@ $(OBJS)

install:
   su -c "cp -v $(TARGET).ko $(DEST) && /sbin/depmod -a"

clean:
   $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean

.PHONY: modules clean

-include $(KDIR)/Rules.make


Você deverá alterar o seguinte:
a variável KDIR ( KERNEL DIR ) para apontar para a pasta do fonte do KERNEL usado na sua placa. Vamos supor que o fonte esteja na pasta: /home/rodrigo/linux-3.0.8-arm

então altere o KDIR para: KDIR=/home/rodrigo/linux-3.0.8-arm

Vou simplificar, fazendo somente esta alteração e tendo um compilador instalado na sua máquina, você já vai conseguir compilar o módulo.

Variável está alterada, agora eu vou supor que você já tenha um compilador para ARM instalado em sua máquina, siga os passos abaixo:

1) Abra o TERMINAL e vá para a pasta onde você extraiu os arquivos.

2) Vamos setar o ambiente para você poder compilar o módulo:

No meu caso, o meu compilador está instalado em: /mnt/hdprogramas/arm-tools/arm-2013.05/bin/

# coloco a pasta onde a ferramenta está instalada no envioriment path, dessa forma eu vou poder digitar o comando e o sistema vai buscar na pasta sem a necessidade de digitar o caminho completo.
digite no terminal:
Code: Selecionar todos
export PATH=$PATH:/mnt/hdprogramas/arm-tools/arm-2013.05/bin/


# seto o prefixo da ferramenta. No meu caso o prefixo é: arm-none-linux-gnueabi-
digite no terminal:
Code: Selecionar todos
export CROSS_COMPILE=arm-none-linux-gnueabi-


# Exporto o comando CC apontando para o compilador: arm-none-linux-gnueabi-gcc e com as opções necessárias parao meu caso, informando a cpu, e outros flags do compilador que variam de acordo com o modelo da sua placa/processador usado.
digite no terminal:
Code: Selecionar todos
export CC="${CROSS_COMPILE}gcc -march=armv5te -mtune=arm926ej-s -msoft-float -marm -O3 -funroll-all-loops"
export ARCH=arm


Feito isso, digite no seu terminal para verificar se o compilador está funcionando:
Code: Selecionar todos
$CC

deverá ser exibido algo do tipo:
arm-none-linux-gnueabi-gcc: faltal error: no input files

Isso quer dizer que tudo foi setado corretamente.

Agora, é só compilar o módulo, estou considerando que você está na pasta do fonte do módulo ASIX. Digite no terminal:

Code: Selecionar todos
make


se tudo correu bem, na pasta do fonte você vai ter o arquivo:
asix.ko

Basta copiar este arquivo para a sua placa para a pasta:

/lib/modules/3.0.8/kernel/drivers/net/usb/

Após copiar rode o aplicativo: depmod na sua placa.

depois carregue o módulo com o comando: modprobe asix

Pronto! Comigo funcionou de primeira.

Boa sorte

Adicionar comentário

Registrar or Efetue login para comentar

x