No início de 2011 comprei um NAS modelo NS-K330 no DealExtreme e quando fiz o pedido já estava pensando em utilizá-lo de forma "não convencional". Para quem não conhece, um NAS (Network-Attached Storage) é, em linhas gerais, um dispositivo dedicado ao armazenamento e compartilhamento de arquivos e à disponibilização de serviços em uma rede. O NS-K330, além do preço sempre bacana do DX, tem as seguintes características:
- Duas porta USB 2.0, permitindo que dispositivos como memórias flash e impressoras possam ser plugados ao aparelho;
- Servidor de arquivos FTP;
- Servidor de arquivos SAMBA;
- Cliente BitTorrent, não sendo necessário que um computador fique ligado para que você possa baixar arquivos através de torrents;
- Servidor de impressão compartilhado, permitindo que os usuários de uma rede acessem uma impressora conectada ao NAS;
- Porta ethernet RJ45 10/100Mbps.
A primeira coisa que fiz quando o NAS chegou foi atualizar seu firmware, pois o original é fraquinho e cheio de bugs. Fiquei empolgado com o Snake OS, um projeto opensource, originalmente brasileiro, de um firmware para o NS-K330 e o WLXKJ652 baseado em Linux, o que no futuro ajudaria muito nos meus planos de extender o uso do NAS para alguns projetinhos malucos. Até aí tudo jóia, a atualização do firmware foi um sucesso e eu pude utilizar o aparelho durante bastante tempo na sua forma comum, principalmete seu cliente BitTorrent.
Problema
Em meados de agosto do ano passado, eu comecei a fuçar mais no NAS com o objetivo de disponibilizar na Internet as imagens de uma webcam USB conectada ao aparelho e que ficaria filmando o interior de minha casa. Superado este desafio, a falta de conectividade wireless no NAS passou a se tornar um problema e a me incomodar, pois eu queria colocar o aparelho e a webcam em um local em que um ponto de rede com fio seria inviável e apenas o acesso à rede wifi poderia resolver o problema. Para fazer isso eu precisaria ativar o módulo wireless do kernel utilizado pelo Snake OS e gerar um novo firmware para carregar no dispositivo.
Depois de muita pesquisa e apanhar bastante, consegui gerar um firmware com o kernel modificado para as minhas necessidades. O problema foi que quando fiz o upgrade meu NAS não "voltou" e parou de responder a qualquer tentativa de comunicação. Eu estava com um NS-K330 morto em mãos.
Recuperando o NAS
Antes de matar o NAS eu já havia lido algumas coisas sobre a recuperação do mesmo (procuro não fazer nada que possa matar um dispositivo antes de ter certeza que existe a possibilidade de trazê-lo de volta para este mundo). O wiki do Snake OS possui duas páginas que tratam de como estabelecer comunicação serial entre o NS-K330 e um computador e como regravar o firmware original. Foi este material que eu utilizei como guia e você pode acessar as páginas clicando aqui e aqui.
A única dificuldade que tive foi que o tutorial de recuperação da página do Snake OS descreve a utilização de um cabo USB de comunicação Nokia que já tem um hardware para conversão do nível TTL (utilizado pelo NAS) para RS232 (utilizado pelo computador). Como eu não tinha o cabo disponível e comprar no DX iria demorar horrores para chegar, resolvi montar um circuito na protoboard utilizando componentes que eu já tinha. É este procedimento que eu descrevo nos seguintes passos:
Primeiro passo
Desmonte o NAS e solde uma barra de pinos em sua placa. Na imagem abaixo é possível verificar onde ficam localizados os parafusos que fixam a carcaça do dispositivo:

Perceba que os parafusos estão localizados abaixo das borrachas que servem como pés para o aparelho. Você precisará retirar as quatro, tomando o cuidado de não danificá-las para que na montagem possa fixá-las novamente. A barra de pinos deve ser soldada na localização indicada a seguir:

Serão quatro pinos, nas ilhas demarcadas pelos quadrados em vermelho (VCC), preto (RX), preto (TX) e amarelo (GND). O VCC (primeiro pino da esquerda para a direita) não será utilizado.
Segundo passo
É necessário confeccionar os cabos de conexão com o NAS e com o computador. Para o primeiro, eu cortei um cabo de alimentação de disquete de uma fonte velha, para aproveitar o conector fêmea de quatro vias que se encaixa perfeitamente na barra de pinos soldada ao NS-K330. Para o segundo, eu precisei soldar três fios em um conector DB9 fêmea (pinos 2, 3 e 5) e a uma barra com três pinos. Os cabos prontos ficaram assim:
Terceiro passo
Com os cabos prontos e o NAS preparado para a conexão serial, é necessário montar o circuito de conversão do nível TTL para RS232 em uma protoboard. Os componentes eletrônicos necessários são:
- MAX232 - Circuito integrado responsável por converter uma entrada TTL para uma saída RS232 e uma entrada RS232 para uma saída TTL;
- 4 capacitores eletrolíticos de 1uF;
- Fonte de alimentação de 5VC - Eu utilizei meu Arduino Nano que tem saída de 5V simplesmente pela facilidade de uso, já que precisei apenas conectá-lo na USB, mas também pode ser usada, por exemplo, uma fonte ATX de PC.
O esquema elétrico ficou assim (clique na imagem para ampliar):
A montagem na protoboard pode ser vista a seguir (clique na imagem para ampliar):
Quarto passo
Agora conecte o NAS à protoboard e a portoboard à serial de um computador. O aspecto da montagem final ficou assim:

Antes de alimentar o NAS e a protoboard, é necessário abrir a porta serial do computador com as configurações 38400bps 8-N-1. Eu utilizei o putty para isso, mas você pode utilizar qualquer outra aplicação que realize uma comunicação serial, como por exemplo o HyperTerminal do Windows.
Ao ligar o NAS à energia, você verificará todo o processo de boot do firmware. No meu caso, estava ocorrendo um "Kernel panic" que impedia que o sistema operasse.
Quinto passo
Com a comunicação NAS - Computador funcionando, é hora de recuperar o dispositivo. Reinicie o NAS e interrompa o processo de boot através do pressionamento de qualquer tecla, então você terá o prompt "Star Equuleus #" do uboot.
Para baixar a imagem do boot de recuperação, você precisará de um servidor TFTP instalado no computador. No Ubuntu, precisei apenas instalar o pacote tftpd-hpa assim:
sudo apt-get install tftpd-hpa
Depois baixe o arquivo recovery.8132 (boot para recuperação) e coloque na raíz do servidor TFTP. No meu caso coloquei o arquivo no diretório padrão do tftpd-hpa /var/lib/tftpboot.
Ainda no computador, baixe o arquivo fw_def_mtd.zip (firmware original) e o extraia em um pendriver que será utilizado em seguida. Também configure o IP da placa de rede para 192.168.0.100. Não esqueça de conectar um cabo de rede do NAS para o computador.
No prompt do NAS, execute os seguintes comandos para configurar a interface de rede, baixar a imagem do boot de recuperação e executá-la:
setenv ipaddr 192.168.0.10 setenv serverip 192.168.0.100 tftpboot 0x1000000 recovery.8132 go 0x1000000
O NAS deverá carregar o boot que você baixou. Aguarde então o processo ser concluído até o surgimento de um prompt (aqui eu precisei dar um enter no final do boot para que o prompt surgisse).
A recuperação ainda não está concluída. É necessário espetar o pendriver com o firmware original ao NAS, que será montado automaticamente em /usb/sda1. Depois deste procedimento, rode os seguintes comandos no prompt do NS-K330:
/bin/dd of=/dev/mtdblock1 if=/usb/sda1/fw_def_mtd1_config.bin /bin/dd of=/dev/mtdblock2 if=/usb/sda1/fw_def_mtd2_kernel.bin /bin/dd of=/dev/mtdblock3 if=/usb/sda1/fw_def_mtd3_initrd-and-web.bin
Estes comandos irão gravar as imagens do firmware original nas posições de memória corretas. Os dois últimos podem demorar um pouco mais de tempo. Aguarde o fim da gravação e reinicie o NAS removendo e recolocando o cabo de energia. Pronto, seu NAS está recuperado com o firmware e as configurações originais de fábrica.
Conclusão
O processo de recuperação do NAS NS-K330 é mais trabalhoso do que complexo. Uma vez montada a protoboard com o circuito de conversão de nível, a recuperação se resume a comandos no prompt do NAS. O processo pode ser simplificado com a aquisição e utilização do cabo sugerido no wiki do Snake OS.
Em caso de dúvidas, sinta-se a vontade para perguntar através da seção de comentários desta página.
Um abraço.









![=] feliz natal...](http://24.media.tumblr.com/tumblr_lwfpzup6LO1r7n34ro1_75sq.jpg)

