Πίνακας περιεχομένων:

Nintendo Wifi Router: 17 βήματα (με εικόνες)
Nintendo Wifi Router: 17 βήματα (με εικόνες)

Βίντεο: Nintendo Wifi Router: 17 βήματα (με εικόνες)

Βίντεο: Nintendo Wifi Router: 17 βήματα (με εικόνες)
Βίντεο: Κοψτο κι λιγο 2024, Νοέμβριος
Anonim
Nintendo Wifi Router
Nintendo Wifi Router

Χρησιμοποιώντας μια θήκη συστήματος Old Nintendo Entertainment, δημιουργήστε έναν εξαιρετικά λειτουργικό δρομολογητή στο σπίτι χρησιμοποιώντας ένα RaspberryPI 3!

Βήμα 1: Εγκαταστήστε το απαιτούμενο λογισμικό RaspberryPi

Αναβοσβήνει σκληρός δίσκος RaspberriPi / Εγκαταστήστε το απαιτούμενο λογισμικό (χρησιμοποιώντας Ubuntu Linux)

Κατεβάστε το "RASPBIAN JESSIE LITE"

Δημιουργήστε τον νέο σας σκληρό δίσκο για το DashboardPI

Τοποθετήστε το microSD στον υπολογιστή σας μέσω προσαρμογέα USB και δημιουργήστε την εικόνα του δίσκου χρησιμοποιώντας την εντολή dd

Εντοπίστε την κάρτα microSD που έχετε τοποθετήσει μέσω της εντολής df -h, αποσυνδέστε την και δημιουργήστε την εικόνα του δίσκου με την εντολή αντιγραφής δίσκου dd

$ df -h/dev/sdb1 7,4G 32K 7,4G 1%/μέσο/XXX/1234-5678

$ umount /dev /sdb1

Προσοχή: βεβαιωθείτε ότι η εντολή είναι απολύτως ακριβής, με αυτήν την εντολή μπορείτε να καταστρέψετε άλλους δίσκους

if = τοποθεσία του αρχείου εικόνας RASPBIAN JESSIE LITE της = τοποθεσία της κάρτας microSD

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of =/dev/sdb (σημείωση: σε αυτή την περίπτωση, είναι/dev/sdb,/dev/sdb1 ήταν ένα υπάρχον εργοστασιακό διαμέρισμα στο microSD) Ρύθμιση του RaspberriPi

Τοποθετήστε τη νέα σας κάρτα microSD στο raspberrypi και ενεργοποιήστε την με μια οθόνη συνδεδεμένη στη θύρα HDMI

Σύνδεση

χρήστη: pi pass: raspberry Αλλάξτε τον κωδικό πρόσβασης του λογαριασμού σας για ασφάλεια

sudo passwd pi Ενεργοποίηση προχωρημένων επιλογών RaspberriPi

sudo raspi-config Επιλέξτε: 1 Επέκταση συστήματος αρχείων

9 Προηγμένες επιλογές

Όνομα κεντρικού υπολογιστή A2 αλλάξτε το σε "NESRouter"

A4 SSH Ενεργοποίηση διακομιστή SSH

A7 I2C Ενεργοποίηση διεπαφής i2c Ενεργοποιήστε το πληκτρολόγιο Αγγλίας/ΗΠΑ

sudo nano/etc/default/πληκτρολόγιο Αλλάξτε την ακόλουθη γραμμή: XKBLAYOUT = "us" Ρυθμίστε τον απλό κατάλογο l εντολή [προαιρετικό]

vi ~/.bashrc

προσθέστε την ακόλουθη γραμμή:

ψευδώνυμο l = 'ls -lh'

πηγή ~/.bashrc Διόρθωση προεπιλεγμένης επισήμανσης σύνταξης VIM [προαιρετικό]

sudo vi/etc/vim/vimrc

σχολιάστε την ακόλουθη γραμμή:

σύνταξη στο Επανεκκινήστε το PI σας για να λάβετε τις πιο πρόσφατες αλλαγές

επανεκκίνηση Ενημέρωση τοπικών ρυθμίσεων ζώνης ώρας

sudo dpkg-αναδιαμόρφωση tzdata επιλέξτε τη ζώνη ώρας σας χρησιμοποιώντας τη διεπαφή

Βήμα 2: Δημιουργία σημείου πρόσβασης WiFi

Λάβετε υπόψη, πριν γίνει δρομολογητής, συνδέουμε το RaspberryPi σε υπάρχον δίκτυο μέσω της θύρας ethernet για να εγκαταστήσουμε τα ακόλουθα πακέτα

sudo apt-get ενημέρωση && sudo apt-get -y αναβάθμιση

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

Προσθέστε την ακόλουθη γραμμή:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Επεξεργαστείτε την ενότητα wlan0 έτσι ώστε να μοιάζει με αυτό:

auto lo iface lo inet loopback

Εγχειρίδιο iface eth0 inet

auto wlan0 iface wlan0 inet στατική διεύθυνση 10.0.10.1 μάσκα δικτύου 255.255.255.0 δίκτυο 10.0.10.0 μετάδοση 10.0.10.255

auto eth1 iface eth1 inet στατική διεύθυνση 10.0.20.1 μάσκα δικτύου 255.255.255.0 δίκτυο 10.0.20.0 μετάδοση 10.0.20.255 Επαναφόρτωση διακομιστή DHCP και αναπήδηση της διαμόρφωσης για συνδέσεις eth0 και wlan0

επανεκκίνηση της υπηρεσίας sudo dhcpcd

sudo ifdown eth0; sudo ifup wlan0

Διαμόρφωση HOSTAPD (Αλλαγή ssid και wpa_passphrase στις τιμές της δικής σας επιλογής)

sudo vi /etc/hostapd/hostapd.conf

# Αυτό είναι το όνομα της διασύνδεσης WiFi που ρυθμίσαμε παραπάνω interface = wlan0

# Χρησιμοποιήστε το πρόγραμμα οδήγησης nl80211 με το πρόγραμμα οδήγησης brcmfmac = nl80211

# Αυτό είναι το όνομα του δικτύου ssid = NintendoWiFi

# Χρησιμοποιήστε τη ζώνη 2,4GHz hw_mode = g

# Χρησιμοποιήστε κανάλι 6 κανάλι = 6

# Ενεργοποίηση 802.11n ieee80211n = 1

# Ενεργοποίηση WMM wmm_enabled = 1

# Ενεργοποίηση καναλιών 40MHz με διάστημα προστασίας 20ns ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Αποδοχή όλων των διευθύνσεων MAC macaddr_acl = 0

# Χρήση ελέγχου ταυτότητας WPA auth_algs = 1

# Απαιτήστε από τους πελάτες να γνωρίζουν το όνομα του δικτύου ignore_broadcast_ssid = 0

# Χρήση WPA2 wpa = 2

# Χρησιμοποιήστε ένα κοινόχρηστο κλειδί wpa_key_mgmt = WPA-PSK

# Η φράση πρόσβασης δικτύου wpa_passphrase = κωδικός πρόσβασης

# Χρησιμοποιήστε το AES, αντί για το TKIP rsn_pairwise = CCMP Μπορούμε να ελέγξουμε αν λειτουργεί σε αυτό το στάδιο εκτελώντας (αλλά δεν έχει ακόμη πλήρη σύνδεση στο Διαδίκτυο):

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

sudo vi/etc/default/hostapd

Βρείτε τη γραμμή

#DAEMON_CONF = "" και αντικαταστήστε το με

DAEMON_CONF = "/etc/hostapd/hostapd.conf" Διαμόρφωση DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Συνδεθείτε στη διεπαφή για να βεβαιωθείτε ότι δεν στέλνουμε πράγματα αλλού server = 8.8.8.8 # Προώθηση αιτημάτων DNS στο Google DNS domain-need # Μην προωθείτε σύντομα ονόματα πλαστά-ιδιωτικά # Ποτέ μην προωθείτε διευθύνσεις στο μη -δρομολογημένα κενά διευθύνσεων.

# Εκχώρηση διευθύνσεων IP χωρίς άπειρο χρόνο μίσθωσης (για στατιστικά χρήσης συσκευής) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, άπειρο dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, άπειρο SET UP IPV4 FORWARDING

sudo vi /etc/sysctl.conf

[χωρίς σχόλιο] net.ipv4.ip_forward = 1

Ενεργοποιήστε το αμέσως με το 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 κατάσταση -κράτος ΣΧΕΤΙΖΕΤΑΙ, ΕΓΚΑΤΑΣΤΑΣΗ -j ΑΠΟΔΟΧΗ

sudo iptables -A FORWARD -i eth1 -o eth0 -j ΑΠΟΔΟΧΗ

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state -state ΣΧΕΤΙΖΕΤΑΙ, ΕΓΚΑΤΑΣΤΑΣΗ -j ΑΠΟΔΟΧΗ

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ΑΠΟΔΟΧΗ

Αποθηκεύστε τις ρυθμίσεις iptables για την επόμενη επανεκκίνηση

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

Δημιουργία αρχείου κανόνων ipv4 (με νέο περιεχόμενο)

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

iptables-restore </etc/iptables.ipv4.nat Υπηρεσίες επανεκκίνησης

sudo service hostapd start sudo service dnsmasq start

sudo επανεκκίνηση

Εκχώρηση στατικών IP [Προαιρετικό]

Εάν θέλετε οι οικοδεσπότες στο δίκτυό σας να έχουν στατικά ips, χρησιμοποιήστε τα παρακάτω

Αποκτήστε τους κεντρικούς υπολογιστές που είναι συνδεδεμένοι μέσω DHCP vi /var/lib/misc/dnsmasq.leases

Προσθέστε τη διεύθυνση MAC (από την έξοδο παραπάνω) και τη διεύθυνση IP που θέλετε να τους εκχωρήσετε στο sudo vi /etc/dnsmasq.conf

# κύρια επιφάνεια εργασίας dhcp-host = 12: 34: 56: 78: 9a: π. Χ., 10.0.20.20 Σημείωση: Αυτό θα εκχωρήσει τη διεπαφή δικτύου με τη διεύθυνση MAC: 12: 34: 56: 78: 9a: bc στη διεύθυνση IP 10.0.20.20. Η διεύθυνση IP που αναγράφεται ΔΕΝ πρέπει να είναι στο δεδομένο εύρος DHCP, ακριβώς στο ίδιο υποδίκτυο. Η κύρια επιφάνεια εργασίας μου παραπάνω είναι στο υποδίκτυο eth1: 10.0.20.0, οπότε του έδωσα διεύθυνση IP 10.0.20.20.

Προσθήκη τείχους προστασίας UFW

sudo apt-get install ufw

Επιτρέψτε τη θύρα 22 για δημόσια χρήση (για απομακρυσμένη πρόσβαση στο δίκτυο)

sudo ufw επιτρέπουν 22

Να επιτρέπονται όλες οι θύρες στο τοπικό μου δίκτυο

sudo ufw επιτρέπουν από 10.0.10.0/24 sudo ufw επιτρέπουν από 10.0.20.0/24

Να επιτρέπονται οι θύρες ιστού σε όλους

sudo ufw επιτρέπουν 80

Επιτρέψτε σε όλους ασφαλείς θύρες ιστού

sudo ufw επιτρέπουν 443

Ενεργοποιήστε το UFW και ελέγξτε την κατάσταση

sudo ufw -ενεργοποίηση δύναμης

sudo ufw κατάσταση

Διορθώστε το BUG με το UFW που δεν ξεκινά κατά την εκκίνηση

sudo su crontab -e

Προσθέστε την ακόλουθη γραμμή: @reboot /bin /sleep 60; ufw -ενεργοποίηση δύναμης

Βήμα 3: Απαιτούνται αναλώσιμα: Old Broken Nintendo

Προμήθειες που χρειάζονται: Old Broken Nintendo
Προμήθειες που χρειάζονται: Old Broken Nintendo

Παλιά θήκη Nintendo από ένα σπασμένο NES (αφαιρέστε όλα τα παλιά περιεχόμενα μέσα στη θήκη, αφήνοντας μόνο το εξωτερικό πλαίσιο, τα κουμπιά τροφοδοσίας / επαναφοράς και τις συνδέσεις του ελεγκτή)

Βήμα 4: Απαιτούνται αναλώσιμα: Raspberry Pi 3 Model B

Απαιτούμενα αναλώσιμα: Raspberry Pi 3 Model B
Απαιτούμενα αναλώσιμα: Raspberry Pi 3 Model B

Βήμα 5: Απαιτούνται αναλώσιμα: 1.44 "Serial: UART/I2C/SPI TFT LCD 128x128 Display Module

Απαιτούμενα αναλώσιμα: 1.44
Απαιτούμενα αναλώσιμα: 1.44
Απαιτούμενα αναλώσιμα: 1.44
Απαιτούμενα αναλώσιμα: 1.44

Βήμα 6: Απαιτούνται αναλώσιμα: 5V 0.1A Mini Fan Raspberry Pi

Απαιτούμενα αναλώσιμα: 5V 0.1A Mini Fan Raspberry Pi
Απαιτούμενα αναλώσιμα: 5V 0.1A Mini Fan Raspberry Pi

Βήμα 7: Απαιτούνται αναλώσιμα: Προσαρμογέας ενσύρματου δικτύου Ugreen USB 2.0 έως 10/100 Fast Ethernet Lan

Απαιτούμενα αναλώσιμα: Προσαρμογέας ενσύρματου δικτύου Ugreen USB 2.0 έως 10/100 Fast Ethernet Lan
Απαιτούμενα αναλώσιμα: Προσαρμογέας ενσύρματου δικτύου Ugreen USB 2.0 έως 10/100 Fast Ethernet Lan

Βήμα 8: Κατασκευή

Κατασκευή
Κατασκευή

Εγκαταστήστε μέσα στο NES

Χρησιμοποιώντας έναν τρισδιάστατο εκτυπωτή, εκτυπώστε το πλαίσιο εμφάνισης Digole "NESPanel" στο φάκελο/construction/display-frame/. [εάν δεν έχετε τρισδιάστατο εκτυπωτή, θα μπορούσατε να κόψετε με λεπτό τρόπο μια τετράγωνη τρύπα για την οθόνη Digole με ένα εργαλείο Dremel] Κόψτε τις παρακάτω τρύπες ανοιχτές στο πίσω και στο πλάι της θήκης για να επιτρέψετε τη στερέωση του μικρού ανεμιστήρα στο πλευρά και τα καλώδια τροφοδοσίας/ethernet και USB ethernet για είσοδο στο πίσω μέρος.

Βήμα 9: Συνέχεια κατασκευής

Κατασκευή Συν
Κατασκευή Συν

Ξεβιδώστε το επάνω δεξί μαύρο πλαίσιο από το NES και κόψτε καθαρά μια αρκετά μεγάλη τετράγωνη τρύπα για να τοποθετήσετε την οθόνη διγώνων σας. Κόψτε την οθόνη στη θέση της με το τρισδιάστατο εκτυπωμένο πλαίσιο "NESPanel" στο πάνω μέρος της.

Βήμα 10: Συνέχεια κατασκευής

Κατασκευή Συν
Κατασκευή Συν

Τοποθετήστε το RaspberryPi στη μέση του κάτω μέρους της άδειας θήκης NES, στερεώστε με κόλλα ή μια μικρή βίδα στο κάτω μέρος. Χρησιμοποιώντας μια αντίσταση 270 ohm, συνδέστε το "power on LED" του NES στις ακίδες 5V και GND στο Raspberry Pi (το κοντό καλώδιο LED είναι το έδαφος). Συνδέστε επίσης τον μικρό ανεμιστήρα στις ακίδες 5V και GND για να λειτουργήσει όταν ξεκινήσει η μονάδα, κολλήστε τον ανεμιστήρα στην τρύπα στο πλάι για αυτό.

Βήμα 11: Σύνδεση της οθόνης Digole

Συνδέστε τις ακόλουθες ακίδες στις καρφίτσες στο RaspberryPi

Το VCC είναι συνδεδεμένο με 3v GND is ground DATA is SDA CLOCK is SCL Τώρα θα πρέπει να δείτε τη συσκευή στην εντολή i2cdetect

i2cdetect -y 1 θα πρέπει να εμφανίζεται στο πλέγμα κειμένου ως 27

Βήμα 12: Εγκαταστήστε Εργαλεία Παρακολούθησης Δικτύου & Καταγραφή DB

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

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

Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου: local all pi password sudo -i -u postgres

psql

Δημιουργία κωδικού πρόσβασης ρόλου «κωδικός πρόσβασης εδώ».

αλλαγή ρόλου pi σύνδεσης.

alter role pi superuser?

du

(θα πρέπει να δείτε τον χρήστη PI σας με τα δικαιώματα που έχουν παραχωρηθεί) να δημιουργήσετε βάση δεδομένων network_stats.

q

έξοδος

psql -d network_stats

Εκτελέστε τα ακόλουθα ερωτήματα:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ traffic_per_minute (σειριακό id, χρονική σήμανση ώρας χωρίς ζώνη ώρας NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΑΔΙΚΟΥ INDEX time_idx ON traffic_per_minute (time)? Αντιγράψτε τον φάκελο "καταγραφή" κώδικα από αυτό το έργο στον αρχικό κατάλογο του RPi σας

crontab -e

Προσθέστε αυτήν τη γραμμή

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

Βήμα 13: Εγκαταστήστε την Αναφορά περίληψης επισκεψιμότητας (εκτελείται κάθε 5 λεπτά από το Cronjob)

crontab -e

προσθέστε την ακόλουθη γραμμή

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

Βήμα 14: Εγκαταστήστε την οθόνη του πίνακα ελέγχου

Αντιγράψτε τον φάκελο "εμφάνιση" κώδικα από αυτό το έργο στον αρχικό κατάλογο του RPi σας

Εκτελέστε το ως εξής

$ python /home/pi/display/NESRouter.py Ρυθμίστε το σενάριο οθόνης για εκτέλεση κατά την εκκίνηση

crontab -e

Προσθέστε αυτήν τη γραμμή

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

Βεβαιωθείτε ότι η οθόνη αρχίζει να λειτουργεί κατά την επανεκκίνηση

sudo επανεκκίνηση

Βήμα 15: Εγκαταστήστε τον ιστότοπο Τοπικής χρήσης/στατιστικών [https://10.0.10.1]

Εγκαταστήστε τον ιστότοπο τοπικής χρήσης/στατιστικών [https://10.0.10.1]

sudo apt-get ενημέρωση && sudo apt-get αναβάθμιση -y

sudo apt-get install apache2

επανεκκίνηση της υπηρεσίας sudo apache2

Κατάργηση προεπιλεγμένων σελίδων

cd /var /www

sudo rm -rf html

Αντιγράψτε το φάκελο "webportal" από αυτό το έργο στον αρχικό σας φάκελο στο RPi σας και δημιουργήστε το σύνδεσμο για χρήση από το 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 Scripting

Προσθέστε μέσα στην ετικέτα

Επιλογές +ExecCGI AddHandler cgi-script.py sudo service apache2 επανεκκίνηση

Τώρα μπορείτε να επισκεφθείτε τον τοπικό ιστότοπο HTTP [https://10.0.10.1]

Ρύθμιση προηγμένης παρακολούθησης δικτύου (μέσω IPFM)

sudo apt-get ενημέρωση

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Δημιουργήστε με τα ακόλουθα περιεχόμενα:

# Παγκόσμιες μεταβλητές

# IPFM μπορεί να παρακολουθεί μόνο μία συσκευή. ΣΥΣΚΕΥΗ eth0

# GLOBAL LOGGING CONFIGURATION LOG

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

# log κάθε λεπτό DUMP ΚΑΘΕ 1 λεπτό

# καθαρά στατιστικά στοιχεία κάθε μέρα ΚΑΘΑΡΙΣΤΕ ΚΑΘΕ 24ωρο SORT IN RESOLVE sudo service ipfm start

ΠΡΟΑΙΡΕΤΙΚΟ: Δημιουργήστε τις δικές σας εικόνες Nintendo για απόδοση στην οθόνη

Ανεβάστε το δικό σας αρχείο 128x128 στην ακόλουθη διεύθυνση URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Επιλέξτε το αρχείο εικόνας για μεταφόρτωση, προσθέστε το μέγεθος που θέλετε να είναι στην οθόνη (Πλάτος/ightψος)

Επιλέξτε "256 Color for Color OLED/LCD (1 byte/pixel)" στο αναπτυσσόμενο μενού "Χρησιμοποιείται για"

Λάβετε την εξάγωνη έξοδο.

Προσθέστε την εξάγωνη έξοδο σε ένα αρχείο οθόνης/ κατασκευής/ κεφαλίδας (.h), χρησιμοποιήστε τα άλλα ως οδηγούς σύνταξης.

Συμπεριλάβετε το νέο αρχείο στο αρχείο digole.c #include myimage.h

Συμπεριλάβετε ένα νέο άγκιστρο γραμμής εντολών στο αρχείο εικόνας σας στο. Σημείωση: η παρακάτω εντολή λέει σχεδιάστε την εικόνα σας στη θέση 10 εικονοστοιχεία πάνω από 10 εικονοστοιχεία προς τα κάτω. Μπορείτε να το αλλάξετε σε διαφορετικές συντεταγμένες Χ, Υ, μπορείτε επίσης να αλλάξετε τις τιμές 128, 128 σε όποιο μέγεθος είναι πραγματικά η νέα σας εικόνα.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere ορίζεται στο αρχείο σας (.h)}

Τώρα ανακατασκευάστε (αγνοήστε τα σφάλματα) παρακάτω για να εμφανιστεί η νέα σας εικόνα με την ακόλουθη εντολή.

$./digole myimage Re-Building [Included] Digole Display Driver για τις προαιρετικές σας αλλαγές

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

Συνιστάται: