Daftar Isi:

DragonBoard Com OBD: 12 Langkah
DragonBoard Com OBD: 12 Langkah

Video: DragonBoard Com OBD: 12 Langkah

Video: DragonBoard Com OBD: 12 Langkah
Video: 8 EEPROM PLACA 2024, November
Anonim
DragonBoard Com OBD
DragonBoard Com OBD

Através da leitura do protocolo OBD2 do carro, é possível receber informaes do veículo. Manfaatkan DragonBoard 410c untuk memulai proyek baru, dan lebih banyak lagi.

Este projeto foi feito em parceria com a #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora que permitiram que tivéssemos acesso aos melhores hardwares, além lakukan contato com os melhores profissionais para contribuir com o desenvolviment.

Participaram deste projeto:

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

Untuk mengikuti proyek ini dalam bahasa Inggris, klik di sini:

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

Sebuah estrutura deste projeto termasuk os seguintes komponen, sesuai dengan gambar dan gambar:

  • Qualcomm DragonBoard 410c
  • Antarmuka OBD2 Bluetooth ELM327
  • Dongle USB 3G/4G
  • Carregador Veicular de Inversão de Tenso (110v)

Langkah 1: Fazendo O Setup Inisial Da DragonBoard 410c

Fazendo O Setup Inisial Da DragonBoard 410c
Fazendo O Setup Inisial Da DragonBoard 410c
Fazendo O Setup Inisial Da DragonBoard 410c
Fazendo O Setup Inisial Da DragonBoard 410c
Fazendo O Setup Inisial Da DragonBoard 410c
Fazendo O Setup Inisial Da DragonBoard 410c

Gunakan Qualcomm DragonBoard 410c, inisiasi dan projeto, instalasi dan distribusi Linaro untuk Linux, konfigurasikan lengkap dan lakukan dispositivo.

Untuk gambar pengguna melakukan Linaro untuk DragonBoard, gunakan Ubuntu, pelo VirtualBox, untuk FastBoot, dan aplikasi berbasis Linux. diperlukan untuk menginstal Linux untuk instalasi-lo.

Untuk menginstal Fastboot, akses ke Terminal da sua Máquina Virtual Ubuntu, e digit:

sudo apt-get android-tools-fastboot

  • Para instalar o Linaro, precisamos passar por 2 passos muito penting:

    • Instalando atau BOOTLOADER
    • Nama untuk arquivo: dragonboard410c_bootloader_emmc_linux-79.zip

      • https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
      • Pensiun atau arquivos de dentro do ZIP
      • Entra dan pasta:

        cd /NomeDaPasta (caminho da pasta descompactada)

      • Fazer atau komando:

        perangkat sudo fastboot

      • Tanggapan esperada:

        (heksadesimal) fastboot

      • Angka Ento:

        sudo./flashall

      • Tanggapan esperada:

        selesai. total waktu 1.000 detik (sem erros)

        (sem erros)

    • Instalasi atau Sistema Operasional

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

        Este arquivo é a ltima versão (Junho/17) e o nome futuro pode ser alterado. Basis do nome que você deve buscar é “boot-linaro-NomeDaVersão”. Nesta versão o nome é “Stretch” dan anterior foi “Jessie”

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

        Este arquivo é a ltima versão (Junho/17) e o nome futuro pode ser alterado. Dapatkan melalui “linaro-NomeDaVersão-alip”

      • Retirar os arquivos de dentro do. GZ
      • Masuk dengan pasta “raiz” em relação aos arquivos compactados

        contoh: “/Unduhan” que é o local onde os arquivos baixados estão

      • Entre com os comandos:

        perangkat sudo fastboot

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

      • Reposta esperada (lembrando que o tempo pode variar):

        selesai. total waktu: 100.00s

  • Sambungkan Mouse, Teclado e um monitor/TV dan porta HDMI
  • Memanfaatkan:

    • Usuario: linaro
    • Senha: linaro
  • Abra a interface Lxterminal dan faça o unduh da lista de aktualisasi disponíveis dos pacotes instalados:

    sudo apt-get update

  • Sadarilah sebuah instalasi dos pacotes disponíveis usando o código:

    sudo apt-get upgrade

Dicas: O Linaro tem um boot extremamente rápido, e uma comunidade bastante engajada para solução de problemas.

Langkah 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

Ayo com a instalação dos aplicativos que service de cliente para o GPS, sendo eles GNSS-GPSD, o GPSD o GPSD-CLIENTS. Faça isso usando atau komando:

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

Com ele instalado, você precisará rodar alguns comandos para iniciar o aplicativo, são eles:

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

Level sua DragonBoard 410c untuk aberto lokal, com visada para o céu, e digit tanpa terminal:

gpsmon –n

Pelos testes realizados, o tempo médio até as informaes começarem a aparecer na tela, é de cerca de 10 minutos. Pilihan yang tepat untuk lokasi Anda DragonBoard, quantidade de prédios ao seu redor, além de outras barreiras naturais que possam atrapalhar a recepção do sinal do GPS.

Para conseguir capturar essas informações e mandar para a núvem, use o código abaixo, alterando o endereço do seu situs web:

Langkah 3: Instalando O Dongle USB 3G/4G

Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G

Algum yang ada untuk fazer dan akses ke DragonBoard 410c dan rede 3G/4G:

  • Pasang Shield / BreakoutBoard com Modem GSM e slot untuk SimCard;
  • Memanfaatkan USB Dongle 3G/4G;

Pilihan terbaik untuk memilih Dongle USB 3G/4G untuk Huawei model E3272, untuk kemudahan akses.

Untuk konfigurasi modem, gunakan terminal (com a aplikasi WVDial), porém o jeito mais fácil é utilizar a própria Antarmuka Gráfica do Usuário (GUI) do Linaro. Faça da seguinte format:

  • Com o Dongle USB conectado, klik com botão direito no icon de “redes” no canto inferior direito da tela.
  • “Edit Koneksi” > “Tambah”
  • Escolha a opção: “Broadband Seluler”
  • Klik "Buat"

Siga a tela de instalação lakukan operasi sistem, sesuaikan gambar, konfigurasikan operadora de telefonia sesuaikan kartu sim comprado. Para criação deste projeto, utilizamos um Kartu Sim da Tim (e um modem inicialmente vendido pela Vivo).

Langkah 4: Ubah menjadi DragonBoard 410c Em Hotspot / Access Point WiFi

Ubah DragonBoard 410c Em Hotspot / Access Point WiFi
Ubah DragonBoard 410c Em Hotspot / Access Point WiFi
Ubah DragonBoard 410c Em Hotspot / Access Point WiFi
Ubah DragonBoard 410c Em Hotspot / Access Point WiFi
Ubah DragonBoard 410c Em Hotspot / Access Point WiFi
Ubah DragonBoard 410c Em Hotspot / Access Point WiFi

Untuk menggunakan DragonBoard 410c como um roteador wifi (agora que você já mengonfigurasi koneksi dan internet), sebuah maneira mais simples é utilizar a própria interface do sistema. Siga os passos abaixo:

  • Clique no botão direito no ícone de “redes” no canto inferior direito.
  • “Edit Koneksi” > “Tambah”
  • Escolha a opção "WiFi"
  • Klik "Buat"

Coloque o nome da rede que você quer criar no campo "SSID" dan perubahan "Mode" untuk "Hotspot".

Para garantir o funcionamento:

  • Vá na aba "Pengaturan IPv4"
  • Veja se o "Metode" está marcado como "Dibagikan ke komputer lain"

Langkah 5: Acessando a DragonBoard 410c Por SSH Sem Fio, Memanfaatkan O Hotspot

Acessando a DragonBoard 410c Dengan SSH Sem Fio, Gunakan Hotspot
Acessando a DragonBoard 410c Dengan SSH Sem Fio, Gunakan Hotspot

Cari tahu lebih banyak tentang a placa remotamente, independente da forma que ela esteja conectada, não dependendo de estar próximo a Dragonboard para conectar diretamente ela, ou ao wifi em que ela esteja conectada. Este é o método de conexão dos servidores Linux da Amazon.

Ayo instalando SSH Otomatis, gunakan atau codigo 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 padrão de segurança RSA. Esta chave serve para que a pessoa que a tenha, tenha autorização para acessar instância do endpoint exclusivo no Linux, através do IP público do modem 3G, objetivo principal deste passo. Sequência, o código faz a copia da chave para o repositório de chaves confiáveis do Linux, garantindo ainda mais confiança para a conexão.

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 pengguna@remote_server

Dapatkan, acabamos de transformar a DragonBoard 410c em um server cloud! \Hai/

Langkah 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth – Passo 1/2

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 1/2

Sebuah antarmuka untuk komunikasi com os carros é feita através da porta OBD2. A informação que transita nesta porta precisa ser traduzida, e para isso precisamos de um interpretador que trate os dados. Há duas opções para este hardware: ELM327 atau STN1170.

Para este projeto, utilizamos um dispositivo Bluetooth com chip baseado em ELM327.

Penting destacar que a disponibilidade deste hardware no perlu representa a versão ORIGINAL lakukan ELM327. Sebagian besar disponível está na versão 1.5, que foi quando o chip asli foi clonado e colocado a venda no mercado. O chipset asli versi 2.2. A evolução deste versionamento traz ao chip mais informações sobre os carros mais novos. penting pedang disso, pois dependendo dos testes realizados, poderá ou não conseguir obter determinadas informações de veículos mais novos.

De posse do seu dispositivo OBD2 Bluetooth, encontre a porta OBD2 melakukan seu carro. Ela pode estar localizada logo abaixo do volante, no console central ou perto da caixa de fusíveis. O varia bastante entre lokal sebagai montadoras dan modelos. Uma opção para localizar é usar esta ferramenta:

Akses DragonBoard 410c com SSH, gunakan Notebook (lembrando que agora você está no carro, en não possui mais uma tela para conectar a placa).

Asim que o dispositivo OBD2 Bluetooth untuk inserido no conector do carro, siga os passos abaixo para ter controle da conectividade bluetooth:

sudo bluetoothctl

dapat dipasangkan pada agen pada pemindaian agen default padaNeste momento é importante que você copy o Alamat MAC pois precisará para os próximos passos

angka:

percaya pada MACADDRESS

pasangan MACADDRESS

Neste momento deve aparecer uma solicitação para digitar o PIN de pareamento lakukan Bluetooth OBD2.

O PIN geralmente é 1234 ou 0000

Após a tela de sucesso de conexão, digitando este comando, você sai do programa controlador do Bluetooth digitando:

berhenti

Agora é preciso fazer um "BIND" lakukan dispositivo com a porta serial:

sudo rfcomm bind 0 MACADDRESS 1

Para validar o sucesso da operação digite:

ls /dev

Sebuah porta “Rfcomm0” berkembang pesat.

Langkah 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth – Passo 2/2

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Melalui Bluetooth – Passo 2/2

Objetivo deste passo é garantir o funcionamento da comunicação entre os dispositivos:

ELM327, DragonBoard 410c dan Veículo

Baixe a applicao “Layar” para enviar mensagens pela Porta Serial

Sudo apt-get install layar

A Porta Serial será usada para envio dan recebimento de Comandos DI entre a DragonBoard 410c e o ELM327.

Para saber mais sobre Comandos AT, akses:

ATENÇÃO:

Tome muito cuidado nesta parte! Toda as informaes enviadas para o dispositivo conectado ao carro, poderão ser interpretadas and enviadas ao carro de maneira errada e ocasionar o mal-funcionamento do seu carro! Estude bastante os comandos antes de tentar inovar nos comandos. Recomendamos que siga as instruções abaixo detalhadamente.

Siga a sequência de comandos abaixo para dar início komunikasi:

  • Esta função fará abrir o terminal de comunicação serial.

    layar /dev/rfcomm0

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

  • Reinicia o dispositivo. Sebagai vezes você precisará fazer isso.

    ATZ

  • Liga a funcionalidade de quebra de linha nos comandos, facilitando a visualização.

    ATL1

  • Liga os cabeçalhos dos comandos.

    ATH1

  • Liga o espaçamento entre palavras.

    ATS1

  • Definisikan o protocolo de comunicação do carro para “Automático”.

    ATSP0

Teste de comunicação Final:

  • Digit tidak ada konsol:

    ATI

  • Ele deve retornar “ELM327 v1.5” atau sebaliknya ELM lakukan seu dispositivo.
  • Isso prova que o ELM327 está comunicando com a plaa sem problemas, dan podemos prosseguir.

Dica

Untuk aplikasi "Layar" yang diperlukan: Ctrl-A seguido de Ctrl-D

Langkah 8: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD

PyOBD dan biblioteca de Python específica para comunicao com o padrão OBD2 dos veículos. Com ela, podemos extrair diversas informações da rede de comunicação do carro, incluindo dados como velocidade dan até mesmo erros da parte elétrica.

Para esta etapa, precisamos garantir que as seguintes bibliotecas estejam instaladas no Linaro da sua DragonBoard 410c:

  • PIP – Gerenciador de módulos melakukan Python

    sudo apt-get install python-pip

  • SetupTools – gestor de arquivos de instalação

    sudo pip install -U pip setuptools

  • Roda – formatador de arquivos para instalação

    sudo apt-get install python-wheel

  • OBD – biblioteca para interpretao de dados OBD

    sudo apt-get python-obd

  • GPS – biblioteca com dados do gps

    sudo pip instal gps

  • Permintaan – módulo de solicitações

    sudo pip permintaan instal

Para saber se a biblioteca de Python está funcionando corretamente, precisamos rodar os comandos:

sudo python

Atur momentum kursor lakukan terminal vai mudar para este ícone ">>>" indicando que o program está rodando Python. Podemos datangçar a digitar os comandos para serem interpretados sesuai abaixo.

  • Ayo penting dan lakukan biblioteca

    impor obd

  • Para fazer a conexão com a porta serial use o comando

    koneksi = obd. OBD(“/dev/rfcomm0”)

  • Untuk penjelasan lebih lanjut Python está conseguindo informasi ekstra do carro, passando pelo Bluetooth, ELM327 até chegar no carro, digite:

    koneksi.protocol_name()

Langkah 9: Extraindo Informações Do Carro Usando Python

Extraindo Informações Do Carro Usando Python
Extraindo Informações Do Carro Usando Python

Vamos criar um arquivo chamado: OBD.py, instrues konform abaixo e código na sequência.

Importamos a biblioteca OBD para dentro lakukan Python para iniciar sebagai conexões.

Oleh motivos desconhecidos, perangkat keras utama, falha sempre. Na segunda tentativa, funciona sempre. Oleh karena itu, tidak ada código verá que há duas linhas de conexão (con).

Seguindo atau fungsi lakukan código, com a conexão feita, iniciamos um loop infinito que busca os dados do OBD, formata de acordo com os parâmetros estabelecidos. Depois cria a URL, utilizando Query String, para que possa enviar ao servidor utilizando o método POST.

Tidak ada contoh abaixo pegamos sebagai informasi tambahan:

  • RPM
  • Velocidade
  • Odometro *

As funções para captura dos dados utilizam dois parâmetros. Sebagai contoh, usando [1][12] estamos buscando [módulo] [PID]. Esta lista pode ser encontrada em:

Oleh ltimo, a humm a URL com todas as informações são concatenadas e adicionadas em um arquivo, chamado " obd_data.dat ".

Kode untuk 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() cetak url

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

Esta parte do código fica mais sederhana. Ayo, penting dan lakukan bibliotecas relacionadas solicitações/envio de dados, usando RESTFUL.

Cari tahu sementara para enviar através de POST a URL da primeira linha do arquivo que populado anteriormente pelo OBD.py. Depois disso, para evitar que o dado seja enviado mais de uma vez, ela apaga esta linha do arquivo.

Kode untuk arquivo OBD.py:

permintaan impor

import time while True: try: time.sleep(0.2) url = '' with open('obd_data.dat', 'r') as fin: data = fin.read().splitlines(True) url = data[0] request.post(url) dengan open('obd_data.dat', 'w') sebagai fout: fout.writelines(data[1:]) kecuali: print 'exception'

Caso tenha algum problema copiando estes códigos, baixe os arquivos abaixo:

Langkah 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

Bersiaplah untuk menemukan waktu yang lalu era orientasi dan jaminan untuk DragonBoard berkomunikasi dengan berbagai komponen da solução, berkomunikasi dengan 3G, WiFi, Bluetooth, Dados do GPS, entre outros.

Menggunakan o código abaixo untuk mengedit arquivo 'rc.local', que já tem algumas funções dan comandos pre-definidos, e fica no diretório '/etc'. Para fazer a edição, gunakan o comando:

sudo nano /etc/rc.local

Agora precisamos mengonfigurasi inicialização de todos os proses, servis e funes, criando rotinas para que funcionem automaticamente ao iniciar a Dragonboard. Vamos utilizar atau BASH untuk fazer isso. O BASH (Bourne-Again-SHell) é um aplicativo para interpretao de comandos Unix.

Tidak ada jawaban, perintah, BASH, suara lebih awal, atau MacAlamat untuk mengatur OBD/Bluetooth, dan lebih awal untuk memastikan untuk garantir que o código seja colocado respost antes melakukan perintah 0 " melakukan perintah ".

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

kemudian 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 & keluar 0

A partir de agora, semper que a placa for thisciada, ela já vai se conectar através do 3G enviar os dados de GPS e OBD para o service escolhido.

Langkah 11: Dificuldades Encontradas

Dificuldades Encontradas
Dificuldades Encontradas

Listamos abaixo algumas barreira que encontramos ao longo do desenvolvimento do projeto, que resolvemos antes de criar este Dapat diinstruksikan, mas que é importante alertá-lo, caso esteja tendo dificuldades também.

  • PyOBD

    tepat untuk mendapatkan perhatian dan transmisi dari dados dan komunikasi com o carro. Nas primeira tentativas, quando a comunicao ainda não era estável com o dispositivo, enviamos alguns comandos para o carro, e acabamos causando algum problema na ECU. Neste momento o câmbio automático não aceitava mais mudanças, ficou travado. Além disso, seperti luzes do painel começaram a piscar aleatoriamente. A solução para este evento que ocasionamos foi o desligamento dos cabos da bateria, mantendo assim selama 15 menit. Desta forma, forçamos o reset completo das ECUs do carro, retornando ele ao estágio original de fábrica, portanto cancelando qualquer comando que tenhamos enviado erroneamente pela porta OBD

  • Linaro

    Tivemos um problema de boot no Linaro, quando aleatoriamente atau OS reiniciava. Este problema foi resolvido ao longo do desenvolvimento do projeto, pela equipe do Linaro, que soltou uma atualização, e já construímos este tutorial utilizando a informação mais atualizada

  • GPS dan DragonBoard

    Sebuah Qualcomm Dragonboard 410c não tem antenas GPS internas, dan melhor recepção de sinal, é preciso instalar o conector dan adquirir uma antena externa. Para fazer este procedimento, siga os passos propostos pela própria Qualcomm:

Langkah 12: Referensi

Referensi
Referensi

Pemuat boot

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

Linaro

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

Como install di Linaro dan DragonBoard 410c

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

Dokumentasi GPS untuk DragonBoard

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

Demo GPS

Gist.github.com/wolfg1969/4653340

Python OBD

github.com/brendan-w/python-OBD

Conectando RaspberryPi um OBD Bluetooth

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

Instrues para criação do túnel SSH

Gist.github.com/kr0no/63e34c77b02843b46a8d89d8f7b5e4b6

Instalando atau SSH tanpa Linux

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

Direkomendasikan: