NPDD/Baobáxia/RedesAutonomasLogEfeefe
Página principal > Redes Autônomas (Felipe Fonseca e Vincenzo Tozzi-Brasil)
Conteúdo |
05/11/12
Passamos algumas horas hoje brincando com rasppi (não subiu wifi), com o laptop onde fica a nuboteca (que não subiu a rede em modo ap). Tem uma beagleboard também, mas acabei voltando para a casinha onde estamos ficando, e vou testar com o nc10. NC10 é um netbook da samsung comprado em 2009 e usado por quase dois anos. Deu problema no cooler e no teclado, e acabei trocando por outro. Mas ele aparentemente ainda pode dar um bom servidor, com a vantagem de ter uma bateria com duração razoável.
Abri o NC10 para instalar um dos cartões wifi mini pci que trouxe. Escolhi um atheros, que costuma ser mais bem suportado por várias distros. Por enquanto arranquei também o teclado, que não funciona bem. Estou com um teclado USB da Nuvem, deve dar conta. Voltei para meu computador, abri o unetbootin para criar um disco de boot. Tentei usar um cartão SDHC de 16G, mas o unetbootin não deixou. Deve ter seus motivos (mais tarde percebi que o cartão SD está com problemas). Acabei fazendo um pendrive de 2Gb com a imagem do debian-6.0.6-i386.
Subindo o disco de boot. Optei pela instalação padrão. Configurei idioma e teclado. Configuração de rede, não preciso agora. Nome da máquina (uaifai), senha de root (lanovale), meu usuário e senha. Particionamento: assistido, usar o disco inteiro. Partição /home separada. Escrever as mudanças no disco. No tasksel, optei por não instalar o ambiente gráfico, e escolhi servidor web, sql, ssh, laptop e utilitários standard de sistema. Grub? Sim. Reiniciando. Sistema subiu. Mas testando com a wifi, não deixou setar modo master. Desliguei, tirei esse cartão (um atheros ar5bxb63). Tentei com outro (um mini pci express, ath ar5b95). Também nada. Terceira tentativa (e última à mão), um rtl 8187b. Nada. Beco sem saída?
Tentando com um zd1211, USB. "Unable to enumerate USB device on port 6". Procurando na web, parece uam incompatibilidade de velocidade de interface USB. Gambiarra, solução meio capenga, aqui: http://www.geekdevs.com/2010/04/solved-unable-to-enumerate-usb-device-disabling-ehci_hcd/
Consegui plugar, reconheceu como wlan3. E nada de modo master. Em último caso, amanhã tiro o pci da alix e instalo no samsung.
Enquanto isso, copiando a imagem do debian (i386, DVD) para o cartão de memória. O plano é levar para o samsung, então montar como unidade em loop, copiar os debs do /pool para um diretório local e então montar um repositório, seguindo isso aqui:
https://odzangba.wordpress.com/2006/10/13/how-to-build-local-apt-repositories/
Deu pau na cópia (alguma merda no cartão de memória travou minha máquina, acho).
Encontrei um chinês buscando coisas parecidas: http://old.nabble.com/zd1211B-for-AP-mode-td31868516.html
Dali, parece que o hostapd resolve o lance. A ver.
Configurei meu celular como roteador, criando uma rede sem encriptação. Acessei pelo nc10, iwconfig, fácil. Mexi na sources.list (adicionei deb http://ftp.debian.org/debian/ squeeze main). Update, install dnsmasq, hostapd e hostap-utils. Amanhã continuo, na Nuvem.
06/11/12
De volta à Nuvem. Tentei subir a rede uaifai a partir do samsung nc10 usando as configurações do hostapd sacadas da alix. Não deu, reclamou que não podia setar o modo master. Agora vou tirar o wifi da alix e colocar no nc10. Vamos ver se funciona.
Hm, não deu. O cartão na alix é pci express, não minipci express como no laptop. Vou testar com a outra atheros (ainda menor, prendi com fita crepe).
Não rolou. Depois fiz uma série de tentativas com as diferentes opções de wifi usb que temos disponíveis aqui. A R8188 deixa modo master, mas não é suportada pelo hostapd. A prism não funciona em modo ap. A outra, nada.
Voltando a pensar na atheros. Baixando o madwifi para refazer a interface como ap. A ver. Começar tentando do jeito mais fácil, adicionando contrib e non-free no sources.list. Não encontrou. Adicionando repositório backports. Update. Nada. Seguindo então as instruções do wiki do madwifi-project para compilar.
Não encontrou o source do madwifi. Baixei o 0.9.4-current. Compilou ok mas não encontrou o device. Tentando agora habilitar o modo ap no ath9k e recompilá-lo: http://linuxwireless.org/en/users/Drivers/ath9k#Get_the_latest_ath9k_driver
Compilado ok, mas não reconheceu a placa.
07/11/12
Ontem ainda encontrei um patch que dizem resolver para habilitar o madwifi a funcionar com a placa atheros (mini).
http://madwifi-project.org/ticket/2391
É para uma revision específica do source. Subversion -r 4174. Deixei baixando durante a noite.
Aplicando o patch: na pasta madwifi, patch -p1 < patch
- make
- make install.
- reboot
ath0 rodou. Não deixou modo ap. Mandei a linha:
- wlanconfig ath0 destroy
- wlanconfig ath create wlandev wifi0 wlanmode ap
E pronto, modo ap funcionando!
Brincando com o roteador TP-Link AR743ND. Baixando a versão do openwrt para ele:
Error code: 18005
Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name.
Tentar então por tftp.
Saí para almoçar com as meninas. Enquanto isso, Vince encontrou uma imagem do dd-wrt para esse roteador e instalou. Ele já cria automaticamente alias de DNS com o hostname das máquinas que pedem DHCP. Depois de substituir o roteador antigo com esse rodando dd-wrt, todas as máquinas já podem acessar a nuboteca (e outras máquinas) pelo hostname de cada uma, sem precisar saber seu IP.
Trabalhei mais um pouco no samsung nc10, o "uaifai". Copiei as configurações de rede da alix. As mais importantes são:
O script de inicialização da interface de rede (/etc/network/interfaces):
auto ath0
iface ath0 inet static address 12.34.56.78 network 12.34.56.0 netmask 255.255.255.0 broadcast 12.34.56.255 wireless-mode Master wireless-essid zasf up /usr/bin/hostapd /etc/hostapd/hostapd.conf
(precisei só mudar o caminho do hostapd para /usr/sbin/hostapd e o essid para uaifai)
A configuração do dnsmasq (/etc/dnsmasq.conf), contendo: dhcp-range=12.34.56.80,12.34.56.254,3h
A configuração do hostapd (/etc/hostapd/hostapd.conf), contendo:
interface=ath0 driver=madwifi ssid=zasf (que mudei para uaifai)
Ao fim da tarde, consegui fazer funcionar a rede uaifai com essas configurações.
Fizemos uma "oficina". Falei sobre os quatro esquemas que estamos experimentando (alix, roteador dd-wrt + máquina nuboteca, raspberry pi, samsung). Depois fui mostrar algumas possibilidades que já estão funcionando na alix (web com wiki e hotglue, servidor irc, etc.). Enquanto Vince demonstrava o git-annex, terminei de instalar algumas coisas adicionais na nuboteca: ngircd (servidor irc), ushare (servidor upnp/dlna) e icecast. Modifiquei nas configurações o seguinte:
/etc/ushare.conf
USHARE_NAME=nuboteca USHARE_IFACE=wlan0 USHARE_DIR=/var/www/nuboteca
Não habilitei o DLNA.
E consegui acessar o UPNP pelo aplicativo de DLNA no meu celular ;). Vídeos são sempre complicados, mas as imagens eu consegui acessar tranquilo.
O icecast me perguntou algumas coisas durante a própria instalação. Mantive as senhas padrão. Depois ainda mexi o nome na config:
/etc/icecast2/icecast.xml
<hostname>nuboteca</hostname>
Adicionei à home do apache na nuboteca o link para a interface web do icecast:
http://nuboteca:8000/status.xsl
E fiz um stream live com o idjc a partir da minha máquina para testar ao vivo com o pessoal. Funcionou ;)
08/11/12
Configurei mais algumas coisas na nuboteca: mexi mais com o icecast, instalei o mpd e o ampache (mas ainda não consegui fazer funcionar direito). O plano é subir um hotglue e acho que vou instalar um drupal+openlayers pra galera do silêncio. Copiei para o Desktop da nuboteca os arquivos recebidos pelo form via web e os dumps de sites que eu peguei.
Travei na uaifai, por enquanto vamos fazer com outro roteador e deixar a máquina como cliente, daquele jeito…
Instalando o dd-wrt no outro roteador TP-LinkWR743ND. Liso. Ficou essid VemnuVemnu e IP 192.168.2.1.
Voltando à nuboteca. Vince está experimentando com sincronização de instalações do hotglue. Eu vou instalar um drupal para o pessoal da autonomia do silêncio, que quer um site local para trabalhar com mapas. Baixei o drupal7 e os módulos admin e openlayers.
09/11/12
Copiando mais coisas para a Nuboteca: contribuições enviadas pelo form na web, algumas coisas do meu acervo pessoal, etc.
Tivemos (ff, vince, isabel, javier, lula) uma reunião sobre a estrutura de organização das pastas do acervo. Isabel propôs outra estrutura de organização, baseada mais no conteúdo do que no formato dos arquivos. Falei sobre as limitações da metáfora de desktop, que supõe que cada arquivo só esteja em uma pasta de cada vez. Falamos sobre alguma maneira menos estruturada de organizar acervos. Por outro lado, pensando em sincronizar redes distribuídas como é o caso da realidade da rede Mocambos, é bom ter uma organização mais estruturada para facilitar as coisas. Sugeri que talvez tenhamos dois caminhos paralelos a trabalhar: um deles é pensar uma solução genérica para sincronização de redes, a outra é encontrar uma solução local para o acervo da Nuvem.
Logo depois nos reunimos com os tutores para dar uma geral. Brazileiro acabara de voltar, então contei um pouco sobre o que fizemos nos últimos dias. Conversamos sobre o que já conseguimos fazer e possibilidades de desenvolvimento na sequência. Fiquei de documentar melhor o que fazer para uma máquina virar uma rede autônoma. Amanhã vou a Ubatuba levar as meninas, vou concentrar nisso e ver algumas referências (sistemas de gestão de documentos, e ver o projeto que ganhou o ars electronica que leslie sugeriu: tools for the next revolution).
Voltando aos testes: o segundo roteador, com a rede VemnuVemnu, está funcionando. O Samsung (que agora não se chama mais uaifai, e sim tecanubo) pegou o IP por dhcp, mas não informou ao roteador seu hostname. Achei que mais eficaz do que entender por quê seria encontrar uma solução. Atribuí um IP fixo ao samsung (192.168.2.10) e vou mexer no dnsmasq do roteador para encaminhar tudo que for "tecanubo" pra lá. Segui isso aqui: http://cybernetnews.com/local-internal-dns-ddwrt/. Aparentemente funcionou.
Mudei alguns detalhes na configuração do ngircd, servidor IRC da nuboteca. Só detalhes, em /etc/ngircd.
Baixei o código do etherpad-lite (deixei em /media/nuboteca-ext4/ferramentas). Tentei rodar, mas antes preciso instalar algumas coisas. Vai ficar durante a noite.
$sudo apt-get install gzip git-core curl python libssl-dev pkg-config build-essential
Documentaçao do etherpad aqui https://github.com/Pita/etherpad-lite/wiki