Pagina inicial » como » Como instalar software adicional no roteador doméstico (DD-WRT)

    Como instalar software adicional no roteador doméstico (DD-WRT)

    Alguma vez você já quis ter funcionalidades adicionais como E-mail, Bit-torrent ou até mesmo MySQL diretamente no seu roteador? Bem, talvez agora você possa. How-To Geek mergulha em como instalar o software Opkg no DD-WRT.

    Imagem de Jean Spector e Aviad Raviv

    Se ainda não o fez, verifique e confira os artigos anteriores da série:

    • Transforme seu roteador doméstico em um roteador super-alimentado com DD-WRT
    • Como remover anúncios com o Pixelserv no DD-WRT

    Supondo que você esteja familiarizado com esses tópicos, continue lendo. Tenha em mente que este guia é um pouco mais técnico, e os iniciantes devem ter cuidado ao modificar seu roteador.

    Tribulações

    Eu comprei recentemente um novo Buffalo WZR-HP-AG300H que vem com uma versão re-branded do DD-WRT. Devido ao fato deste roteador ter uma porta USB, eu imediatamente conectei um HD e tentei usar o guia wiki “Optware, The Right Way”. Infelizmente eu descobri rapidamente que o roteador que eu tenho, é baseado em Atheros e o script daquela página wiki, não suporta isso. Então eu comecei a cavar (como sempre faço) e encontrei vários guias (1, 2, 3 e 4) que tinham como objetivo explicar como fazer o Opkg funcionar manualmente. Enquanto sua contribuição (entre outras fontes na web) para este guia foi inestimável, algumas das instruções são (IMHO) simplesmente não suficientemente simples. Por exemplo, dar-lhe os arquivos “lib” fish, mas não ensina como pescar da fonte. Também ter que fazer uso de um HD formatado em Linux ou pelo menos uma partição de um (o que na verdade nem funciona nos firmwares com os quais testei). Por isso, senti a necessidade de criar o procedimento abaixo conciso, simples de seguir e reproduzível para fazer com que o gerenciador de pacotes OpenWRT Opkg trabalhasse nesses roteadores..

    Atualização: O recurso de partições de montagem foi reintroduzido na versão re-branded no build alfa 17798.

    O que é o Opkg??

    Opkg é um gerenciador de pacotes como apt / aptitude e yum. Ele atua como um substituto para o gerenciador de pacotes Ipkg, e pode ser usado para instalar softwares como: o daemon Transmission BitTorrent, o remetente de e-mail ssmtp e o daemon Knockd que executam scripts após uma sequência de disparos de porta especificada, para citar alguns. Do site do OpenWRT:

    O utilitário opkg (um fork do ipkg) é um gerenciador de pacotes leve usado para baixar e instalar pacotes OpenWrt de repositórios de pacotes locais ou localizados na Internet.. Opkg tenta resolver dependências com pacotes nos repositórios - se isto falhar, informará um erro, e abortará a instalação desse pacote.

    Portanto, usando o Opkg, podemos instalar coisas como fizemos com o Ipkg no guia “Libere ainda mais energia do seu roteador doméstico”. As principais diferenças são:

    1. Para dar os exemplos de SSMTP e Knockd, a sua verdadeira, tinha que descobrir as dependências manualmente. O procedimento para fazer isso manualmente é incômodo e não muito direto. Opkg faz isso automaticamente.
    2. Desta vez seremos adicionando software no topo do firmware que está em vigor, em vez de substituí-lo. Enquanto substituí-lo foi um excelente exercício geek, foi sem dúvida: perigoso, propenso a problemas, irreversível e pior de todos os roteador específico. Escusado será dizer que isto é muito mais simples e seguro.

    Pré-requisitos

    Para concluir este guia, observe o seguinte:

    1. Como dito acima, este guia foi criado e testado no Buffalo WZR-HP-AG300H com a versão 17135 de firmware “Pro” do Buffalo. Ele deve funcionar em qualquer roteador baseado no Atheros (ar71xx) com qualquer versão do DD-WRT da mesma revisão ou acima , mas sua milhagem pode ser muito.
    2. Você precisará ativar o SSH no roteador, bem como instalar e usar o WinSCP para se conectar a ele. Isso foi explicado no guia "Como remover anúncios com Pixelserv no DD-WRT". Na verdade, será assumido que você é capaz de fazer tudo o que é explicado nesse guia.
    3. Você precisa ser capaz de se conectar ao roteador usando um terminal (o SSH é recomendado). Alguns ponteiros sobre como fazer isso, estão no wiki do DD-WRT.
    4. Espaço para JFFS e cerca de 4MB de espaço pós-formatado para a configuração base. O espaço JFFS não é apenas um pré-requisito, é um show stopper. Isso porque, se o seu roteador não tiver pelo menos os 4 MB de espaço pós-formatado mencionados acima, você não obterá nenhum benefício real deste guia, e será melhor usar o recurso “Libere ainda mais energia do seu roteador doméstico” Guia para instalar pacotes do Ipkg diretamente no firmware ou instalar os pacotes do Ipkg manualmente. Siga as instruções no guia "Como remover anúncios com Pixelserv no DD-WRT" para ativar o JFFS e veja quanto espaço livre você realmente tem depois de está formatado.

    Nota: É possível fazer isso com apenas 2MB de espaço para a configuração, mas depois perderíamos o resultado de “/ etc” se tornando read-writable e teríamos que invocar o Opkg, enquanto especificamos o arquivo de configuração manualmente… o que é como sooo coxo ...  

    Vamos começar a rachar

    Neste ponto, você deve ter ativado o JFFS e ser capaz de conectar o SSH / WinSCP ao roteador.

    1. Abra uma sessão de terminal para o roteador.
    2. Crie um diretório temporário no qual estaremos trabalhando:

      mkdir / tmp / 1
      cd / tmp / 1

    Use o Ipkg para instalar o Opkg
    Enquanto vamos substituir o Ipkg como gerenciador de pacotes, vamos usá-lo para instalar manualmente o pacote de instalação do Opkg.

    1. Para fazer isso, baixe o pacote de instalação do Opkg para a arquitetura ar71xx do tronco do projeto OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

      Nota 1: No momento da redação deste artigo, 618 é a versão mais recente, isso pode estar sujeito a alterações no futuro, portanto, ajuste de acordo.
      Nota 2: Pode ser possível que a única diferença em fazer com que este guia funcione para outras arquiteturas é obter o instalador do Opkg da arquitetura aplicável ao seu roteador ... no entanto, isso não foi testado por você..

    2. Invoque o Ipkg para instalar manualmente o Opkg usando:

      ipkg install opkg_618-2_ar71xx.ipk

      Nota: Você também pode, se quiser, instalar cada pacote no repositório manualmente dessa maneira. No entanto, isso significa que você terá que resolver as dependências por conta própria ... e qual seria a graça disso?

    Obtendo os arquivos da biblioteca dinâmica (“lib” s)
    Os arquivos “lib” necessários para fazer o Opkg funcionar, fazem parte da distribuição do OpenWRT. Para obtê-los, é preciso extraí-los do “Sistema de Arquivos Raiz” da referida distribuição.

    1. Para fazer isso, baixe o último “Root FileSystem” básico para o link de abertura openWRT que contém os “lib” necessários do tronco do projeto OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

    2. Extraia-o usando:

      tar xvzf openwrt-ar71xx-genérico-rootfs.tar.gz

    3. Copie os arquivos “libs” dos “rootfs” que extraímos acima para o diretório “libs” em nosso JFFS, preservando seus atributos e links simbólicos:

      cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

      Nota: Você receberá mensagens dizendo que os subdiretórios estão sendo omitidos. Como não precisamos de nada além dos arquivos "lib", isso é bom e você pode ignorar com segurança essas mensagens.

    Corrigindo o “PATH” do LD_LIBRARY
    Precisamos informar ao roteador, onde procurar as bibliotecas compartilhadas (libs) que acabamos de “instalar” e que ele precisa fazer isso antes os que vieram com o firmware.

    1. Para fazer isso, defina a variável de ambiente LD_LIBRARY manualmente (por enquanto), para que o local onde nós copiamos os novos arquivos lib seja o primeiro no “PATH”:

      exportar LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    "/ Etc" lido por escrito
    Nós vamos copiar “/ etc” para o JFFS e então fazer o ponto de montagem “/ etc”, apontar para ele. Ao fazer isso, ambos abrirão um mundo de possibilidades, porque “/ etc” se tornará legível (o que eu pessoalmente estive esperando por mais ou menos 7 anos agora) e habilitará pacotes que esperam que esse comportamento funcione corretamente.

    1. Crie o diretório que conterá “/ etc”:

      mkdir-p / jffs / geek / etc

    2. Copie recursivamente a totalidade de “/ etc” enquanto preserva todos os subdiretórios, atributos de arquivo e links simbólicos.

      cp -a / etc / * / jffs / geek / etc /

    3. Manualmente (por enquanto) “bind mount” o diretório “/ etc” para o diretório JFFS:

      montar -o ligar / jffs / geek / etc / / etc /

    Definir o diretório do Optware ("/ opt")
    Opkg do OpenWRT, espera ser usado quando o firmware do roteador é construído. Como nesse tempo, o FileSystem ainda não está no roteador e, portanto, está sujeito a alterações, não há problema em instalar em qualquer local no FileSystem. É por isso que o arquivo de configuração do Opkg aponta pacotes para instalar na “raiz” (/) do FileSystem. No entanto, estamos usando o Opkg depois de O firmware foi construído e instalado no roteador, e como não podemos alterar a raiz do sistema de arquivos para ser lido, vamos apontar todas as instalações para serem instaladas em "/ opt". No entanto, atualmente “/ opt” também aponta para um local somente leitura no firmware do roteador. Para superar isso, faremos com que o "/ opt" aponte para o JFFS, que é read-writable.

    1. Para fazer isso, crie o diretório que conterá os pacotes do Optware:

      mkdir -p / jffs / opt

    2. Manualmente (por enquanto) “bind mount” o diretório “/ opt” para o diretório JFFS:

      montar -o ligar / jffs / opt / / opt /

      Nota: Embora além do escopo deste guia, usuários mais avançados podem querer alterar este ponto de montagem, para apontar para um HD.

    Ajustando o arquivo de configurações do Opkg
    Queremos que o arquivo de configuração do Opkg esteja onde o Opkg o procura por padrão (que é “/ etc”) e ajustado para instalar em “/ opt”.

    1. Para fazer isso, mova o arquivo de configuração do opkg instalado pelo pacote Opkg para o local “/ etc” de leitura / gravação:

      mv /jffs/etc/opkg.conf / etc /

    2. Alterar o destino das instalações do Optware para “/ opt” em vez de “root” (/).
      Para fazer isso, com o editor “vi” ou WinSCP, navegue até “/ etc /” e faça o conteúdo do arquivo “opkg.conf”:

      vi /etc/opkg.conf

      Faça com que pareça:

      instantâneos src / gz http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
      dest root / opt
      dest ram / tmp
      lists_dir ext / var / opkg-lists
      opção overlay_root / overlay

      Nota: Você pode alterar a diretiva “lists_dir” para apontar para um local que não esteja na RAM, mas sim no JFFS. Embora isso possa aliviar a atualização das listas, antes que você possa instalar software adicional (se o seu roteador for reinicializado da última vez), você perderia cerca de 1,5 MB do escasso espaço do JFFS e estaria aumentando a sua erosão.

    Olá bebê
    Você deve ser capaz de ver que o Opkg está funcionando, emitindo a atualização e listando os comandos.

    1. Se tudo correr bem, você deve estar vendo que as listas do Opkg foram atualizadas sem erros e você está pronto para implementar o script na próxima etapa:

      atualização do opkg; lista de opções

    2. Aproveite o tempo para começar a explorar os pacotes disponíveis no repositório… .

    Script de inicialização
    Agora precisamos fazer com que toda a montagem e caminho necessários ocorram automaticamente quando o roteador inicializar. Para esse fim, criamos para você esse script geek-init de inicialização.

    1. Baixe, extraia e coloque em “/ jffs / geek / etc /”. (Considere fazer isso com WinSCP).
    2. Torne o script executável acessando suas propriedades com o WinSCP ou executando:

      chmod + x /jffs/geek/etc/geek-init.sh

    3. Faça o script executar na inicialização do roteador, usando o WebGUI. Em Administração -> Comandos, na caixa de texto, coloque:

      /jffs/geek/etc/geek-init.sh web-gui

      E clique em "Save Startup".

    Chutando os pneus
    Se tudo correu bem, você deve poder reinicializar o roteador e ainda usar o gerenciador de pacotes Opkg. Isso é para atualizar, listar e instalar aplicativos.
    Vamos testar se tudo está funcionando instalando o comando “netstat”, que por algum motivo foi omitido das compilações do DD-WRT ultimamente. Antes de fazermos isso, execute o comando netstat no terminal e você verá que está sendo ralado por um erro do shell, dizendo “-sh: netstat: not found”.

    1. Seu primeiro passo será sempre atualizar as listas do Opkg para ter a última listagem de pacotes do repositório:

      atualização do opkg

    2. Se você não sabe qual pacote contém o comando “netstat”, você pode filtrar os resultados usando.

      lista de opções | grep netstat

    3. E agora instale o “netstat” usando:

      opkg install net-tools-netstat

      E agora, quando você executa o comando netstat novamente, ele funciona… ok? :)

    Até os futuros artigos em que instalaremos e configuraremos os pacotes de software usando esse método, você poderá ter muita diversão geek explorando a vasta quantidade de software que está agora na ponta dos seus dedos.


    Se tal máquina é uma impossibilidade virtual, deve logicamente ser uma improbabilidade finita. Então tudo o que tenho que fazer para fazer um é descobrir o quão improvável é, alimentar essa figura no gerador finito de improbabilidade, dar a ela uma xícara de chá bem quente e ligá-la ... A única coisa que eles realmente não gosto, é um "Smart-Ass".