Durante o processo de instalação do OpenWRT no roteador DIR-825 precisei copiar alguns binários do roteador para o computador.
Como fazer isso quando você não tem a rede funcionando ainda? A solução é simples, use o hexdump e o xxd.
No roteador:
# hexdump mybinary.bin
Use o mouse para selecionar e copiar o conteúdo que o hexdump joga na tela. Uma dia importante é você configurar o terminal para rolagem ilimitada, no caso do gnome-terminal vá em Edit -> Profile -> clique no botão Edit -> Scrolling e marque Unlimited.
Abrar um editor (gedit) e coloque o conteúdo, salve como mybinary.txt, por exemplo.
Agora use o seguinte comando para gerar o binário novamente:
$ cat mybinary.txt | xxd -r > mybinary.bin
Esta dica eu encontrei no Linux Jornal.
ATUALIZACAO:
E se você quisesse fazer o oposto, gerar um binario no seu roteador com a saida do hexdump de um binario do computador? O OpenWRT não possui o xxd por padrão, então você teria que encontrar outra alternativa.
Neste site encontrei a sugestão abaixo.
Considere o arquivo hdump como exemplo, com o conteudo:
$ cat hdump
41 42 43 44
45 46 47 48
$ echo 'ibase=16' | cat - hdump | tr ' ' \; | bc | awk '{printf("%c",$0)}'
Infelizmente o OpenWRT também não possui o comando bc, então lembrei do comando printf que usei para zerar a BIOS do computador a partir do terminal do Linux.
Então o comando ficou assim:
$ for i in $(cat hdump) ; do printf "\x$i" ; done
Pingback: How to transfer files to a Linux embedded system over serial | Alan Carvalho de Assis