Taula de continguts:

DragonBoard Com OBD: 12 passos
DragonBoard Com OBD: 12 passos

Vídeo: DragonBoard Com OBD: 12 passos

Vídeo: DragonBoard Com OBD: 12 passos
Vídeo: Alfa Romeo Stelvio/Giulia SGW Bypass | Clear Codes at home Tutorial 2024, Juliol
Anonim
DragonBoard Com OBD
DragonBoard Com OBD

Através de la leitura del protocol OBD2 del carro, és possible rebre informació del veicle. Utilitzant un DragonBoard 410c vinguem a treballar en aquest projecte, i traiem aqui o caminho detalhado per reproduir aquest tema.

Aquest projecte va ser fet em parceria com a #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora que permetiram que tivéssim els nostres millors programes, així com el contingut amb els millors serveis per contribuir amb el desenvolupament.

Participar d'aquest projecte:

Temos total interesse em ajudar você a concluir o seu projecteto, então não deixe de entrar em contato conosco!

Per seguir aquest projecte en anglès, feu clic aquí:

www.instructables.com/id/DragonBoard-and-OBD2/

A estrutura d'aquest projecte inclou els següents components, conformes presentades a la imatge acima:

  • Qualcomm DragonBoard 410c
  • Interfície OBD2 Bluetooth ELM327
  • Dongle USB 3G / 4G
  • Carregador Veicular d’Inversió de Tensão (110v)

Pas 1: Fazendo O Setup Inicial Da DragonBoard 410c

Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c

Utilitzant un Qualcomm DragonBoard 410c, iniciamos o projecto amb una instal·lació de distribució Linaro de Linux, que ens permet configurar completament el dispositiu.

Per a la imatge de Linaro per a DragonBoard, utilitzeu Ubuntu, pèl VirtualBox, utilitzeu FastBoot, que és aplicatiu basat en Linux. És necessari estar en entorn Linux per poder instal·lar-lo.

Per instal·lar Fastboot, accedir o Terminal de la seva màquina Virtual Ubuntu, i digital:

sudo apt-get android-tools-fastboot

  • Per instal·lar o Linaro, precisament passarem per 2 passos importants:

    • Instal·lant o BOOTLOADER
    • Nom de l'arxiu: dragonboard410c_bootloader_emmc_linux-79.zip

      • https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
      • Retire os arquivos de dentro do ZIP
      • Pasta entra na:

        cd / NomeDaPasta (caminho da pasta descompactada)

      • Fazer o comando:

        dispositius sudo fastboot

      • Resposta esperada:

        (hexadecimal) arrencada ràpida

      • Então digite:

        sudo./flashall

      • Resposta esperada:

        acabat. temps total 1.000 s (sem erros)

        (sem erros)

    • Instal·lant o Sistema Operacional

      • https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
      • Baixar dois arquivos:
      • boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz

        Aquest arquiu és a l'última versió (Junho / 17) i o nom futur pot ser alterat. Una base de nom que s'ha de buscar és "boot-linaro-NomeDaVersão". Nesta versió o nom és “Stretch” i va ser anteriorment “Jessie”

      • linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz

        Aquest arquiu és una última versió (Junho / 17) i o nom futur pot ser alterat. Cerqueu per “linaro-NomeDaVersão-alip”

      • Retirar os arquivos de dentro do. GZ
      • Entrar na pasta “raiz” em relaciona als arquius compactats

        exemple: “/ Downloads” que és o local on arquivos baixados estão

      • Entre els comandaments:

        dispositius sudo fastboot

        sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img

      • Resposta esperada (recordant que el temps pot variar):

        acabat. temps total: 100,00 s

  • Conecte um Mouse, Teclado e um monitor / TV na porta HDMI
  • Utilitzeu:

    • Usuari: linaro
    • Senha: linaro
  • Abra a interface Lxterminal e faça o download da lista de atualizações disposíveis dos pacotes instalados:

    sudo apt-get update

  • Realize a installationção dos pacotes disponíveis using o code:

    sudo apt-get upgrade

Dicas: O Linaro tem um boot extremadament ràpid, i una comunitat bastant engajada per a solució de problemes.

Step 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo

Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo

Comece com a instal·lació dos aplicatius que serviran de client per a GPS, seran ells o GNSS-GPSD, o GPSD i o GPSD-CLIENTS. Faça isso using o command:

sudo apt-get install gnss-gpsd gpsd gpsd-clients

Com ele instalado, vocé precisará rodar alguns comandos per iniciar o aplicar, são eles:

sudo systemctl start qdsp-start.servicesudo systemctl start gnss-gpsd.servicesudo systemctl start qmi-gps-proxy.service

Leve sua DragonBoard 410c per um local aberto, com visada per o céu, e digite no terminal:

gpsmon –n

Pelos testes realizados, o tempo medio até as informações começarem a aparecer na tela, é de cerca de 10 minutos. Isso varia muito da localização da DragonBoard, quantidade de prédios ao seu redor, além de altres barreiras naturais que possam atrapalhar a recepció do sinal do GPS.

Per aconseguir capturar aquestes informacions i enviar-les a un nucli, utilitzeu el codi abaix, alterant o endereçant el vostre lloc web:

Pas 3: Instal·leu O Dongle USB 3G / 4G

Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G
Instal·lant O Dongle USB 3G / 4G

Existeixen algunes formes de fer un DragonBoard 410c per accedir a un 3G / 4G:

  • Instal·lació de Shield / BreakoutBoard amb mòdem GSM i ranura per a SimCard;
  • Utilitzar un Dongle USB 3G / 4G;

Per a aquest projecte optem pel cabell Dongle USB 3G / 4G del model Huawei E3272, es pot obtenir aquest dispositiu.

Per configurar o mòdem, es pot utilitzar el terminal (com a aplicació WVDial), ja que més fàcil és utilitzar una interfície Gràfica del Usuari (GUI) de Linaro. Faça de la següent forma:

  • Com o Dongle USB connectat, feu clic amb botó direito no ícone de “redes” no canto inferior direito da tela.
  • "Edita connexions"> "Afegeix"
  • Escolta una opció: "Banda ampla mòbil"
  • Feu clic a "Crea"

Siga a tela d’instal·lació del sistema operacional, conforme imatges acima, configurant una operadora de telefonia conforme sim card comprado. Per a la criació d’aquest projecte, s’utilitza la targeta Sim da Tim (i el mòdem inicialment es ven a la venda).

Pas 4: Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em

Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em
Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em
Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em
Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em
Transformant un punt d'accés WiFi / punt d'accés a DragonBoard 410c Em
Transformant un punt d'accés WiFi / punt d'accés a DragonBoard 410c Em

Per utilitzar un DragonBoard 410c com un roteador wifi (ara que es pot configurar una connexió amb internet), d'una manera més senzilla, s'utilitzarà una interfície pròpria del sistema. Siga os passos abaixo:

  • Clique no botão direito no ícone de “redes” no canto inferior direito.
  • "Edita connexions"> "Afegeix"
  • Escolliu l'opció "WiFi"
  • Feu clic a "Crea"

Coloque o nome da rede que você quer criar no field "SSID" e depois altere o “Mode” for “Hotspot”.

Per garantir o funcionament:

  • Vegeu “Configuració d'IPv4”
  • Vegeu el “Mètode” com a “Compartit a altres ordinadors”

Pas 5: accediu a DragonBoard 410c Per SSH Sem Fio, utilitzant O Hotspot

Accedint a DragonBoard 410c Per SSH Sem Fio, utilitzant O Hotspot
Accedint a DragonBoard 410c Per SSH Sem Fio, utilitzant O Hotspot

Criamos um jeito d’acessar a placa remotament, independentment de la forma que aquesta estigui connectada, no depenent d’estar proper a Dragonboard per connectar directament a ela, o al wifi em que aquesta estigui connectada. Aquest és el mètode de connexió dels servidors Linux d'Amazon.

Comencem instal·lant o SSH automàtic, utilitzant un codi abaixo.

sudo apt-get install gcc make

wget https://www.harding.motd.ca/autossh/autossh-1.4e.tgz tar -xf autossh-1.4e.tgz cd autossh-1.4e./configure make sudo make install

Agora vamos gerar uma chave criptografada com patró de seguretat RSA. Esta chave serve para que a pessoa que a tenha, tenha autorização per accedir a una instància del punt final exclusiu no Linux, através de l'IP públic al mòdem 3G, objectiu principal d'aquest pas. Na sequência, o code faz a copia da chave para o repositório de chaves confiáveis do Linux, garantint encara més confiança per a connexió.

ssh-keygen -t rsa

scp ~ /.ssh / id_rsa.pub user @ remote_server:.ssh / authorized_keys autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 user @ remote_server

Així mateix, acabem de transformar un DragonBoard 410c en un servidor cloud! / o /

Pas 6: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2

Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2

A interface de comunicação com os carros é feita através da porta OBD2. A information que transita nesta porta precise ser traduzida, e para isso precisamos de um interpretador que trate os dados. Té dues opcions per a aquest maquinari: ELM327 o STN1170.

Per a aquest projecte, utilitzeu un dispositiu Bluetooth amb xip basat en ELM327.

Important destacar que la disponibilitat d'aquest maquinari no necessàriament representa una versió ORIGINAL de ELM327. A major part disponível está na versão 1.5, que va ser quan el xip original va ser clonat i col·locat a la venda no mercat. O chipset original està disponible en versió 2.2. A evolutionção deste versionamento traz ao chip mais informações sobre os carros mais novos. És important saber-ho, depenent dos testes realitzats, podent o no aconseguir obtenir informació determinada de vehicles més nous.

De posse do seu dispositiu OBD2 Bluetooth, es troba amb una porta OBD2 do seu carro. El podeu estar localitzat logo abaixo do volante, no console central o perto da caixa de fusíveis. O local varia bastant entre muntadores i models. L'opció per localitzar és utilitzar aquesta eina:

Acess a DragonBoard 410c com SSH, using their Notebook (lembrando that agora você està no carro, e não possui mais uma tela para connectar a placa).

Assim que o device OBD2 Bluetooth for inserido no conector do carro, siga os passos abaixo for ter control from connectivity bluetooth:

sudo bluetoothctl

emparellable a l'agent en l'escaneig d'agent per defecte activatEn aquest moment és important que es copiï o l'adreça MAC es precisi per als propers passos

Digita:

confia en MACADDRESS

parell MACADDRESS

En aquest moment s'ha d'aparèixer una sol·licitud digital per al PIN de parament del Bluetooth OBD2.

O PIN generalment és 1234 o 0000

Após un teixit de succés de connexió, digitant aquest comandament, sentit el programa controlador de Bluetooth digitant:

deixar de fumar

Ara és precís fer un "BIND" del dispositiu amb un porta sèrie:

sudo rfcomm bind 0 MACADDRESS 1

Per validar o succeir l'operació digital:

ls / dev

A porta “Rfcomm0 deve estar na lista.

Pas 7: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2

Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2

L'objectiu d'aquest pas garanteix el funcionament de la comunicació entre els dispositius:

ELM327, DragonBoard 410c i Veículo

Baixa a l'aplicació “Screen” per enviar mensatges a la Porta Serial

sudo apt-get install screen

A Porta Serial serà usada per envio i recebiment de Comandos AT entre a DragonBoard 410c e o ELM327.

Per saber més sobre Comandos AT, accés:

ATENÇÃO:

Tome muito cuidado nesta parte! Totes com informacions enviades per al dispositiu connectat fins al carro, poder ser interpretades i enviades al carro de manera errada i ocasionar o mal funcionament del seu carro! Estude bastante os comandos antes de tentar inovar nos comandos. Recomanem que siga com a instruccions abaixo detalhadamente.

Siga a seqüència de comandaments abaixo per donar inici a comunicació:

  • Aquesta funció farà obrir o terminal de comunicació serial.

    pantalla / dev / rfcomm0

Assim que o terminal carregar, digite os comandos abaixo nesta sequência (e entenda o que cada um deles faz):

  • Reinicia o dispositiu. As vezes você precisará fazer isso.

    ATZ

  • Liga a funcionalidad de quebra de linha nos comandos, facilitando una visualización.

    ATL1

  • Liga os cabeçalhos dos comandos.

    ATH1

  • Liga o espaçament entre palavras.

    ATS1

  • Definiu o protocol de comunicació del carro per a "Automàtic".

    ATSP0

Prova de comunicació final:

  • Digite sense consola:

    ATI

  • He de retornar “ELM327 v1.5” o una versió del ELM del seu dispositiu.
  • Isso prova que o ELM327 està comunicant com a placa sem problemes, i podem prosseguir.

Dica

Per a l'aplicació “Screen” és necessari obrir: Ctrl-A seguido de Ctrl-D

Pas 8: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD

Lligant un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
Lligant un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD

PyOBD és la vostra biblioteca de Python específica per a comunicação com o padron OBD2 dos veículos. Com ela, podem extrair diverses informacions da rede de comunicação do carro, inclosos dats com a velocitat i fins i tot errors de part elèctrica.

Per a aquesta etapa, precisament garantim que les següents biblioteques estiguin instal·lades en Linaro da sua DragonBoard 410c:

  • PIP - Gerenciador de módulos do Python

    sudo apt-get install python-pip

  • SetupTools - gestor d'arquius d'instal·lació

    sudo pip install -U pip setuptools

  • Wheel - formatador d'arquius per a instal·lació

    sudo apt-get install python-wheel

  • OBD - biblioteca per a interpretació de dats OBD

    sudo apt-get python-obd

  • GPS - biblioteca com dados do gps

    sudo pip instal·lar gps

  • Sol·licituds - mòdul de sol·licituds

    sol·licituds d'instal·lació de sudo pip

Per saber-se a la biblioteca de Python està funcionant correctament, precisament rodar els comandaments:

sudo python

En aquest moment o el cursor del terminal es mudarà per aquest ícone “>>>” indicant que el programa està rodant Python. Podem venir a digitar els comandaments per a serem interpretats segons abaixo.

  • Comece importando a biblioteca

    importar obd

  • Per fer una connexió amb un ús serial o ordre

    connection = obd. OBD ("/ dev / rfcomm0")

  • Per descobrir-se o Python s’obté informació extra per carro, passant pel Bluetooth, ELM327 até arribar sense carro, digite:

    connection.protocol_name ()

Pas 9: Informació complementària de Carro Usando Python

Informació addicional Do Carro Usando Python
Informació addicional Do Carro Usando Python

Vamos criar um arquivo chamado: OBD.py, conforme instruções abaixo e code na sequência.

Importem una biblioteca OBD per dins de Python per iniciar com a connexions.

Per motius desconeguts, una primera connexió amb un nou maquinari, sempre ha de ser. Na segona tentativa, funciona sempre. Per tant, no hi ha cap codi que hi hagi dues línies de connexió (amb).

Seguint o funcionament del codi, com a connexió feita, iniciamos um loop infinito que busca os dados do OBD, format d’acord amb paràmetres estabelecidos. Feu clic a URL, utilitzant Query String, perquè pugueu enviar-lo al servidor mitjançant un mètode POST.

Cap exemple abaixo pegamos com a següents informacions:

  • RPM
  • Velocitat
  • Odòmetre *

Com a funcions per a la captura dos dies utilitzats per paràmetres. Per exemple, utilitzant [1] [12] estem buscant [mòdul] [PID]. Esta lista pot ser trobada en:

Per últim, a humm a URL com totes as informações são concatenadas e adicionadas em um arquivo, chamado "obd_data.dat".

Codi per OBD.py:

import obdimport timeodoInicial = -1 paramOdo = 0 #Conect OBDprint "Primeira conexao" con = obd. OBD ("/ dev / rfcomm0") print "Segunda conexao" con = obd. OBD ("/ dev / rfcomm0") while True: respRPM = con.query (obd.commands [1] [12]) print respRPM respVelo = con.query (obd.commands [1] [13]) print respVelo respOdo = con.query (obd.commands [1] [49]) print respOdo paramRPM = int (float (str (respRPM).replace ("revolutions_per_minute", ""))) paramVelo = int (float (str (respVelo).replace ("kph", ""))) paramOdo = int (float (str (respOdo).replace ("kilometer", ""))) url = "https://www.website.com/OBD?vel="+str(paramVelo)+"&rpm="+str (paramRPM) + "& odo =" + str (paramOdo) + "\ n" time.sleep (0.2) print url file = open ("obd_data.dat", "a +") file.write (url) file.close () URL d'impressió

Depois da conexão e captura dos dados, vamos criar o arquivo chamado: envia_OBD.py

Aquesta part del codi fica més simples. Vine a importar biblioteques relacionades amb sol·licituds / enviament de dats, utilitzant RESTFUL.

Criamos um while per enviar através de POST a URL da first line do arquivo que populado anteriormente hair OBD.py. Depois disso, para evitar que o dado seja enviado mais de uma vez, ela apaga esta linha do arquivo.

Codi per a l'arxiu OBD.py:

sol·licituds d’importació

importar el temps mentre és True: try: time.sleep (0.2) url = "" amb open ('obd_data.dat', 'r') com a fin: data = fin.read (). splitlines (True) url = data [0] requests.post (url) amb open ('obd_data.dat', 'w') com a fout: fout.writelines (dades [1:]) excepte: imprimeix 'exception'

Cas tenha algum problema copiant estes codis, baixe os arquivos abaixo:

Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro

Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Repetição De Scripts E Armazenamento De Dados Capturados Do Carro

Tot o que es va fer ara va ser orientat a garantir que a DragonBoard es van formar comunitats amb diferents components de solució, com a comunicació 3G, WiFi, Bluetooth, Dados do GPS, entre altres.

Vamos usar o código abaixo para editar o arquivo 'rc.local', que já tem algumas funções e comandos pré-definidos, e fica no diretório '/ etc'. Per fer l'edició, utilitzeu o comanda:

sudo nano /etc/rc.local

Ara precisem configurar la inicialització de tots els processos, serveis i funcions, criant rotines perquè funcionin automàticament al començament de Dragonboard. Utilitzem BASH per fer-ho. O BASH (Bourne-Again-SHell) és un aplicatiu per a la interpretació de comandaments Unix.

No proper code, that tem commandos BASH, você precisará inserter or MacAddress by your device OBD / Bluetooth, and alsom precisa ter quite cuidado for garantir that o code seja colocado sempre before the command "exit 0" that is a response of success of sistema.

si [! -f / etc / ssh / ssh_host_rsa_key]

llavors systemctl stop ssh.socket || true dpkg-reconfigure openssh-server fi sudo systemctl start qdsp-start.service rfcomm bind 0 MACADDRESS 1 sudo python /home/linaro/Documents/FadaDoCarro/conectaGPS.py & sudo python / home / linaro /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0

A partir de agora, sempre que a placa for iniciada, ela já vai se connectar através do 3G e enviar os dados de GPS e OBD para o servidor escolhido.

Pas 11: Dificuldades Encontradas

Dificuldades Encontradas
Dificuldades Encontradas

Listamos abaixo algumas barreira que trobem al llarg del desenvolupament del projecte, que resolem abans de criar aquest instructable, però que és important alertar-lo, cas que estigui tendeix dificultats també.

  • PyOBD

    É preciso ter muito cuidado na hora de transmitir os dados e comunicar com o carro. Nas primer tentatives, quan a comunicação ainda não eravel com o dispositiu, enviamos alguns comandaments per a carro, i acabem causant algun problema en ECU. En aquest moment o cable automàtic no s'aconsegueix més mudances, ficat travat. Alem disso, as luzes do painel começaram a piscar aleatoriamente. A solution for this event that occasionamos foi o desligamento dos cabos da bateria, mantenint assim per 15 minuts. Desta forma, forçamos o reset completo das ECUs do carro, retornant ele ao estàgio original de fábrica, portanto cancelando qualquer comando que tenhamos enviado erroneamente pela porta OBD

  • Linaro

    Tivemos un problema de arranque no Linaro, quan aleatòriament o OS reiniciava. Aquest problema va ser resolt al llarg del desenvolupament del projecte, pela equipe do Linaro, que soltou uma atualização, e já construímos este tutorial utilitzant una informació més atualitzada

  • GPS a DragonBoard

    A Qualcomm Dragonboard 410c no té antenes GPS internes, i és millor rebre recepció de sinal, és precís instal·lar o connectar i adquirir una antena externa. Per fer aquest procediment, segueix els passos proposats pel programa Qualcomm:

Pas 12: Referències

Referències
Referències

Carregador d'arrencada

builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/

Linaro

builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/

Com instal·lar o Linaro na DragonBoard 410c

www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/

Documentació de GPS per a DragonBoard

discuss.96boards.org/t/gps-software/170/16

Demostració GPS

gist.github.com/wolfg1969/4653340

OBD Python

github.com/brendan-w/python-OBD

Connectant RaspberryPi a un OBD Bluetooth

gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/

Instruccions per a la criació del túnel SSH

gist.github.com/kr0no/63e34c77b02843b46a8d89d8f7b5e4b6

Instal·lant o SSH sense Linux

ask.xmodulo.com/install-autossh-linux.html

Recomanat: