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

Índice:

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

Vídeo: Como instalar software adicional no roteador doméstico (DD-WRT)

Vídeo: Como instalar software adicional no roteador doméstico (DD-WRT)
Vídeo: COMO O TWITTER ARRUINOU A NOSSA VIDA - YouTube 2024, Abril
Anonim
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. O How-To Geek mergulha em como instalar o software Opkg no 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. O How-To Geek mergulha em como instalar o software Opkg no DD-WRT.

Imagem de Jean Spector e Aviad Raviv

Se você 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

Comprei recentemente um novo Buffalo WZR-HP-AG300H, que vem com uma versão reformulada do DD-WRT. Devido ao fato de que este roteador tem uma porta USB, eu imediatamente conectei um HD e tentei usar o guia wiki “Optware, The Right Way”. Infelizmente, descobri rapidamente que o roteador que eu tenho, com base em Atheros e o script dessa página da wiki, não é compatível. Então eu comecei a cavar (como sempre) 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 a você os arquivos "lib", mas não ensiná-lo a pegá-lo na fonte. Também ter que fazer uso de um HD formatado em Linux ou pelo menos uma partição de um (que na verdade nem funciona nos firmwares que eu testei com). 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 na versão 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 ssmtp e-mail e Knockd um daemon que executa scripts após uma sequência de disparos de porta especificada, para citar alguns. Do site do OpenWRT:

The opkg utility (an ipkg fork) is a lightweight package manager used to download and install OpenWrt packages from local package repositories or ones located on the 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. O Opkg faz isso automaticamente.
  2. Desta vez seremos adicionando software na parte superior do firmware em vigor, em vez de substituí-lo. Enquanto substituí-lo era um excelente exercício de nerd, era sem dúvida: perigoso, propenso a problemas, irreversível e pior de todos os roteadores específicos. 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 de firmware “Pro” 17135 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 muito.
  2. Você precisará habilitar 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). Algumas dicas 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 2 MB de espaço para a configuração, mas depois perderíamos o resultado de “/ etc” se tornar read-writable e teríamos que invocar o Opkg, enquanto especificamos o arquivo de configuração manualmente… o que é como sooo coxo …

Vamos ficar rachando

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

  1. Abra uma sessão de terminal no 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 o gerenciador de pacotes, iremos 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 https://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, este não foi testado por você de verdade.

  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 todos os pacotes no repositório manualmente. No entanto, isso significaria 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 https://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

  2. Extraia-o usando:

    tar xvzf openwrt-ar71xx-generic-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 (bibliotecas) que acabamos de "instalar" e que é necessário fazer isso antes os que vieram com o firmware.

  1. Para fazer isso, configure 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”:

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

"/ Etc" lido por leitura 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:

    mount -o bind /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 momento, 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 criado e instalado no roteador e, como não podemos alterar a raiz do sistema de arquivos para ser gravável, apontaremos 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 é de leitura-escrita.

  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:

    mount -o bind /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. Altere 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:

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

    Nota: Você pode alterar a diretiva "lists_dir" para apontar para um local que não está na RAM, mas sim no JFFS. Embora isso não exija a atualização das listas, antes que você possa instalar software adicional (se o roteador for reinicializado da última vez), você perderia cerca de 1,5 MB do escasso espaço do JFFS e estaria aumentando 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:

    opkg update; opkg list

  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ê este script de inicialização geek-init.

  1. Faça o download, extraia-o e coloque-o em “/ jffs / geek / etc /”. (Considere fazer isso com o 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 ser executado 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 agora poder reiniciar o roteador e ainda usar o gerenciador de pacotes Opkg. Isso é 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 recentemente. Antes de fazermos isso, execute o comando netstat no terminal e você verá que é 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:

    opkg update

  2. Se você não souber qual pacote contém o comando "netstat", poderá filtrar os resultados usando.

    opkg list | 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 dedos.

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

Recomendado: