terça-feira, 3 de junho de 2008

ath0: unable to attach hardware; HAL status 06

Instalei o FreeBSD no meu notebook, e ele retornava esse erro:
ath0: unable to attach hardware; HAL status 06
Pesquisei aqui e alí, na documentação do FreeBSD, em foruns e todo o tipo de local que encontrei,
descobri que o erro estava na "Camada de acesso ao Hardware", e vários usuários com o mesmo problema, com várias soluções, e nenhuma com exito.
Chegando nas 8h de pesquisa, encontrei algo, referindo-se a Sam Leffler, fiquei surpreso que a solução proposta por ele não teria dado resultado, porém, continuei a estudar.
Na tentativa de corrigir esse erro, passei o FreeBSD7.0 de RELEASE para STABLE, e o resultado foi negativo, continuou a retornar o erro ath0: unable to attach hardware; HAL status 06.

Após virar 16h procurando a solução, descobri o que precisava ser feito.
Então, se você está com este problema, vamos lá, para resolver faça:

Fiz isso com o FreeBSD7.0RELEASE, baixei os fontes, construi o mundo e instalei-o,
editei meu kernel de acordo com minhas preferências(não esqueça do driver ath).
Depois disso feito, antes de compilar seu kernel, faça:

#cd /root/
#mkdir ath && cd ath
#fetch http://people.freebsd.org/~sam/ath_hal-20080528.tgz
#tar -xf ath_hal-20080528.tgz
#cp -R * /usr/src/sys/dev/ath/

Ok. até aqui foi facil encontrar navegando nos forum por aí.
Neste instante começou o meu problema, quando tentava compilar o kernel, retornava um erro:
rs_flags não é um componente da static struct ath_rx_status.

Comecei a ler todos os fontes, e acabei descobrindo um include, referenciando o cabeçalho que continha a struct ath_rx_status, apontando para /contrib/ath/.

Então, fiz o seguinte:
#cp -R * /usr/src/sys/contrib/dev/ath/
(Este era o diretório que o include referenciava)

Compilei o kernel, como manda o roteiro ;) e prontinho, após o FreeBSD tornar-se STABLE, funcionou perfeitamente.

Recomendo a leitura de:
ath(4)
ath_hal(4)

E visita a:
http://people.freebsd.org/~sam/

Marcos A. Schratzenstaller

Nenhum comentário: