Innholdsfortegnelse:

Nintendo Wifi Router: 17 trinn (med bilder)
Nintendo Wifi Router: 17 trinn (med bilder)

Video: Nintendo Wifi Router: 17 trinn (med bilder)

Video: Nintendo Wifi Router: 17 trinn (med bilder)
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, November
Anonim
Nintendo Wifi -ruter
Nintendo Wifi -ruter

Bruk en gammel Nintendo Entertainment -systemkasse til å produsere en svært funksjonell hjemmeruter med en RaspberryPI 3!

Trinn 1: Installer nødvendig RaspberryPi -programvare

Blinkende RaspberriPi -harddisk / installer nødvendig programvare (bruker Ubuntu Linux)

Last ned "RASPBIAN JESSIE LITE"

Lag din nye harddisk for DashboardPI

Sett inn microSD -en på datamaskinen din via USB -adapteren, og lag diskbildet med kommandoen dd

Finn det innsatte microSD -kortet via kommandoen df -h, demonter det og lag diskbildet med kommandoen disk copy dd

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

$ umount /dev /sdb1

Forsiktig: sørg for at kommandoen er helt nøyaktig, du kan skade andre disker med denne kommandoen

if = plassering av RASPBIAN JESSIE LITE bildefil av = plassering av microSD -kortet

$ sudo dd bs = 4M hvis =/path/to/raspbian-jessie-lite.img av =/dev/sdb (merk: i dette tilfellet er det/dev/sdb,/dev/sdb1 en eksisterende fabrikkpartisjon på microSD) Sette opp RaspberriPi

Sett inn det nye microSD -kortet i raspberrypi og slå det på med en skjerm koblet til HDMI -porten

Logg Inn

bruker: pi pass: bringebær Endre passordet ditt for sikkerhet

sudo passwd pi Aktiver RaspberriPi avanserte alternativer

sudo raspi-config Velg: 1 Utvid filsystemet

9 Avanserte alternativer

A2 Hostname endre det til "NESRouter"

A4 SSH Aktiver SSH -server

A7 I2C Aktiver i2c -grensesnitt Aktiver engelsk/amerikansk tastatur

sudo nano/etc/default/keyboard Endre følgende linje: XKBLAYOUT = "oss" Sett opp den enkle katalogen l -kommandoen [valgfritt]

vi ~/.bashrc

legg til følgende linje:

alias l = 'ls -lh'

kilde ~/.bashrc Fix VIM standardsyntaks utheving [valgfritt]

sudo vi/etc/vim/vimrc

ikke kommenter følgende linje:

syntaks på Reboot PI for å få de siste endringene

reboot Oppdater lokale tidssoneinnstillinger

sudo dpkg-omkonfigurer tzdata velg din tidssone ved hjelp av grensesnittet

Trinn 2: Opprette WiFi -tilgangspunktet

Vær oppmerksom på at før dette blir en ruter, kobler vi RaspberryPi til et eksisterende nettverk via sin ethernet -port for å installere følgende pakker

sudo apt-get update && sudo apt-get -y oppgradering

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

Legg til følgende linje:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Rediger wlan0 -delen slik at den ser slik ut:

auto lo iface lo inet loopback

iface eth0 inet manual

auto wlan0 iface wlan0 inet statisk adresse 10.0.10.1 netmask 255.255.255.0 nettverk 10.0.10.0 kringkasting 10.0.10.255

auto eth1 iface eth1 inet statisk adresse 10.0.20.1 netmask 255.255.255.0 nettverk 10.0.20.0 kringkasting 10.0.20.255 Last DHCP -server på nytt og avvis konfigurasjonen for eth0- og wlan0 -tilkoblinger

sudo service dhcpcd start på nytt

sudo ifdown eth0; sudo ifup wlan0

Konfigurer HOSTAPD (Endre ssid og wpa_passphrase til verdiene du selv velger)

sudo vi /etc/hostapd/hostapd.conf

# Dette er navnet på WiFi -grensesnittet vi konfigurerte ovenfor grensesnittet = wlan0

# Bruk nl80211 -driveren med brcmfmac -driverdriveren = nl80211

# Dette er navnet på nettverket ssid = NintendoWiFi

# Bruk 2,4 GHz -båndet hw_mode = g

# Bruk kanal 6 kanal = 6

# Aktiver 802.11n ieee80211n = 1

# Aktiver WMM wmm_enabled = 1

# Aktiver 40MHz-kanaler med 20ns vaktintervall ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Godta alle MAC -adresser macaddr_acl = 0

# Bruk WPA -godkjenning auth_algs = 1

# Krev at klientene kjenner nettverksnavnet ignore_broadcast_ssid = 0

# Bruk WPA2 wpa = 2

# Bruk en forhåndsdelt nøkkel wpa_key_mgmt = WPA-PSK

# Nettverkspassordet wpa_passphrase = passord

# Bruk AES, i stedet for TKIP rsn_pairwise = CCMP Vi kan sjekke om det fungerer på dette stadiet ved å kjøre (men har ikke full internettforbindelse ennå):

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

sudo vi/etc/default/hostapd

Finn linjen

#DAEMON_CONF = "" og erstatt den med

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

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Bind til grensesnittet for å sikre at vi ikke sender ting andre steder server = 8.8.8.8 # Videresend DNS-forespørsler til Google DNS-domenebehovet # Ikke videresend korte navn falske-priv # Aldri videresend adresser i -ruterte adresserom.

# Tilordne IP-adresser m/uendelig leietid (for enhetsbruksstatistikk) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, uendelig dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, uendelig OPPSETT IPV4 FREMGÅ

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

Aktiver den umiddelbart med sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

sudo iptables -E FREMTID -i eth0 -o eth1 -m tilstand -stat RELATERT, ESTABLISHED -j ACCEPT

sudo iptables -A FREMTIL -i eth1 -o eth0 -j Aksepter

sudo iptables -E FREMTID -i eth0 -o wlan0 -m tilstand -stat RELATERT, ESTABLISHED -j ACCEPT

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

Lagre iptables -innstillinger for neste omstart

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

Lag ipv4 reglerfil (med nytt innhold)

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

iptables-restore </etc/iptables.ipv4.nat Restart Services

sudo service hostapd start sudo service dnsmasq start

sudo omstart

Tilordne statiske IP -er [valgfritt]

Hvis du vil at verter på nettverket ditt skal ha statisk ips, kan du bruke følgende

Skaff vertene som for øyeblikket er tilkoblet via DHCP vi /var/lib/misc/dnsmasq.leases

Legg til MAC -adressen (fra utdata ovenfor) og IP -adressen du vil tildele dem til sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Merk: Dette vil tilordne nettverksgrensesnittet til MAC-adressen: 12: 34: 56: 78: 9a: bc til IP-adressen 10.0.20.20. IP -adressen som er oppført trenger IKKE å være i det angitte DHCP -området, bare på det samme delnettet. Hovedskrivebordet mitt ovenfor er på subnett eth1: 10.0.20.0, så jeg ga den IP -adressen 10.0.20.20.

Legger til UFW -brannmur

sudo apt-get install ufw

Tillat port 22 for offentlig bruk (for ekstern nettverkstilgang)

sudo ufw tillate 22

Tillat alle porter på mitt lokale nettverk

sudo ufw tillate fra 10.0.10.0/24 sudo ufw tillate fra 10.0.20.0/24

Tillat nettporter for alle

sudo ufw tillate 80

Tillat sikre nettporter for alle

sudo ufw tillate 443

Aktiver UFW og sjekk statusen

sudo ufw -tvinge til

sudo ufw status

Fix BUG med UFW som ikke starter ved oppstart

sudo su crontab -e

Legg til følgende linje: @reboot /bin /sleep 60; ufw -tvinge til

Trinn 3: Nødvendig rekvisita: Old Broken Nintendo

Nødvendig rekvisita: Old Broken Nintendo
Nødvendig rekvisita: Old Broken Nintendo

Gammelt Nintendo -etui fra en ødelagt NES (fjern alt det gamle innholdet inne i etuiet, slik at bare den ytre rammen, strøm- / tilbakestillingsknappene og kontrollertilkoblingene etterlates)

Trinn 4: Nødvendig rekvisita: Raspberry Pi 3 Model B

Nødvendige rekvisita: Raspberry Pi 3 Model B
Nødvendige rekvisita: Raspberry Pi 3 Model B

Trinn 5: Nødvendig rekvisita: 1,44 "serie: UART/I2C/SPI TFT LCD 128x128 skjermmodul

Nødvendig rekvisita: 1.44
Nødvendig rekvisita: 1.44
Nødvendig rekvisita: 1.44
Nødvendig rekvisita: 1.44

Trinn 6: Nødvendig rekvisita: 5V 0.1A Mini Fan Raspberry Pi

Nødvendig rekvisita: 5V 0.1A Mini Fan Raspberry Pi
Nødvendig rekvisita: 5V 0.1A Mini Fan Raspberry Pi

Trinn 7: Nødvendig rekvisita: Ugreen USB 2.0 til 10/100 Fast Ethernet Lan kablet nettverkskort

Nødvendige rekvisita: Ugreen USB 2.0 til 10/100 Fast Ethernet Lan kablet nettverkskort
Nødvendige rekvisita: Ugreen USB 2.0 til 10/100 Fast Ethernet Lan kablet nettverkskort

Trinn 8: Konstruksjon

Konstruksjon
Konstruksjon

Installer inne i NES

Bruk en 3D-skriver til å skrive ut Digole Display-rammen "NESPanel" i/construction/display-frame/folder. [hvis du ikke har en 3D -skriver, kan du forsiktig kutte et firkantet hull for Digole -skjermen med et Dremel -verktøy] Klipp de følgende hullene opp på baksiden og siden av saken for å gjøre det mulig å feste den lille viften på siden og strøm-/ethernet- og USB -ethernet -kablene for å komme inn gjennom baksiden.

Trinn 9: Konstruksjonskont

Konstruksjon Forts
Konstruksjon Forts

Skru av det øverste høyre sorte panelet fra NES og skjær et stort nok firkantet hull for å montere din digole -skjerm. Hot Lim skjermen på plass med "NESPanel" 3D -trykt ramme over toppen av den.

Trinn 10: Konstruksjonskont

Konstruksjon Forts
Konstruksjon Forts

Monter RaspberryPi midt på bunnen av det tomme NES -etuiet, fest med lim eller en liten skrue gjennom bunnen. Koble "power on LED" på NES til 5V- og GND -pinnene i Raspberry Pi ved hjelp av en 270 ohm resistor (kort LED -ledning er bakken). Koble den lille viften til 5V- og GND -pinnene også for å få den til å kjøre når enheten starter, lim viften mot hullet i siden for den.

Trinn 11: Koble til Digole -skjermen

Koble følgende pinner til pinnene på RaspberryPi

VCC er koblet til 3v GND er jordet DATA er SDA CLOCK er SCL Nå bør du se enheten i i2cdetect -kommandoen

i2cdetect -y 1 det skal vises i rutenettet for tekst som 27

Trinn 12: Installer verktøy for nettverksovervåking og 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

Legg til følgende linje i slutten av filen: local all pi password sudo -i -u postgres

psql

opprett rolle -pi -passord 'passord her';

endre rolle pi pålogging;

endre rolle pi superbruker;

du

(du bør se din PI -bruker med tillatelsene gitt) opprett database network_stats;

q

exit

psql -d network_stats

Kjør følgende spørsmål:

OPPRETT TABELL trafikk_per_minutt (ID seriell, tidsstempel uten tidssone IKKE NULL, eth0_down ekte, eth0_up ekte, eth1_down ekte, eth1_up ekte, wan0_down ekte, wan0_up ekte);

OPPRETT UNIK INDEKS time_idx PÅ traffic_per_minute (tid); Kopier koden "logging" med kode fra dette prosjektet til hjemmekatalogen til RPi -en

crontab -e

Legg til denne linjen

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

Trinn 13: Installer trafikkoppsummeringsrapporten (kjøres hvert 5. minutt av Cronjob)

crontab -e

legg til følgende linje

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

Trinn 14: Installer Dashboard -skjermen

Kopier "vis" -mappen med kode fra dette prosjektet til hjemmekatalogen til RPi -en

Kjør den som følger

$ python /home/pi/display/NESRouter.py Konfigurer displayskriptet for å kjøre ved oppstart

crontab -e

Legg til denne linjen

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

Kontroller at skjermen begynner å fungere på omstart

sudo omstart

Trinn 15: Installer lokal bruk/statistikknettsted [https://10.0.10.1]

Installer det lokale bruks-/statistikknettstedet [https://10.0.10.1]

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

sudo apt-get install apache2

sudo service apache2 starter på nytt

Fjern standardsider

cd /var /www

sudo rm -rf html

Kopier "webportal" -mappen fra dette prosjektet til hjemmemappen på RPi -en og opprett symlink for apache å bruke

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

Aktiver Python CGI Scripting

Legg til inne i taggen

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

Du kan nå besøke det lokale HTTP -nettstedet [https://10.0.10.1]

Konfigurer avansert nettverksovervåking (via IPFM)

sudo apt-get oppdatering

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Lag med følgende innhold:

# Globale variabler

# IPFM kan bare overvåke én enhet. ENHET eth0

# GLOBAL LOGGING KONFIGURASJONSLOGG

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

# logg hvert minutt DUMP HVERT 1 minutt

# klar statistikk hver dag SLETT HVER 24 timers SORTERING I LØSNING sudo service ipfm start

VALGFRITT: Lag dine egne Nintendo -bilder som skal gjengis på skjermen

Last opp din egen 128x128 -fil til følgende URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Velg bildefilen du vil laste opp, legg til hvilken størrelse du vil at den skal ha på skjermen (bredde/høyde)

Velg "256 farger for farge OLED/LCD (1 byte/piksel)" i rullegardinmenyen "Brukes til"

Få hex -utgangen.

Legg til hex -utgangen til en display/ build/ header (.h) -fil, bruk de andre som veiledninger for syntaks.

Inkluder den nye filen i digole.c -filen #include myimage.h

Inkluder en ny kommandolinjekrok til bildefilen i. Merk: Kommandoen nedenfor sier at tegnet bildet ditt i posisjon 10 piksler over 10 piksler ned. Du kan endre den til forskjellige X-, Y -koordinater, du kan også endre verdiene 128, 128 til hvilken størrelse det nye bildet ditt faktisk er.

} annet hvis (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, og myimageVariableHere, 0); // myimageVariableHere er definert i (.h) filen}

Nå må du bygge om (ignorere feilene) nedenfor for å få det nye bildet ditt gjengitt med følgende kommando.

$./digole myimage Re-Building [Inkludert] Digole Display Driver for valgfrie endringer

$ cd -visning/bygge $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole

Anbefalt: