Instalando programas no roteador TL-WR1043ND com DD-WRT

 

Bem, continuando a série de posts sobre o DD-WRT no roteador TP-Link TL-WR1043ND, já colocamos o novo firmware para funcionar e temos muito mais funções disponíveis, desde melhor configuração de segurança até a possibilidade de criar um hot-spot. Lembrando que qualquer procedemento de alteração de sistema original invalida garantias e não me responsabilizo por nada que venha acontecer ao seu roteador, apenas ao meu. 😉

Neste artigo estou utilizando uma versão beta que está em ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP , baixe a versão mais nova para o que você precisa a versão factory-to-ddwrt para instalação do zero ou a versão tl-1043nd para atualização de outra versão do dd-wrt. Como símbolo do prompt de administrador (root) usarei o # no início da linha de comando e como comentário dentro de arquivos.

Mas a grande vantagem desse equipamento é a capacidade de uso de um disco USB para compartilhamento de arquivos via SMB (Samba) ou FTP, mas no nosso caso iremos usar o disco USB para montar um diretório e instalar os programas nele, então não usaremos o espaço da ROM e conseguiremos instalar quase todo tipo de programa para Linux. Vejamos como.

Primeiro entremos nas configurações do nosso roteador pelo browser em http://192.168.1.1. Na tela de configuração do DD-WRT vamos primeiro habilitar o acesso remoto através do protocolo SSH. Clique na aba Services → Services e habilite o SSH como na imagem abaixo:

 

 

Na aba Services → USB habilite o suporte a USB Core, USB Printer(se você precisar disso), USB Storage e selecione o Automount, como na figura abaixo para o diretório /mnt.

 

Na aba Administração → Gerenciamento, desabilite o uso de JFFS2

 

Sempre que fizer essas alterações não se esqueça de mandar Aplicar.

Se tudo estiver correto basta plugar o disco USB, já particionado em EXT2 ou EXT3, e reiniciar o roteador para fazermos a montarmos o disco e fazermos as configurações necessárias.

Vamos acessar o dispositivo pelo SSH para configurarmos pelo prompt de comandos:

# ssh root@192.168.1.1

 

Utilize a senha de administrador utilizada na configuração do roteador.

Vamos montar o disco USB que deve ser seu sda1, para verificar digite:

# cat /proc/partitions

Fora os mtdblocks que são os discos de ROM, os sd* são as partições do USB.

Monte com o seguinte comando:
# mount -t ext3 -o noatime /dev/discs/disc0/part1 /mnt

Veja:

 

Depois de montado vamos criar a estrutura de diretórios necessários para que os pacotes instalados possam funcionar corretamente.

# cd /mnt
# mkdir etc opt root
# touch optware.enable
# chmod 755 etc opt root
# mkdir opt/lib
#chmod 755 opt/lib
#cp -a /etc/* /mnt/etc/
#mount -o bind /mnt/etc /etc
# mount -o bind /mnt/opt /jffs

 

Baixe o arquivo lib.tar nesse endereço http://www.box.net/shared/gsosdajvzm , essas bibliotecas servirão para o uso do programa opkg para instalar pacotes e suas dependências. Assim criaremos uma área de programas no disco USB. Baixe na sua máquina de depois copie para o Roteador, quem não tem SSH nem SCP pode utilizar o Putty e o WinSCP.

Após baixar utilize o SCP para copiar o arquivo para o roteador, entre em outro terminal e estando no diretório onde o arquivo foi baixado digite:

# scp lib.tar root@192.168.1.1:/mnt

Após copiar o arquivo vá para o teminal onde está com ssh no roteador e descompacte o arquivo no diretório /jffs/lib e altere as permissões dos arquivos:

# tar xvf lib.tar -C /jffs/lib

# chmod a+x /jffs/lib/*

Assim as bibliotecas estarão no diretório correto com a permissão correta.

Feito isso vamos baixar e instalar o opkg para podermos instalar pacotes via internet, façamos o seguinte:

# cd /tmp
# wget http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/opkg_513-2_ar71xx.ipk
# ipkg install /tmp/opkg_513-2_ar71xx.ipk

Após baixar e instalar vamos criar o arquivo de configuração do OPKG para que ele saiba de onde baixar os pacotes e onde fazer a instalação dos mesmos com o seguinte conteúdo:

# vi /etc/opkg.conf

src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/
dest root /opt
dest ram /tmp
lists_dir ext /tmp/var/opkg-lists

ou faça copiando as linhas abaixo e colando terminal:

cat > /etc/opkg.conf << EOF
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/
dest root /opt
dest ram /tmp
lists_dir ext /tmp/var/opkg-lists
EOF

Para garantir que a máquina irá montar a partição do disco externo no local certo iremos na aba Administração → Diagnósticos (em inglês Administration → Commands) e colocar o seguinte script na caixa de texto para carregar o mesmo na inicialização, basta colar na caixa de texto e depois clicar em “Salvar inicialização” (Save startup):

#!/bin/sh
sleep 5
mount -t ext3 -o noatime /dev/discs/disc0/part1 /mnt
sleep 2
if [ -f /mnt/optware.enable ]; then
mount -o bind /mnt/etc /etc
mount -o bind /mnt/root /tmp/root
mount -o bind /mnt/opt /opt
else
exit
fi
if [ -d /opt/usr ]; then
export LD_LIBRARY_PATH=’/opt/lib:/opt/usr/lib:/lib:/usr/lib’
export PATH=’/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin’
else
exit
fi

 

Pode aplicar as alterações e com o disco USB plugado pode, pelo modo texto mandar reiniciar
# reboot

Após iniciar o roteador iremos nos conectar e executar alguns comandos para instalar uns pacotes básicos:

# ssh root@192.168.1.1

Após conectarmos iremos atualizar algumas variáveis de ambiente e o opkg:

# export LD_LIBRARY_PATH=’/opt/lib:/opt/usr/lib:/lib:/usr/lib’
# export PATH=’/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin’
# opkg update

# opkg install libc
# opkg install libgcc
# opkg install uclibcxx
# opkg install libncurses
# opkg install busybox

Agora vamos instalar nosso cliente de bittorrent chamado transmission, para que nunca mais você deixe sua máquina ligada fazendo os seus downloads, eles são feitos a partir de seu roteador e gravados no seu disco USB para você poder copiar via ftp ou via scp posteriormente:

# opkg install transmission-web

Depois de instalado executemos o daemon do transmission para que ele crie os diretórios do programa:
# transmission-daemon

Após alguns segundos finalize o processo:

# killall transmission-daemon

Pronto agora podemos criar seu arquivo de configuração com os dados do programa e o diretório onde ele deve gravar os arquivos. Com o vi crie o arquivo /mnt/root/.config/transmission-daemon/settings.json com o seguinte conteúdo:

# vi /mnt/root/.config/transmission-daemon/settings.json

{
“blocklist-enabled”: 1,
“download-dir”: “/mnt/share/torrents”,
“download-limit”: 100,
“download-limit-enabled”: 1,
“encryption”: 2,
“max-peers-global”: 35,
“peer-port”: 25000,
“pex-enabled”: 1,
“port-forwarding-enabled”: 1,
“rpc-authentication-required”: 0,
“rpc-password”: “”,
“rpc-port”: 9091,
“rpc-username”: “”,
“rpc-whitelist”: “192.168.1.*”,
“upload-limit”: 200,
“upload-limit-enabled”: 1
}

Crie o diretório dos torrents:

# mkdir -m 777 /mnt/share/torrents

Com o editor de texto, adicione ao final do arquivo /mnt/root/.profile esta linha export TRANSMISSION_WEB_HOME=’/opt/usr/share/transmission/web/’

# vi /mnt/root/.profile

export LD_LIBRARY_PATH=’/opt/lib:/opt/usr/lib:/lib:/usr/lib:/opt/usr/local/lib’
export PATH=’/sbin:/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/usr/bin:/usr/sbin:/opt/usr/local/bin’
export PS1='[33[01;31m]u@h [33[01;34m]W $ [33[00m]’
export TERMINFO=’/opt/usr/share/terminfo’
export TRANSMISSION_WEB_HOME=’/opt/usr/share/transmission/web/’

Vamos agora apagar o conteúdo do script de inicialização e colocar os comandos necessários para o serviço inicar com as nossas configurações.

# > /opt/etc/init.d/transmission

# vi /opt/etc/init.d/transmission
source /mnt/root/.profile
killall transmission-daemon
sleep 2
transmission-daemon -g /mnt/root/.config/transmission-daemon/

Basta agora mudar a permissão do arquivo e fazer o link simbólico para a inicialização:

# chmod +x /opt/etc/init.d/transmission
# ln -s /opt/etc/init.d/transmission /opt/etc/init.d/S60transmission

Agora execute o script manualmente:

# /opt/etc/init.d/transmission

Basta acessar seu roteador pela interface web para adicionar seus arquivos de torrent. No browser digite http://192.168.1.1:9091/

 

Em próximos posts irei mostrar como instalar e configurar um servidor FTP, um Servidor Samba e um proxy com Squid, aguardem.

Espero tenham gostado do artigo e não se esqueçam de assinar e divulgar o nosso Portal, para continuarmos a fazer o bom trabalho que gostamos de fazer.