---
# System prepended metadata

title: LibreRouter
tags: [apc, manuais, pt-br]

---

###### tags: `manuais`, `apc`, `pt-br`

LibreRouter
===

[toc]

# 1 - Resumo

## 1.1 - Como instalar o LibreMesh (versão LibreRouter) em meu roteador?
O LibreRouter usa uma versão própria do LibreMesh, que também pode ser instalado em qualquer roteador compatível com versões anteriores do LibreMesh (consulte a lista de hardwares atualizadas).
Para instalar o LibreMesh do LibreRouter e um hardware de LibreRouter ou qualquer outro equipamento compatível, siga os passos a seguir:

### 1.1.1 - Identifique qual o fabricante e modelo do equipamento
Antes de tudo, identifique qual o principal fabricante e modelo do equipamento. Se vocẽ já librerouter ou libremesh, você pode identificar com o seguinte comando:

`ssh root@nodo 'jsonfilter -e @.model.id < /etc/board.json'`

### 1.1.2 - Pegue o código do LibreRouter e gere o firmware para instalar
Você pode criar um firmware com suas configurações através do código-fonte, seguindo os passos em [Compilando Firmware](#Compilando-Firmware)

### 1.1.3 - Flash the firmware on the router
Depois que compilar o firmware com as configurações necessárias, você precisa ***flashar-lo*** em seu dispositivo, seguindo os passos em [Flash Firmware](#Flash-Firmware)

## 1.2 - Como eu faço minhas primeiras configurações?
Após se conectar a rede por cabo ou wifi, você pode acessar o as configurações de sistema de duas maneira: por LimeApp ou por SSH. Para ambos, caso não saiba o IP do equipamento ou hostname na qual está conectado, você pode usar o endereço **thisnode.info**

* ### LimeApp web access
    1. Access the address http://thisnode.info/app in your browser
* ### SSH command terminal access
    1. Access the terminal `ssh root@thisnode.info`

Para mais detalhes de como realizar as primeiras configurações de rede, e como usar as demais funcionalidades, siga as instruções em [Primeiros Passos] e [Explorando LimeApp].

## 1.3 Qual é a senha para acessar o roteador?

Não há senha padrão. Você deve adicionar uma senha ao criar o firmware ou adicionar chaves SSH para acesso remoto mais seguro.

---

# 2 - Compilando Firmware

## 2.1 - Instale as dependências

### 2.1.1 - Para Debian e Ubuntu
1. **Update:** Rode para atualizar a lista de pacotes disponíveis

    :~# `apt update`

2. **Install:** Rode para baixar e instalar os pacotes de dependências

Para Debian 9.x/10.x:
    :~# `apt install git gcc g++ binutils bzip2 flex python perl make grep diffutils unzip gawk opt subversion time libz-dev zlibc linux-headers-amd64 ncurses-base libghc-ncurses-dev`

Para ubuntu 18.x:
    :~# `apt install git gcc g++ binutils bzip2 flex python perl make grep diffutils unzip gawk opt subversion time libz-dev zlibc linux-headers-generic ncurses-base libghc-ncurses-dev`


### 2.1.2 - Clone Repository
1. **Clone repository:** Run to clone the main repository of LibreRouter

    :~$ `git clone https://github.com/LibreRouterOrg/openwrt.git`

2. **Enter directory:** Run to enter the work directory

    :~$ `cd openwrt`

### 2.1.3 - Download OpenWRT packages
Você deve baixar todos pacotes de repositórios incluidos em suas configurações para serem compilados no processo de construção do seu firmware.
1. **Update:** Rode para obter todos a última lista de pacotes definidos em feeds.conf.default

    :~/openwrt$ `./scripts/feeds update -a` 
    
2. **Install:** Rode para instalar links simbólicos para todos os pacotes obtidos e armazenados em package/feeds/

    :~/openwrt$ `./scripts/feeds install -a`

3. **Config:** Rode para criar o arquivo de configuração a partir do template
    
    :~/openwrt$ `cp configs/default_config .config`

## 2.2 - Faça as configurações
Antes de gerar seu firmware, você pode alterar ou adicionar algumas configurações. Algumas das configurações possíveis são:

### 2.2.1 - Configurando o script de inicialização

files/etc/uci-defaults

### 2.2.2 - Configurando Pirania (Portal Captiva)

1. Acesse o aquivo de configuração do Pirania com o comando `vi /etc/config/pirania` e altere as seguintes linhas:

    de:
    `enabled: "0"`

    para:
    `enabled: "1"`

    de: 
    `db_patch='/etc/pirania/db.csv'`


    to:
    `db_patch='/tmp/db.csv'`


2. Crie um arquivo em files/etc/uci-defaults/enable-pirania com o seguinte conteúdo:

    ```
    #!/bin/sh
    uci set piranha.base_config.enabled=1
    uci set piranha.base_config.db_patch='/tmp/db.csv'
    uci commit

    /etc/init.d/pirania enable

    captive-portal start
    ```
    e torne-o executável com o comando:
    
    `chmod +x files/etc/uci-defaults/enable-pirania`

### 2.2.3 - Configurando lime-config pós-script
Para executar comandos depois do processo do lime-config, insira-o em file/etc/hotplug.d/lime-config/

### 2.2.4 - Configurando chaves SSH
Para realizar acesso remoto via SSH de forma segura, sem a necessidade de usar uma senha sempre, você precisa gerar e adicionar as chaves desejadas no firmware antes de compila-lo. Para fazer isso, você precisa gerar um par de chaves ssh em seu computador e adicionar o arquivo `authorized_keys` em `files/etc/dropbear`. 

1. **Gerando par de chaves SSH**
Para gerar o par de chaves ssh, use os seguintes comandos em seu computador, informando onde a chave de ser armazenada (ou mantenha no diretório padra ~./ssh) e uma frase secreta que deve ser repetida para confirmação:

    :~/openwrt$ `ssh-keygen` 

2. **Inserindo as chaves**
Para adicioná-lo nesse local, você deve colocar o conteúdo do arquivo `authorized_keys` em `file/etc/dropbear`

    :~/openwrt$ `mkdir -p file/etc/dropbear/`


    :~/openwrt$ `cat ~/.ssh/id_rsa.pub >> file/etc/dropbear/authorized_keys`


## 2.3 - Gere o Firmware
Rode o comando os seguintes comandos para gerar o seu firmware.

1. Edite as configurações para a geração do firmware. A principal opção que deve ficar atento é selecionar corretamente para qual dispositivo quer gerar a imagem do firmware. Depois de escolher as opções no menu com as setas do teclado, escolha ***Exit** e **Yes** quando for perguntado se você deseja salvar.

    :~/openwrt$ `make menuconfig`

    >  Obs: O Menuconfig precisa que a janela do terminal seja maximizada para funcionar

2. Execute o comando `make` para iniciar o processo de compilação. E processo pode demorar algumas horas e você deve manter o computador conectado a internet para que as dependências possam ser baixadas.

    :~/openwrt$ `make`

    As imagens de firmwares geradas serão armazenadas em: `bin/targets/ar71xx/generic`



# 3 - Flash Firmware

## 3.1 - Pegue o firmware
Se você compilou o próprio firmware, a imagem pode ser encontrada em bin/targets/ar71xx/generic/openwrt-ar71xx-generic- \<model> -squashfs-sysupgrade.bin where \<model>.

## 3.2 - Acesse o roteador
Se o roteador está funcionando e tem outra versão do LibreMesh, seja por cabo ou por wifi, nós podemos acessa-lo através do endereço `thisnode.info` .

> ATENÇÃO: verifique se estamos conectados a este nó, e não a outro próximo, para isso, conectando-nos ao ponto de acesso do nó e não ao ponto de acesso da rede. O ponto de acesso é a rede wifi publicada pelo nó. cada nó publica duas redes, uma exclusiva e outra compartilhada com o restante dos nós. Eles diferem porque o único possui o nome do nó em seu nome de rede.

> Se você deseja acessar outro nó diferente daquele ao qual está se conectando diretamente via Wi-Fi ou cabo, você precisa saber o seu nome de host (nome do nó) ou o seu ip. (nesse caso, NÃO é útil usar thisnode.info).


## 3.3 Copie o imagem do firmware para o roteador

    `scp (imagen de firmware) root@(host de nodo destino):/tmp`

## 3.4 Atualize o firmware

    ``` 
    sh root@(nombre de nodo)
    sysupgrade /tmp/(imagen de firmware) (un router normal)
    safe-upgrade /tmp/(imagen de firmware); reboot (librerouter)
    ```


# 4 - Primeiros passos no LibreMesh (Wizard)

![](https://i.imgur.com/bnBUc8u.png)

## 4.1 - Configurando uma nova rede
Se você está configurando o primeiro nó que irá compor a rede, deve realizar a configuração de uma nova rede.

### 4.1.1 - Criar nova rede
Clique no botão "Create new network" para iniciar a configuração da nova rede.

![](https://i.imgur.com/Tuw2LUd.png)

### 4.1.2 - Escolha um nome
No campo "Choose a name for your network", informe o nome da sua rede. Já no campo "Choose a name for this node", informe o nome que deseja para esse nó da rede. Em seguida, clique em "Create network" para finalizar.

![](https://i.imgur.com/HyBdtjs.png)

### 4.1.3 - Setando rede
Aguarde as configurações serem aplicadas e o equipamento reinciar. 

> Caso esteja conectado via wifi, a conexão deve se desconectar após alguns segundos.

![](https://i.imgur.com/cvnthBw.png)

### 4.1.4 - Verificando conexão
Após alguns instantes, o sistema vai tentar verificar a conexão com o equipamento com as novas configurações.

> Caso não esteja conectado via cabo, certifique-se de se conectar-se a nova rede antes que o tempo limite dessa etapa esgote.

![](https://i.imgur.com/qhAuP6s.png)

### 4.1.5 - Parabéns
Se todo o processo de configuração da nova rede for bem sucedido, receberá uma mensagem de "Congratulations" (Parabéns).

![](https://i.imgur.com/rTjMkwM.png)


## 4.2 - Adicinar em uma rede existente
Se você está acrescentando este nó a uma rede mesh existente, deve indicar qual rede para ingressar.

### 4.2.1 - Scanear rede
Clique no botão "Scan for existing network" para adicionar este nó a uma rede existente.

![](https://i.imgur.com/LPA73UM.png)

### 4.2.2 - Ingresse a malha
No campo "Select a network to join", selecione a rede mesh a qual deseja adicionar esse nó. Em seguida, clique no botão "Set Network" para aplicar.

![](https://i.imgur.com/PVUUsIU.png)

![](https://i.imgur.com/IvR79FA.png)

### 4.2.3 - Setando rede
Aguarde as configurações serem aplicadas e o equipamento reinciar. 

> Caso esteja conectado via wifi, a conexão deve se desconectar após alguns segundos.

![](https://i.imgur.com/cvnthBw.png)

### 4.2.4 - Verificando conexão
Após alguns instantes, o sistema vai tentar verificar a conexão com o equipamento com as novas configurações.

> Caso não esteja conectado via cabo, certifique-se de se conectar-se a nova rede antes que o tempo limite dessa etapa esgote.

![](https://i.imgur.com/qhAuP6s.png)

### 4.2.5 - Parabéns
Se todo o processo de configuração da nova rede for bem sucedido, receberá uma mensagem de "Congratulations" (Parabéns).

# 5 - Explorando recursos do LiMe/App
O LiMe/App é nome da aplicação para administração das versões mais recentes do LibreMesh, e vem sendo desenvolvido para substuir o LuCi, que a aplicação padrão das versões mais antigas. 

No menu que vocẽ encontra no canto direito superior é possível encontrar as seguintes opções:

![](https://i.imgur.com/1boEtiF.png)

## 5.1 - Status
Nesta tela é possível ter as principais informações de status do nó:

1. **Most Active:** informa MAC Address e qualidade de sinal no próximo nó conectado mais ativido.
2. **Sistem - Uptime:** informa o tempo que ele nó se mantem ativido desde sua última inicialização.
3. **Internet connection:** informa o status de conexão para IPv4, IPv6 e DNS
4. **IP Address:** informa endereços IP para as interfaces ativas.

![](https://i.imgur.com/CT4Crsd.png)

## 5.2 - Alinhamento
Na opção "Align", é possível testar o alinhamento de antenas entre o nó atual e qualquer outro nó alcançável rede.

> Valores de alinhamento devem ficar entre -55 e -75 para garantir uma boa qualidade na rede. Quanto mais próximo de -55, melhor.

![](https://i.imgur.com/NpWplij.png)

## 5.3 - Metricas
Na opção "Metrics", é possível encontrar algumas opções de metricas do uso da rede e internet. 

> Esta opção ainda está em desenvolvimento

![](https://i.imgur.com/6FTwRow.png)

## 5.4 - Config
Em "Config", você pode alterar as configurações de rede de qualquer um dos nós da rede. Basta selecionar o nó e clicar em "Change", que você será levado a mesma tela de configuração descrita na sessão [Escolha um nome](#2.1.2-Escolha-um-nome)

![](https://i.imgur.com/XA6nyA0.png)

## 5.5 - Admin
Na opção "Admin" você pode alterar o nome do nó e o IP do equipamento. Para isso, você deve informar a senha de administrador.

> A senha padrão de administrador é 'admin'

![](https://i.imgur.com/U38CntC.png)
![](https://i.imgur.com/STwAwZr.png)
