Estamos tentando fazer com que um módulo 802.11 baseado em SDIO funcione em uma porta SDIO do beaglebone. Adaptamos a sobreposição de árvore de dispositivos fornecida pelo fabricante ao nosso hardware, compilamos o driver, o driver pode até ser carregado com sucesso e eu o vejo com lsmod
, mas nenhuma interface aparece.
Agora eu tenho um elo perdido no meu entendimento: Como o driver deve saber que existe um adaptador wifi no SDIO3? A interface usada não está configurada em nenhum lugar. O sistema não deveria escanear o barramento SDIO para um dispositivo e carregar o driver correspondente ao dispositivo que está sendo encontrado? Mas dmesg|grep -i sdio
nem dá match...
Antes de fechar esta questão como »muito ampla«: A questão não é sobre como corrigir esse problema (que de fato seria muito amplo), mas sobre como depurar ou restringir sistematicamente a causa. Quais são as etapas a serem testadas para descobrir se o problema é causado no lado da árvore de dispositivos, no módulo do kernel, alguma cola no meio?
Ok, encontrei esta página que me orienta pelas etapas básicas de solução de problemas. Isto era o que eu estava procurando.
Se você se importa com o nosso problema em si: Obviamente, multiplexar os pinos como MMC (conforme descrito em nosso guia do usuário) não é suficiente, o barramento precisa ser declarado como SDIO na árvore de dispositivos. Agora posso continuar descobrindo como habilitar a detecção SDIO para o beaglebone.