close
Kaspersky Endpoint Security

Welcome to

Kaspersky Endpoint Security


By Kaspersky Endpoint Security


Fehlerbehebung Miracast



Einführung

Mein Freund hat mich gebeten, von der Raspberry Pi und eine einfache Umschaltknopf (wie die, die Sie bei Ihrem lokalen Radio Shack / Elektronik-Hobby-Läden zu finden) mit Strom versorgt, um eine Panik-Taste-System zu entwickeln. Ich war mit der Software-Entwicklung beauftragt, während mein Freund die gesamte Hardware zu bauen behandelt. Als ich zum ersten Mal mit dem Projekt zugestimmt, dachte ich, die Ziele ziemlich geradlinig waren; aber Murphys Gesetz beschlossen, den Kopf während des Bauprozesses zu stecken. Ich versuchte zu folgen, die schien unsere Richtlinien zu passen auf den Punkt gebracht. Seine Dokumentation ist eine detaillierte und präzise, ​​aber ich lief in einige Probleme bei der Software-Implementierung. Ich habe alle diese Eigentümlichkeiten plus mehr in diesem umfassenden Handbuch behandelt werden.

Richtlinien

So ist die grundlegende Bedienung dieses Gerätes ist, dass, wenn die Taste, um die On-Position umgeschaltet wird, muss ein Aufruf an mehrere SIP-Erweiterungen platziert werden, die mit einem Asterisk basierte PBX spähte werden. Das Gespräch wird eine Audiodatei in einer Endlosschleife abgespielt, bis der Benutzer auflegt. Zusätzlich muss eine E-Mail als auch an mehrere Adressen auf jeder Taste Toggle gesendet werden. Daher skizzierte ich die spezifischen Programme und Interaktionen, die notwendig sein wird, jedes Ziel zu erreichen:

  • Der Raspberry Pi wird ein Python-Skript nach dem Booten starten, die "lauschen" wird, wenn der Knopf in die Stellung umgeschaltet wird. Ich werde eine Systemeinheit über den systemd Daemon Manager erstellen, um diese Bootverhalten im Pidora-Betriebssystem zu verwalten. Dies ist praktisch eine Ereignis-Verarbeitungsschleife.
  • Raspberry Pi Zugriff auf das GPIO-Modul wird über das Python-rpi.gpio Paket in den Standard-yum-Repositories für Raspberry Pi zur Verfügung gestellt werden. Das Python-rpi.gpio Paket enthält die Python-Bibliotheken für GPIO Steuerung.
  • Um den Anruf aus, ich bin mit der PJSIP Python Library PJSUA genannt. Es wird die Raspberry Pi SIP-Trunk-Funktionen ermöglichen es, die SIP werden in der Lage, Nachrichten zu senden und zu empfangen. Auch wird die Bibliothek verantwortlich für die Audio-Datei zu übertragen. Die PJSIP Python-Bibliothek ist nicht in den Repositories, damit ich es von der Quelle zu kompilieren hatte.
  • Der SMTP-Python-Bibliothek ist mit Python standardmäßig enthalten. Ich kann eine E-Mail an einen SMTP-Relay senden und haben sie die Nachricht an die angegebenen Adressen liefern. Es wird jede Funktionalität zum Empfangen von E-Mails keine Notwendigkeit, eingerichtet werden.

Hardware-Anforderungen

Für diesen spezifischen Build, benutzte ich meine Raspberry Pi Modell B , die ich von bekam. Dieses Projekt verwendet ein Raspberry Pi Modell B , dessen Fall ein Wechselschalter im Formfaktor eines Knopfes, ein Widerstand, ein, ein Dremel Werkzeug, eine Bohrmaschine, ein Bohrer, der ein Loch erzeugen kann den Knopf zu setzen, Lötpistole, und einige gute ole-fashioned Blei-Lot. Alle Einzelteile waren bei Radio Shack und Fry leicht verfügbar. Hier ist eine Liste mit Aufzählungszeichen für eine einfache Verdauung:

  • Raspberry Pi Modell B
  • Raspberry Pi-Fall (erworben von canakit.com)
  • Umschaltknopf
  • ein Widerstand
  • Zwei Mann-zu-Frau-dupont Kabel (eine rote, eine schwarz)
  • Projekt Gehäuse
  • Dremel
  • Bohren
  • Bohrer, der ein Loch erzeugen kann den Knopf, um Platz
  • Lötpistole
  • Lot

Ironischerweise kam das Modell 2 etwa eine Woche in die Entwicklung aus. Shucks. Der Dremel Tool wurde für die Erstellung von Bohrungen im Projekt Gehäuse verwendet, so dass die Raspberry Pi Zugang zu Ethernet hatte, und Stromversorgung über Micro-USB. Einige grundlegende Löten erforderlich war, auf die Schaltfläche Gerät zu erstellen. Zum Glück für mich, mein Kumpel, der mir zunächst um Hilfe bei diesem Projekt kontaktiert haben die meisten der Hardware zu bauen, so hatte ich nicht mit meinem Michael J. Fox Händen kämpfen, um das Löten zu vervollständigen.

Hardware Bauen

Die Schaltfläche Gerät ist die Priorität und die Haupteingangsschnittstelle, die dieses Projekt zu nutzen wird. Wir verwendeten ein rotes und schwarzes Kabel bezeichnet Spannung und Masse, so dass in die GPIO-Schnittstelle des Pi Aufstecken mehr gerade nach vorne wäre.

    Löten Sie eine der Taste, die Kontakte zu einem Widerstand. Löten Sie das andere Ende des Widerstands mit dem männlichen Ende eines dupont Kabel. Für die Aufzeichnung werden die weiblichen Enden der dupont Kabel an die Pi GPIO-Schnittstelle zu verbinden. Das Löten ist ausschließlich auf die männlichen Enden getan. Schließlich löten der letzte männliche Ende an den verbleibenden Kontakt der Taste DuPonts Kabel. Für unsere Build verwendeten wir die Pins 7 und 9 in der Raspberry Pi Numerierungskonvention. Pin 9 ist ein Erdungsstift während der Stift 7 ein Ausgang ist. Sie werden das schwarze Kabel des weiblichen Ende mit Pin 9 für Boden und das rote Kabel anschließen werden an Pin 7.

Das Projekt Gehäuse wurde entwickelt, damit es die Raspberry Pi in seinem eigenen Fall Haus könnte während eines diskreten Formfaktor bietet, die unter einem Schreibtisch befinden könnte. Stellen Sie es sich als eine Schaltfläche, dass die Bankschalter drücken würde, während sie mit vorgehaltener Waffe bedroht fühlt. Der größte Teil der Arbeit, die mein Freund tat, war Löcher mit seinem Dremel Schnitzen, so dass die Pi könnte den Zugang zu Ethernet haben und Macht. Außerdem erfordert die Taste, um ein Loch für den Zugang, die über die Bohrmaschine und Bohrer erstellt wurde. So schaffen die drei notwendigen Löcher und stellen Sie sicher, dass die Pi Zugang zu Macht und Ethernet verfügen kann, während ein Loch zu schaffen, die Ihre Schaltfläche aufnehmen können. Danach setzen Sie Ihre Taste, und stecken Sie die notwendigen dupont Kabel an die Stifte wie oben beschrieben. Sie sollten den Pi an der Unterseite des Gehäuses zu sichern, so dass die Kabel von den GPIO-Pins nicht der Stecker gezogen. Wir erreichten dies mit Hilfe von doppelseitigen Klebeband und einer Heißklebepistole.

Software-Build

Erstellen des Bild Pidora für die Installation

Für das Betriebssystem des Pi, entschied ich mich Pidora aufgrund der Tatsache, dass die meisten meiner Erfahrung mit Linux aufgebaut ist weg von Red Hat Enterprise Linux (RHEL) basierten Distributionen zu installieren. Pidora wird von der sehr populären Distribution Fedora Linux gegabelt und viele Konzepte und Befehle übersetzen gut auf jeder Plattform. In dieser Fallstudie werde ich Pidora auf die Micro-SD-Karte für die Nutzung durch die Pi aus meiner persönlichen Arch Linux-Maschine bezeichnet werden Installation; jedoch werden die Befehle das gleiche in allen Linux-Varianten, die die Bash-Shell verwenden. Ich folgte den Anweisungen als Führer, aber ich werde die notwendigen Schritte im Detail abdecken.

    Als gute Praxis stelle ich sicher, ein Verzeichnis für die Installation von gewidmet zu schaffen, um mein Dateisystem ordentlich halten. Verwenden Sie mkdir das Verzeichnis und CD erstellen Ihr aktuelles Verzeichnis zu Ihrem neu erstellten Ordner zu ändern. [Shane @ shane ~] $ mkdir pidora [Shane @ shane ~] $ cd pidora  Laden Sie die neueste Version von Pidora von seinem. Ich benutze den Befehl wget die Zip-Datei enthält, um das Bild abzurufen. Die Verbindung, die ich zog aus war das ein "" [shane @ shane pidora] $ wget genannt 15: 44: 34-- Die Lösung pidora.ca (pidora.ca) ... 198.57.186.36 Anschluss an pidora.ca (pidora.ca) | 198.57.186.36 |: 80 ... verbunden. HTTP-Anforderung gesendet, wartet auf Antwort ... 200 OK Länge: 576911968 (550M) [application / zip] Speichern auf: 'Pidora-2014-R3.zip' Pidora-2014-R3.zip 100% [======================================== =====================>] 550.19M 4.65MB / s in 2m 4s2015-02-11 15.46.38 (4,44 MB / s) - 'Pidora -2014-R3.zip 'gespeichert [576911968/576911968], um die heruntergeladene Datei mit dem Befehl unzip entpacken, um seinen Inhalt zu erweitern. Wenn dudiese Schritte nicht als root tun, stellen Sie sicher, sudo zu verwenden, um die Aktion zu beenden, wenn die Befehlszeile sagt, dass die Berechtigungen nicht gewährt werden. [Shane @ shane pidora] $ sudo unzip Pidora-2014-R3.zip Archiv: Pidora-2014-R3.zip Aufblasen: Pidora-2014-R3.img Extrahieren: Pidora-2014-R3.img.md5sum Sobald Inhalt der .zip-Datei extrahiert haben, müssen Sie den Namen der SD-Karte zu identifizieren, die in / dev Partition Ihres Root-Dateisystem aufgeführt ist. Die Art, wie ich tat, war so von den lsblk Befehl ausgeführt wird. Sie wird in der Regel ein sda-Dateisystem zu sehen, dass die aktuelle Installation von Linux auf sie haben wird. Für meine Build wurde meine SD-Karte als mmcblk0 aufgeführt. [Shane @ shane pidora] $ lsblk Der Name MAJ: MIN RM SIZE RO TYPE MOUNTPOINT sda 8: 0 0 0 238.5G Scheibe └─sda1 8: 1 0 238.5G 0 Teil / sr0 11: 0 1 1024M 0 rom mmcblk0 179: 0 0 0 14,9 g Scheibe ├─mmcblk0p1 179: 1 0 100M 0 Teil / run / media / shane / 834F-0A61 └─mmcblk0p2 179: 2 0 0 14.8g Teil / run / media / shane / a5b02c41-9434-4c79-8ad2-69d59f45812f die SD-Karte Stellen Sie sicher istunmontiert. Wenn es angebracht ist, werden Sie das Verzeichnis sehen sie unter der "MOUNTPOINT" Säule angebracht ist. Zum Aushängen, führen Sie einfach den Befehl umount mit dem Argument, als das "MOUNTPOINT" Verzeichnis. Nun ist dies sehr wichtig. mmcblk0 bezieht sich auf das gesamte Dateisystem. Nicht eine Partition. Partitionen auf meiner SD-Karte wurden wie mmcblk0p1 und mmcblk0p2 aufgeführt. [Shane @ shane pidora] $ umount / run / media / shane / 834F-0A61 [Shane @ shane pidora] $ umount / run / media / shane / a5b02c41-9434-4c79-8ad2-69d59f45812f den Befehl dd verwenden, werden Sie das Pidora Bild (.img) Datei aus dem ZIP-Datei auf der SD-Karte extrahiert schreiben. dd zu verwenden ist sehr gefährlich, wenn ohne Voraussicht ausübte. Es kann Ihre aktuelle Dateisystem, das Sie die Abbildung der SD-Karte zu überschreiben. [Shane @ shane pidora] $ sudo dd bs = 4M if = Pidora-2014-R3.img | sudo pv | sudo dd of = / dev / mmcblk0516 1 Datensätze in [3.28MiB / s] [<=>] 516 1 Einträge 2167788544 Bytes (2,2 GB) kopiert, 647,853 s, 3,3 MB / s 2.02GiB 00.10.47 [3.19MiB / s] [<=>] 4233962 0 Datensätzeim 4233962 0 Datensätze aus 2167788544 Bytes (2,2 GB) kopiert, 647,913 s, 3,3 MB / s

First Time Boot-Setup

Sobald Sie die Abbildung der SD-Karte mit Pidora fertig sind, stecken sie in die Pi, und stecken Sie in diesem schlechten Jungen an die Macht! Sie werden alle Standard-Schritten zunächst eine Linux-Installation auf dem ersten Boot-Konfiguration gehen. Dazu gehören die Einstellung der Hostname, Zeitzone, Partitionsstruktur usw. habe ich beschlossen, mit den Standardoptionen zu bleiben für die meisten Schritte, aber ich dachte, dass die Anweisungen, die sie auf dem Bildschirm zur Verfügung gestellt waren sehr unkompliziert und einfach zu verstehen. Das einzige, was ich wollte allerdings angeben, war die Installation nur über die Befehlszeile ohne GUI. Das wird Overhead auf die Prozesslast und Speicher des Pi reduzieren.

Nachdem die Installation abgeschlossen ist, werden Sie in der Befehlszeile Login-Prompt fallen gelassen werden. Glückliche Tage! Einloggen mit dem Root-Benutzernamen und das Passwort, das Sie vorhin angegeben haben. Während dieser Zeit sollten Sie voran gehen und notieren Sie sich die IP-Adresse des Pi, die ihm zugeordnet ist. In der Standardeinstellung ist DHCP aktiviert. So lange, wie Sie auf dem gleichen LAN sind, sollten Sie in der Lage sein, in Pidora mit den richtigen Anmeldeinformationen SSH. die IP-Prüfung ist so einfach wie die "IP ein" Befehl ausgeführt wird. "Ifconfig".

Die erste Sache, die ich immer in die Kommandozeile zum ersten Mal Anmeldung ist ein Update auszuführen. Die 'y' Flagge zeigt an, dass Sie Ja automatisch zu reagieren, um alle der ja und keine Eingabeaufforderungen, die angezeigt werden, nachdem die repos aktualisiert werden und die Abhängigkeiten aufgelöst werden. Dies ist in der Regel unsicher und kann zu Schäden an Ihrem Build verursachen, wenn sie nachlässig verwendet. Lassen Sie die Flagge, wenn Sie lesen möchten, und bestätigen Sie alle Aufforderungen vor der Hand.

[Root @ Panik ~] $ yum update -y

Ich fand, dass Pakete auf dem Raspberry Pi Modell B immer nahm eine astronomische Höhe der Zeit zu installieren. Ich würde empfehlen, dass Sie während dieser Zeit und bei allen anderen großen zukünftigen Installationen einen Kaffee gehen zu greifen. Nachdem die Updates fertig sind, starten Sie den pi von der Kommandozeile.

[Root @ Panik ~] $ reboot

Herunterladen der benötigten Programme

Also, um alle Bibliotheken zu verwenden, die in den Richtlinien Abschnitt aufgeführt wurden, haben wir die PJSIP Bibliothek von Quelle zu kompilieren, während die GPIO-Python-Bibliothek aus den Standard-Repositorys greifen. Pidora nutzt das yum Paket-Manager; Installieren von Paketen und deren Abhängigkeiten zu einem Kinderspiel macht. Der schwierigste Teil, das ich über kam, war immer die richtigen Werkzeuge, um die PJSIP Bibliothek zu bauen. Auch Ihre bevorzugten Texteditor in dieser Zeit installieren als auch (Vim ist das Leben, vim ist die Liebe).

Der Codeblock beschreibt unter dem, was ich laufen würde, wenn ich auf einmal alle diese Pakete zu installieren wollte und nur zu Fuß entfernt aufgrund der langen Dauer der Pakete auf dem Pi installieren. Ich flehe Sie hoch bis zum Ende des Abschnitts lesen, um die Notwendigkeiten zu verstehen und Zweck der Umwelt auf diese Weise einrichten, so dass Sie Änderungen vornehmen können, wenn nötig. Die doppelte kaufmännisches Und-Zeichen (&&) bedeutet, dass der Befehl, nachdem er unmittelbar bevor er nach dem Befehl ausführen. Das Hinzufügen der 'y' Flag auf beide Befehle bedeutet, dass Sie nicht sitzen müssen, um zu genehmigen yum die Pakete zu installieren.

[Root @ Panik ~] $ yum install "Development Tools" --exclude = skippedPackageName -y && yum vim python-devel python-rpi.gpio gcc-Python-gcc-c + alsa-Firmware alsa-lib alsa-lib-devel alsa installieren -Werkzeuge alsa-tools-Firmware alsa-utils -y

die GPIO-Bibliothek Installation ist nur ein einfacher Befehl yum installieren. Dies installiert auch die Python-Entwicklungstools Bibliothek.

[Root @ Panik ~] $ yum python-devel python-rpi.gpio installieren

Die notwendigen Pakete, die erforderlich sind, Code aus dem Quellcode zu kompilieren, kann weit und vielseitig und oft sein Zeiten innerhalb der jeweiligen Dokumentation spärlich erwähnt werden. Manchmal ist die Dokumentation für eine andere Linux-Distribution geschrieben, die Dinge noch frustrierend machen! Als shotgun Lösung Abhängigkeiten fehlen, installiere ich die Gruppenpaket "Development Tools" genannt.

[Root @ Panik ~] $ yum group "Development Tools"

Ich erinnere mich, dass, wenn die Paketabhängigkeiten wurden für Entwicklungs-Tools zu lösen, gibt es ein Fehler war, dass etwas über den Kernel-Paket angegeben geworfen nicht gefunden werden. Sie können diesen Fehler überschreiben und überspringen, die Installation des Pakets vollständig, weil es nicht notwendig, in den Build-Prozess war.

[Root @ Panik ~] $ yum group "Development Tools" --exclude = skippedPackageName

Sie wollen auch die Python-gcc-Compiler und C + Compiler gcc zu installieren. Aus irgendeinem Grund wurden sie in die Entwicklungstools Gruppe nicht enthalten.

[Root @ Panik ~] gcc-Python-gcc-c $ yum install +

Für Sound-Unterstützung auf dem Raspberry Pi, muss die ALSA (Advanced Linux Sound Architecture) Framework installiert werden. I enthalten ALSA plus seine Bibliotheken nur für den Fall der Wiedergabe der Aufnahme während des Anrufs ALSA erforderlich.

[Root @ Panik ~] $ yum install alsa-Firmware alsa-lib alsa-lib-devel alsa-tools alsa-tools-Firmware alsa-utils

Kompilieren PJSIP Von Quelle

Wechseln Sie in Ihrem Stammverzeichnis (durch ~). Wenn Sie sich als Root-Benutzer angemeldet sind, wird das ~ Verzeichnis / root sein. Wenn Sie sich als ein anderer Benutzer angemeldet sind, wird das ~ Verzeichnis / home / Benutzername. Erstellen Sie ein Verzeichnis bezeichnet, den Quellcode in kompilieren. Auch dies nur gängige Praxis ist, die Dinge ordentlich auf dem Dateisystem zu halten.

[Root @ Panik ~] $ cd ~

Kaspersky Endpoint Security 2014     Endpoint-Security-10

Categories and tags