O seu portal de estudos

Instalando programas no roteador TL-WR1043ND com DD-WRT

Posted by Vagner Fonseca em 30 de junho de 2011

 

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.

Anúncios

14 Respostas to “Instalando programas no roteador TL-WR1043ND com DD-WRT”

  1. rafael said

    Não testei, mas pelo visto é show de bola e funciona mesmo, quem testar poste os resultados.
    Parabéns + uma vez
    Abs

  2. Everton Cruz said

    Olá. Muito interessante este metodo. Pretendo fazer um desses em minha casa. Já até encomendei o roteador.
    Predentendo ligar na saída USB um roteador e ligar além do HD Externo uma impressora. Será que vai funcionar?
    Será que teria como baixar outros tipos de arquivos sem ser torrent? Usar programas como o Jdownloader?
    Desde já agradeço.

    • Everton,

      Ligar um HD e impressora USB funcionam sim, desde que o HUB USB que você utilizar seja alimentado por fonte. Para ligar um HD direto no roteador não precisa de alimentação externa, mas ligar mais de um dispositivo precisa sim. O JDownloader depende de java, estou pesquisando sobre o tucan como alternartiva ao Jdownloader, se funcionar postarei também.

  3. Diego said

    Boa noite, sigo os passos a risca, mas quando chego na atualização do opkg aparece o seguinte erro “-sh: opkg: not found. Estou usando a build 17201 do DD WRT.

    • Diego,

      Você chegou a baixar e instalar manualmente o opkg?

      • Diego said

        Agora não estou conseguindo acessar a interface web do Transmission. Aparece o seguinte erro:
        403: Forbidden
        Unauthorized IP Address.
        Either disable the IP address whitelist or add your address to it.
        If you’re editing settings.json, see the ‘rpc-whitelist’ and ‘rpc-whitelist-enabled’ entries.
        If you’re still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.

      • Diego,

        No arquivo settings.json você colocou sua rede? Pois no que passei está 192.168.1.* que é a minha rede.

      • Diego said

        Funcionou alterando o rpc-whitelist para “192.168.*.*”.
        Obrigado pela força.
        Abraço.

  4. Boa tarde amigo
    1- possivel fazer isso usando winodws?
    2-essa build beta quando eu instalei não funcionou mais minha internet?
    3-funciona com build estavel?

    Obrigado

  5. ivan said

    root@DD-WRT:/tmp# wget http://downloads.openwrt.org/backfire/10.03/ar71xx/packag
    es/opkg_513-2_ar71xx.ipk
    Connecting to downloads.openwrt.org (78.24.191.177:80)
    opkg_513-2_ar71xx.ip 100% |*******************************| 63098 00:00:00 ETA
    root@DD-WRT:/tmp# ipkg install /tmp/opkg_513-2_ar71xx.ipk
    ERROR: File not found: //usr/local/lib/ipkg/lists/whiterussian
    You probably want to run `ipkg update’
    ERROR: File not found: //usr/local/lib/ipkg/lists/non-free
    You probably want to run `ipkg update’
    ERROR: File not found: //usr/local/lib/ipkg/lists/backports
    You probably want to run `ipkg update’
    /bin/ipkg: line 1184: sort: not found
    Unpacking opkg…Done.
    Configuring opkg…Done.

    Boa tarde, camarada cheguei até aqui e nao foi mais, deu erro!! tu sabes me dizer qual??

    Att,
    Ivan

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: