Inhaltsverzeichnis:

Nintendo Wifi Router - Gunook
Nintendo Wifi Router - Gunook

Video: Nintendo Wifi Router - Gunook

Video: Nintendo Wifi Router - Gunook
Video: Nintendo Made a WiFi Router 2024, November
Anonim
Nintendo Wifi-Router
Nintendo Wifi-Router

Erstellen Sie mit einem alten Nintendo Entertainment-Systemgehäuse einen hochfunktionalen Heimrouter mit einem RaspberryPI 3!

Schritt 1: Erforderliche RaspberryPi-Software installieren

Flashen der RaspberriPi-Festplatte / Installieren Sie die erforderliche Software (unter Verwendung von Ubuntu Linux)

Download "RASPBIAN JESSIE LITE"

Erstellen Sie Ihre neue Festplatte für DashboardPI

Legen Sie die microSD über einen USB-Adapter in Ihren Computer ein und erstellen Sie das Disk-Image mit dem Befehl dd

Suchen Sie Ihre eingelegte microSD-Karte über den Befehl df -h, unmounten Sie sie und erstellen Sie das Disk-Image mit dem Befehl disk copy dd

$ df -h /dev/sdb1 7,4G 32K 7,4G 1 % /media/XXX/1234-5678

$ umount /dev/sdb1

Achtung: Stellen Sie sicher, dass der Befehl absolut korrekt ist, Sie können mit diesem Befehl andere Festplatten beschädigen

if=Speicherort der RASPBIAN JESSIE LITE-Bilddatei of=Speicherort Ihrer microSD-Karte

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (Hinweis: in diesem Fall ist es /dev/sdb, /dev/sdb1 war eine vorhandene Werkspartition auf der microSD) Einrichten Ihres RaspberriPi

Legen Sie Ihre neue microSD-Karte in das Raspberrypi ein und schalten Sie es mit einem Monitor ein, der an den HDMI-Anschluss angeschlossen ist

Anmeldung

user: pi pass: raspberry Ändern Sie Ihr Kontopasswort aus Sicherheitsgründen

sudo passwd pi Aktivieren Sie die erweiterten RaspberriPi-Optionen

sudo raspi-config Wählen Sie: 1 Dateisystem erweitern

9 Erweiterte Optionen

A2 Hostname ändern Sie ihn in "NESRouter"

A4 SSH SSH-Server aktivieren

A7 I2C i2c-Schnittstelle aktivieren Aktivieren der englischen/US-Tastatur

sudo nano /etc/default/keyboard Ändern Sie die folgende Zeile: XKBLAYOUT="us" Richten Sie den einfachen Verzeichnisbefehl l ein [optional]

vi ~/.bashrc

füge die folgende Zeile hinzu:

Alias l='ls -lh'

source ~/.bashrc Hervorhebung der VIM-Standardsyntax behoben [optional]

sudo vi /etc/vim/vimrc

Entkommentieren Sie die folgende Zeile:

Syntax auf Reboot your PI, um die neuesten Änderungen zu erhalten

rebootLokale Zeitzoneneinstellungen aktualisieren

sudo dpkg-reconfigure tzdata Wählen Sie Ihre Zeitzone über die Schnittstelle aus

Schritt 2: WLAN-Zugangspunkt erstellen

Bitte beachten Sie, bevor dies zu einem Router wird, schließen wir den RaspberryPi über seinen Ethernet-Port an ein vorhandenes Netzwerk an, um die folgenden Pakete zu installieren

sudo apt-get update && sudo apt-get -y upgrade

sudo apt-get install dnsmasq hostapd vim

sudo apt-get install vim git python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

Fügen Sie die folgende Zeile hinzu:

denyinterfaces wlan0 sudo vi /etc/network/interfaces

Bearbeiten Sie den Abschnitt wlan0 so, dass er wie folgt aussieht:

auto lo iface lo inet loopback

iface eth0 inet-handbuch

auto wlan0 iface wlan0 inet statische Adresse 10.0.10.1 Netzmaske 255.255.255.0 Netzwerk 10.0.10.0 Broadcast 10.0.10.255

auto eth1 iface eth1 inet statische Adresse 10.0.20.1 netmask 255.255.255.0 network 10.0.20.0 Broadcast 10.0.20.255 DHCP-Server neu laden und Konfiguration für eth0- und wlan0-Verbindungen zurücksetzen

sudo service dhcpcd neu starten

sudo ifdown eth0; sudo ifup wlan0

Konfigurieren Sie HOSTAPD (Ändern Sie ssid und wpa_passphrase auf die Werte Ihrer Wahl)

sudo vi /etc/hostapd/hostapd.conf

# Dies ist der Name der WiFi-Schnittstelle, die wir oben konfiguriert haben interface=wlan0

# Verwenden Sie den nl80211-Treiber mit dem brcmfmac-Treiber driver=nl80211

# Dies ist der Name des Netzwerks ssid=NintendoWiFi

# Verwenden Sie das 2,4-GHz-Band hw_mode=g

# Verwenden Sie Kanal 6 Kanal = 6

# 802.11n aktivieren ieee80211n=1

# WMM aktivieren wmm_enabled=1

# 40-MHz-Kanäle mit 20-ns-Schutzintervall aktivieren ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Akzeptiere alle MAC-Adressen macaddr_acl=0

# WPA-Authentifizierung verwenden auth_algs=1

# Von Clients verlangen, dass sie den Netzwerknamen kennen ignore_broadcast_ssid=0

# WPA2 verwenden wpa=2

# Verwenden Sie einen vorinstallierten Schlüssel wpa_key_mgmt=WPA-PSK

# Die Netzwerk-Passphrase wpa_passphrase=password

# Verwenden Sie AES anstelle von TKIP rsn_pairwise=CCMP Wir können überprüfen, ob es zu diesem Zeitpunkt funktioniert, indem Sie es ausführen (aber noch keine vollständige Internetverbindung haben):

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

sudo vi /etc/default/hostapd

Finde die Linie

#DAEMON_CONF="" und ersetzen Sie es durch

DAEMON_CONF="/etc/hostapd/hostapd.conf" DNSMASQ konfigurieren

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo vi /etc/dnsmasq.conf

bind-interfaces # Binden Sie an die Schnittstelle, um sicherzustellen, dass wir keine Dinge anderswohin senden server=8.8.8.8 # DNS-Anfragen an Google weiterleiten DNS-Domain-needed # Keine Kurznamen weiterleiten bogus-priv # Niemals Adressen im Nicht- weiterleiten -geroutete Adressräume.

# IP-Adressen mit unbegrenzter Lease-Zeit zuweisen (für Gerätenutzungsstatistiken) dhcp-range=wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, unendlich dhcp-range=eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, unendlich IPV4-WEITERLEITUNG EINRICHTEN

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward=1

Sofort aktivieren mit sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED, ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Speichern Sie die iptables-Einstellungen für den nächsten Neustart

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

IPv4-Regeldatei erstellen (mit neuem Inhalt)

sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat

iptables-restore < /etc/iptables.ipv4.nat Dienste neu starten

sudo service hostapd start sudo service dnsmasq start

sudo neu starten

Zuweisen statischer IPs [Optional]

Wenn Sie möchten, dass Hosts in Ihrem Netzwerk statische IPs haben, verwenden Sie bitte Folgendes:

Erfassen Sie die derzeit über DHCP verbundenen Hosts vi /var/lib/misc/dnsmasq.leases

Fügen Sie die MAC-Adresse (aus der Ausgabe oben) und die IP-Adresse hinzu, die Sie sudo vi /etc/dnsmasq.conf zuweisen möchten

# main desktop dhcp-host=12:34:56:78:9a:bc, 10.0.20.20 Hinweis: Dadurch wird die Netzwerkschnittstelle mit der MAC-Adresse: 12:34:56:78:9a:bc der IP-Adresse 10.0 zugewiesen.20.20. Die aufgeführte IP-Adresse muss NICHT im angegebenen DHCP-Bereich liegen, sondern im selben Subnetz. Mein oben genannter Hauptdesktop befindet sich im Subnetz eth1:10.0.20.0, also habe ich ihm die IP-Adresse 10.0.20.20 gegeben.

UFW-Firewall hinzufügen

sudo apt-get install ufw

Port 22 für die öffentliche Nutzung zulassen (für Remote-Netzwerkzugriff)

sudo ufw erlauben 22

Alle Ports in meinem lokalen Netzwerk zulassen

sudo ufw erlauben ab 10.0.10.0/24 sudo ufw erlauben ab 10.0.20.0/24

Webports für alle zulassen

sudo ufw erlauben 80

Sichere Web-Ports für alle zulassen

sudo ufw erlauben 443

Aktivieren Sie UFW und überprüfen Sie den Status

sudo ufw --force enable

sudo ufw-Status

BUG beheben, bei dem UFW beim Start nicht startet

sudo su crontab -e

Fügen Sie die folgende Zeile hinzu: @reboot /bin/sleep 60; ufw --force enable

Schritt 3: Benötigtes Zubehör: Old Broken Nintendo

Benötigte Vorräte: Altes kaputtes Nintendo
Benötigte Vorräte: Altes kaputtes Nintendo

Altes Nintendo-Gehäuse von einem kaputten NES (entfernen Sie den gesamten alten Inhalt im Inneren des Gehäuses und lassen Sie nur den äußeren Rahmen, die Einschalt- / Reset-Tasten und die Controller-Anschlüsse zurück)

Schritt 4: Benötigtes Zubehör: Raspberry Pi 3 Modell B

Benötigtes Zubehör: Raspberry Pi 3 Modell B
Benötigtes Zubehör: Raspberry Pi 3 Modell B

Schritt 5: Benötigte Verbrauchsmaterialien: 1,44 "Seriell: UART / I2C / SPI TFT LCD 128x128 Anzeigemodul

Benötigte Vorräte: 1.44
Benötigte Vorräte: 1.44
Benötigte Vorräte: 1.44
Benötigte Vorräte: 1.44

Schritt 6: Benötigte Verbrauchsmaterialien: 5V 0.1A Mini Fan Raspberry Pi

Benötigtes Zubehör: 5V 0.1A Mini Fan Raspberry Pi
Benötigtes Zubehör: 5V 0.1A Mini Fan Raspberry Pi

Schritt 7: Benötigtes Zubehör: Ugreen USB 2.0 auf 10/100 Fast Ethernet LAN Wired Network Adapter

Benötigtes Zubehör: Ugreen USB 2.0 auf 10/100 Fast Ethernet LAN Wired Network Adapter
Benötigtes Zubehör: Ugreen USB 2.0 auf 10/100 Fast Ethernet LAN Wired Network Adapter

Schritt 8: Konstruktion

Konstruktion
Konstruktion

Installation im NES

Drucken Sie mit einem 3D-Drucker den Digole Display-Rahmen "NESPanel" im Ordner /construction/display-frame/. [Wenn Sie keinen 3D-Drucker haben, können Sie mit einem Dremel-Werkzeug ein quadratisches Loch für das Digole Display vorsichtig schneiden] Schneiden Sie die folgenden Löcher in der Rückseite und an der Seite des Gehäuses auf, damit der kleine Lüfter befestigt werden kann Seite und die Strom-/Ethernet- und USB-Ethernet-Kabel, um durch die Rückseite hineinzukommen.

Schritt 9: Konstruktionsfortsetzung

Baufortsetzung
Baufortsetzung

Schrauben Sie das obere rechte schwarze Panel vom NES ab und schneiden Sie sauber ein ausreichend großes quadratisches Loch, um Ihr Digol-Display zu montieren. Kleben Sie das Display mit dem 3D-gedruckten "NESPanel" -Rahmen darüber.

Schritt 10: Baufortsetzung

Baufortsetzung
Baufortsetzung

Montieren Sie den RaspberryPi in der Mitte des Bodens des leeren NES-Gehäuses, befestigen Sie ihn mit Klebstoff oder einer kleinen Schraube durch den Boden. Verbinden Sie mit einem 270-Ohm-Widerstand die "Power-On-LED" des NES mit den 5V- und GND-Pins im Raspberry Pi (kurzes LED-Kabel ist die Masse). Schließen Sie den kleinen Lüfter auch an die 5V- und GND-Pins an, damit er beim Start des Geräts läuft, kleben Sie den Lüfter gegen das Loch in der Seite dafür.

Schritt 11: Anschließen des Digile-Displays

Verbinden Sie die folgenden Pins mit den Pins auf dem RaspberryPi

VCC ist mit 3V verbunden GND ist Masse DATA ist SDA CLOCK ist SCL Jetzt sollten Sie das Gerät in Ihrem i2cdetect-Befehl sehen

i2cdetect -y 1 sollte im Textraster als 27. angezeigt werden

Schritt 12: Installieren Sie Network Monitoring Tools & DB Logging

sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2

sudo vi /etc/postgresql/9.4/main/pg_hba.conf

Fügen Sie am Ende der Datei die folgende Zeile hinzu: local all pi password sudo -i -u postgres

psql

Rollen-Pi-Passwort 'Passwort hier' erstellen;

Rolle pi-Login ändern;

Rolle pi-Superuser ändern;

du

(Sie sollten Ihren PI-Benutzer mit den erteilten Berechtigungen sehen) create database network_stats;

Q

Ausfahrt

psql -d network_stats

Führen Sie die folgenden Abfragen aus:

CREATE TABLE traffic_per_minute (id seriell, Zeitstempel ohne Zeitzone NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

CREATE UNIQUE INDEX time_idx ON traffic_per_minute (Zeit); Kopieren Sie den Code-Ordner "logging" aus diesem Projekt in das Home-Verzeichnis Ihres RPi

crontab -e

Diese Zeile hinzufügen

@reboot /bin/sleep 60; nohup python /home/pi/logging/networkUsage.py >/dev/null 2>&1

Schritt 13: Installieren Sie den Traffic Summary Report (wird alle 5 Minuten von Cronjob ausgeführt)

crontab -e

füge die folgende Zeile hinzu

*/5 * * * * python /home/pi/logging/trafficSummary.py

Schritt 14: Den Dashboard-Bildschirm installieren

Kopieren Sie den Code-Ordner "display" aus diesem Projekt in das Home-Verzeichnis Ihres RPi

Führen Sie es wie folgt aus

$ python /home/pi/display/NESRouter.py Richten Sie das Anzeigeskript so ein, dass es beim Start ausgeführt wird

crontab -e

Diese Zeile hinzufügen

@reboot nohup python /home/pi/display/NESRouter.py >/dev/null 2>&1

Überprüfen Sie, ob das Display beim Neustart funktioniert

sudo neu starten

Schritt 15: Installieren Sie die lokale Nutzungs-/Statistik-Website [https://10.0.10.1]

Installieren Sie die lokale Nutzungs-/Statistik-Website [https://10.0.10.1]

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install apache2

sudo service Apache2 Neustart

Standardseiten entfernen

cd /var/www

sudo rm -rf html

Kopieren Sie den Ordner 'webportal' aus diesem Projekt in Ihren Home-Ordner auf Ihrem RPi und erstellen Sie den Symlink für Apache

cd /var/www

sudo ln -s /home/pi/webportal html

cd /var/www/html

chmod +x *.py

sudo a2enmod cgi

sudo vi /etc/apache2/sites-enabled/000-default.conf

Python CGI-Skripting aktivieren

Fügen Sie innerhalb des Tags hinzu

Optionen +ExecCGI AddHandler cgi-script.py sudo service apache2 restart

Sie können jetzt die lokale HTTP-Site [https://10.0.10.1] besuchen.

Richten Sie eine erweiterte Netzwerküberwachung ein (über IPFM)

sudo apt-get update

sudo apt-get install ipfm

sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak

sudo vi /etc/ipfm.conf

Erstellen Sie mit folgenden Inhalten:

# Globale Variablen

# IPFM kann nur ein Gerät überwachen. GERÄT eth0

# GLOBALES LOGGING-KONFIGURATIONSLOG

DATEINAME "/var/log/ipfm/%Y_%d_%m/%H_%M"

# jede Minute protokollieren ALLE 1 Minute DUMP

# Statistiken jeden Tag löschen ALLE 24 Stunden LÖSCHEN SORTIEREN IN BEHEBEN sudo service ipfm start

OPTIONAL: Erstellen Sie Ihre eigenen Nintendo-Bilder zum Rendern auf dem Display

Laden Sie Ihre eigene 128x128-Datei unter die folgende URL hoch:

www.digole.com/tools/PicturetoC_Hex_convert…

Wählen Sie Ihre Bilddatei zum Hochladen aus, fügen Sie die gewünschte Größe auf dem Bildschirm hinzu (Breite/Höhe)

Wählen Sie "256 Farbe für Farb-OLED/LCD (1 Byte/Pixel)" in der Dropdown-Liste "Verwendet für" aus

Rufen Sie die Hex-Ausgabe ab.

Fügen Sie die Hex-Ausgabe zu einer Display/Build/Header-Datei (.h) hinzu, verwenden Sie die anderen als Richtlinien für die Syntax.

Fügen Sie die neue Datei in die Datei digole.c ein #include myimage.h

Fügen Sie einen neuen Befehlszeilen-Hook in Ihre Bilddatei ein. Hinweis: Der folgende Befehl besagt, dass Sie Ihr Bild an der Position 10 Pixel über 10 Pixel nach unten zeichnen. Sie können es in andere X-, Y-Koordinaten ändern, Sie können auch die Werte 128, 128 auf die Größe Ihres neuen Bildes ändern.

aufrechtzuerhalten. Sonst if (strcmp(digoleCommand, "myimage") == 0) { drawBitmap256(10, 10, 128, 128, &myimageVariableHere, 0); // myimageVariableHere ist in Ihrer (.h) Datei definiert }

Erstellen Sie nun die folgenden Fehler neu (ignorieren Sie die Fehler), damit Ihr neues Bild mit dem folgenden Befehl gerendert wird.

$./digole myimage Re-Building [Enthalten] Digile Display Driver für Ihre optionalen Änderungen

$ cd display/build $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole

Empfohlen: