Instalador automatizado para habilitar adaptadores USB AIC8800 no Linux, com correcoes de compatibilidade para kernels modernos e setup completo de firmware.
Descricao completa:
Este repositorio existe para simplificar a instalacao e o uso de adaptadores USB Wi-Fi baseados no chip AIC8800 (D80/D81) em Linux. O projeto automatiza tarefas que normalmente sao manuais e sujeitas a erro: instalacao de dependencias, aplicacao de patches de compatibilidade para kernels recentes, compilacao dos modulos, instalacao de firmware e configuracao de modeswitch/boot.
O objetivo e fazer o dispositivo funcionar de forma reproduzivel em distribuicoes como Arch, Debian e Ubuntu, reduzindo o tempo de diagnostico e evitando falhas comuns de compilacao e reconhecimento do hardware. O repositorio tambem serve como base tecnica para manutencao do driver, documentacao de problemas conhecidos e colaboracao da comunidade em novos kernels, distros e variantes do chip.
- Shell 100%
| .gitignore | ||
| install_aic8800.sh | ||
| KNOWN_ISSUES.md | ||
| LICENSE | ||
| MANUAL.md | ||
| README.md | ||
AIC8800 USB Wi-Fi — Linux Driver Installer
Instalador automático do driver AIC8800D80/D81 para Linux (Arch e Debian/Ubuntu), com correções para kernel 6.8+.
Este projeto nasceu da necessidade de fazer o dongle funcionar no Arch Linux com kernel 6.19, onde o driver oficial não compilava nem reconhecia o dispositivo após o firmware switch.
Dispositivos suportados
| VID:PID | Modo | Descrição |
|---|---|---|
| a69c:5721 | MSC (armazenamento) | Estado inicial do dongle |
| a69c:8d80 | Wi-Fi | Após modeswitch |
| 368b:8d81 | Wi-Fi | Após firmware upload (variante) |
Correções incluídas
| Arquivo | Problema | Correção |
|---|---|---|
rwnx_rx.c |
in_irq() removido no kernel 6.x |
Removido da mensagem de debug |
rwnx_main.c |
Assinatura de get_tx_power mudou no kernel 6.8+ |
Adicionado #if LINUX_VERSION_CODE >= 6.8.0 com nova assinatura |
aicwf_usb.c (fdrv) |
VID 368b com PID 8d81 não reconhecido |
Adicionado na tabela usb_device_id |
aicwf_usb.c (load_fw) |
Idem para o módulo de carregamento de firmware | Adicionado na tabela e no chipmatch |
Requisitos
Arch Linux:
base-devel git linux-headers usb_modeswitch dkms
Debian / Ubuntu:
build-essential git linux-headers-$(uname -r) usb-modeswitch dkms bc
Instalação
git clone https://github.com/SEU_USUARIO/aic8800-linux-installer.git
cd aic8800-linux-installer
sudo bash install_aic8800.sh
O script faz automaticamente:
- Instala dependências (detecta Arch ou Debian)
- Clona o driver de
github.com/radxa-pkg/aic8800 - Aplica todas as correções de compatibilidade
- Compila e instala os módulos do kernel
- Copia o firmware para
/lib/firmware/aic8800D80/ - Configura modeswitch automático via udev
- Configura carregamento do módulo no boot
- Ajusta o NetworkManager para usar
wpa_supplicant(compatível com AIC8800)
Nota de compatibilidade: com
wifi.backend=iwd, alguns APs retornamNotSupportedno NetworkManager e a conexão falha comsupplicant-failed. O instalador corrige isso automaticamente.
Uso manual (sem o script)
1. Modeswitch manual
sudo usb_modeswitch -v 0xa69c -p 0x5721 -K
2. Carregar módulo
sudo modprobe aic8800_fdrv
3. Verificar interface
iw dev
Estrutura do projeto
install_aic8800.sh — Script de instalação automática
README.md — Este arquivo
MANUAL.md — Guia de instalação manual passo a passo
KNOWN_ISSUES.md — Problemas conhecidos e soluções
LICENSE — Licença MIT
.gitignore — Ignora pastas geradas (aic8800/, wifi-debug/, win10_x64/)
Contribuindo
Contribuições são muito bem-vindas! Áreas que precisam de melhorias:
- Suporte a outras distros (Fedora, openSUSE, Manjaro)
- Suporte a outros chips AIC (8800DC, 8800D80X2, 8800DLN)
- Integração com DKMS para recompilar automaticamente após atualizações do kernel
- Detecção automática da versão do chip pelo VID:PID
- Melhorias de estabilidade na reconexão USB
- Suporte a modo AP (ponto de acesso)
- Testes com kernel 6.x no Raspberry Pi / ARM
Veja também: KNOWN_ISSUES.md
Como contribuir
- Fork este repositório
- Crie uma branch:
git checkout -b minha-melhoria - Faça suas alterações e commit:
git commit -m "Descrição da melhoria" - Abra um Pull Request descrevendo o que mudou e em qual hardware testou
Reportar problemas
Abra uma Issue incluindo:
- Saída de
uname -r - Saída de
lsusb - Log gerado em
~/wifi-debug/pelo script
Testado em
| Distro | Kernel | Status |
|---|---|---|
| Arch Linux | 6.19.11-arch1-1 | ✅ Funcionando |
Se testou em outro sistema, abra uma PR atualizando esta tabela!
Licença
MIT — veja LICENSE.