###### 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)

## 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.

### 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.

### 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.

### 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.

### 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).

## 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.

### 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.


### 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.

### 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.

### 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:

## 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.

## 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.

## 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

## 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)

## 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'

