Spisu treści:

Router Nintendo Wifi: 17 kroków (ze zdjęciami)
Router Nintendo Wifi: 17 kroków (ze zdjęciami)

Wideo: Router Nintendo Wifi: 17 kroków (ze zdjęciami)

Wideo: Router Nintendo Wifi: 17 kroków (ze zdjęciami)
Wideo: Zarządzany SWITCH za 100 PLN 2024, Listopad
Anonim
Router Wi-Fi Nintendo
Router Wi-Fi Nintendo

Korzystając z obudowy systemu Old Nintendo Entertainment, zbuduj wysoce funkcjonalny router domowy za pomocą RaspberryPI 3!

Krok 1: Zainstaluj wymagane oprogramowanie RaspberryPi

Flashowanie dysku twardego RaspberriPi / instalacja wymaganego oprogramowania (przy użyciu systemu Ubuntu Linux)

Pobierz "RASPBIAN JESSIE LITE"

Utwórz nowy dysk twardy dla DashboardPI

Włóż kartę microSD do komputera za pomocą adaptera USB i utwórz obraz dysku za pomocą polecenia dd

Zlokalizuj włożoną kartę microSD za pomocą polecenia df -h, odmontuj ją i utwórz obraz dysku za pomocą polecenia disk copy dd

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

$ umount /dev/sdb1

Uwaga: upewnij się, że polecenie jest całkowicie dokładne, za pomocą tego polecenia możesz uszkodzić inne dyski

if=lokalizacja pliku obrazu RASPBIAN JESSIE LITE of=lokalizacja karty microSD

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (uwaga: w tym przypadku jest to /dev/sdb, /dev/sdb1 to istniejąca partycja fabryczna na microSD) Konfigurowanie RaspberriPi

Włóż nową kartę microSD do raspberrypi i włącz ją za pomocą monitora podłączonego do portu HDMI

Zaloguj sie

użytkownik: pi pass: raspberry Zmień hasło do konta dla bezpieczeństwa

sudo passwd pi Włącz opcje zaawansowane RaspberriPi

sudo raspi-config Wybierz: 1 Rozwiń system plików

9 opcji zaawansowanych

Nazwa hosta A2 zmień ją na „NESRouter”

A4 SSH Włącz serwer SSH

A7 I2C Włącz interfejs i2c Włącz klawiaturę angielską/amerykańską

sudo nano /etc/default/keyboard Zmień następujący wiersz: XKBLAYOUT="us" Ustaw proste polecenie l katalogu [opcjonalne]

vi ~/.bashrc

dodaj następujący wiersz:

alias l='ls -lh'

source ~/.bashrc Napraw domyślne podświetlanie składni VIM [opcjonalne]

sudo vi /etc/vim/vimrc

odkomentuj następujący wiersz:

składnia na Reboot your PI, aby uzyskać najnowsze zmiany

rebootZaktualizuj lokalne ustawienia strefy czasowej

sudo dpkg-reconfigure tzdata wybierz swoją strefę czasową za pomocą interfejsu

Krok 2: Tworzenie punktu dostępu WiFi

Pamiętaj, że zanim stanie się to routerem, podłączamy RaspberryPi do istniejącej sieci przez port Ethernet, aby zainstalować następujące pakiety

sudo apt-get aktualizacja && sudo apt-get -y aktualizacja

sudo apt-get zainstaluj 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

Dodaj następujący wiersz:

denyinterfaces wlan0 sudo vi /etc/network/interfaces

Edytuj sekcję wlan0 tak, aby wyglądała tak:

auto lo iface lo inet sprzężenie zwrotne

Instrukcja obsługi iface eth0 inet

auto wlan0 iface wlan0 inet adres statyczny 10.0.10.1 maska sieci 255.255.255.0 sieć 10.0.10.0 rozgłaszanie 10.0.10.255

auto eth1 iface eth1 inet adres statyczny 10.0.20.1 maska sieci 255.255.255.0 sieć 10.0.20.0 rozgłaszanie 10.0.20.255 Przeładuj serwer DHCP i odbij konfigurację dla połączeń eth0 i wlan0

usługa sudo restart dhcpcd

sudo ifdown eth0; sudo ifup wlan0

Skonfiguruj HOSTAPD (Zmień ssid i wpa_passphrase na wybrane przez siebie wartości)

sudo vi /etc/hostapd/hostapd.conf

# To jest nazwa interfejsu WiFi, który skonfigurowaliśmy powyżej interface=wlan0

# Użyj sterownika nl80211 ze sterownikiem brcmfmac=nl80211

# To jest nazwa sieci ssid=NintendoWiFi

# Użyj pasma 2,4 GHz hw_mode=g

# Użyj kanału 6 kanał = 6

# Włącz 802.11n ieee80211n=1

# Włącz WMM wmm_enabled=1

# Włącz kanały 40MHz z interwałem ochronnym 20ns ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Zaakceptuj wszystkie adresy MAC macaddr_acl=0

# Użyj uwierzytelniania WPA auth_algs=1

# Wymagaj od klientów znajomości nazwy sieci ignore_broadcast_ssid=0

# Użyj WPA2 wpa=2

# Użyj klucza wstępnego wpa_key_mgmt=WPA-PSK

# Hasło sieciowe wpa_passphrase=hasło

# Użyj AES, zamiast TKIP rsn_pairwise=CCMP Możemy sprawdzić, czy działa na tym etapie, uruchamiając (ale nie ma jeszcze pełnej łączności z Internetem):

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

sudo vi /etc/default/hostapd

Znajdź linię

#DAEMON_CONF="" i zastąp go

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

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Powiąż z interfejsem, aby upewnić się, że nie wysyłamy rzeczy gdzie indziej server=8.8.8.8 # Prześlij żądania DNS do domeny DNS Google-needed # Nie przesyłaj krótkich nazw bogus-priv # Nigdy nie przesyłaj adresów w -routowane przestrzenie adresowe.

# Przypisz adresy IP z nieskończonym czasem dzierżawy (dla statystyk użytkowania urządzenia) dhcp-range=wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, nieskończony dhcp-range=eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, nieskończona KONFIGURACJA PRZEKAZYWANIA IPV4

sudo vi /etc/sysctl.conf

[odkomentuj] net.ipv4.ip_forward=1

Aktywuj go natychmiast za pomocą 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 ZWIĄZANE, USTANOWIONE -j AKCEPTUJ

sudo iptables -A DO PRZODU -i eth1 -o eth0 -j AKCEPTUJ

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state ZWIĄZANE, USTANOWIONE -j AKCEPTUJ

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

Zapisz ustawienia iptables do następnego ponownego uruchomienia

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

Utwórz plik reguł ipv4 (z nową zawartością)

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

iptables-restore < /etc/iptables.ipv4.nat Ponowne uruchamianie usług

usługa sudo hostapd start usługa sudo dnsmasq start

ponowne uruchomienie sudo

Przypisywanie statycznych adresów IP [Opcjonalnie]

Jeśli chcesz, aby hosty w Twojej sieci miały statyczne adresy IP, użyj następującego

Uzyskaj hosty aktualnie połączone przez DHCP vi /var/lib/misc/dnsmasq.leases

Dodaj adres MAC (z wyjścia powyżej) i adres IP, który chcesz przypisać do sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host=12:34:56:78:9a:bc, 10.0.20.20 Uwaga: spowoduje to przypisanie interfejsu sieciowego z adresem MAC: 12:34:56:78:9a:bc na adres IP 10.0.20.20. Wymieniony adres IP NIE musi należeć do podanego zakresu DHCP, tylko w tej samej podsieci. Mój główny pulpit znajduje się w podsieci eth1:10.0.20.0, więc nadałem mu adres IP 10.0.20.20.

Dodawanie zapory UFW

sudo apt-get zainstaluj ufw

Zezwalaj na port 22 do użytku publicznego (dla zdalnego dostępu do sieci)

sudo ufw zezwalaj 22

Zezwól na wszystkie porty w mojej sieci lokalnej

sudo ufw zezwalaj od 10.0.10.0/24 sudo ufw zezwalaj od 10.0.20.0/24

Zezwalaj na porty sieciowe wszystkim

sudo ufw zezwól na 80

Zezwalaj wszystkim na bezpieczne porty internetowe

sudo ufw zezwól 443

Włącz UFW i sprawdź status

sudo ufw -- wymuś włączenie

status sudo ufw

Napraw BŁĄD, gdy UFW nie uruchamia się podczas uruchamiania

sudo su crontab -e

Dodaj następujący wiersz: @reboot /bin/sleep 60; ufw -- wymuś włączenie

Krok 3: Potrzebne materiały: stare zepsute Nintendo

Potrzebne materiały: stare zepsute Nintendo
Potrzebne materiały: stare zepsute Nintendo

Stara obudowa Nintendo z zepsutego NESa (usuń całą starą zawartość wewnątrz obudowy, pozostawiając tylko zewnętrzną ramkę, przyciski zasilania / resetowania i połączenia kontrolera)

Krok 4: Potrzebne materiały: Raspberry Pi 3 Model B

Potrzebne materiały: Raspberry Pi 3 Model B
Potrzebne materiały: Raspberry Pi 3 Model B

Krok 5: Potrzebne materiały eksploatacyjne: 1.44 "Serial: UART/I2C/SPI TFT LCD 128x128 moduł wyświetlacza

Potrzebne materiały eksploatacyjne: 1,44
Potrzebne materiały eksploatacyjne: 1,44
Potrzebne materiały eksploatacyjne: 1,44
Potrzebne materiały eksploatacyjne: 1,44

Krok 6: Potrzebne materiały: Mini wentylator 5V 0.1A Raspberry Pi

Potrzebne materiały eksploatacyjne: Mini wentylator 5V 0.1A Raspberry Pi
Potrzebne materiały eksploatacyjne: Mini wentylator 5V 0.1A Raspberry Pi

Krok 7: Potrzebne materiały: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan Przewodowa karta sieciowa

Potrzebne materiały: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan Przewodowa karta sieciowa
Potrzebne materiały: Ugreen USB 2.0 do 10/100 Fast Ethernet Lan Przewodowa karta sieciowa

Krok 8: Budowa

Budowa
Budowa

Zainstaluj wewnątrz NES

Za pomocą drukarki 3D wydrukuj ramkę Digole Display „NESPanel” w folderze /construction/display-frame/. [jeśli nie masz drukarki 3D, możesz delikatnie wyciąć kwadratowy otwór na wyświetlacz Digole za pomocą narzędzia Dremel] Wytnij następujące otwory z tyłu i z boku obudowy, aby umożliwić zamocowanie małego wentylatora na z boku oraz kable zasilania/Ethernet i USB Ethernet, aby dostać się z tyłu.

Krok 9: Budowa cd

Budowa cd
Budowa cd

Odkręć prawy górny czarny panel od NES i dokładnie wytnij wystarczająco duży kwadratowy otwór, aby zamontować wyświetlacz digole. Przyklej wyświetlacz na gorąco z ramką wydrukowaną w 3D „NESPanel” na górze.

Krok 10: Budowa cd

Budowa cd
Budowa cd

Zamontuj RaspberryPi na środku dolnej części pustej obudowy NES, przymocuj klejem lub małą śrubką przez spód. Za pomocą rezystora 270 omów podłącz "diodę włączenia" NES do pinów 5V i GND w Raspberry Pi (krótki przewód LED to masa). Podłącz mały wentylator do pinów 5V i GND, aby działał podczas uruchamiania urządzenia, przyklej go do otworu z boku.

Krok 11: Podłączanie wyświetlacza Digole

Podłącz następujące piny do pinów na RaspberryPi

VCC jest podłączony do 3v GND to uziemienie DATA to SDA CLOCK to SCL Teraz powinieneś zobaczyć urządzenie w poleceniu i2cdetect

i2cdetect -y 1 powinien pojawić się w siatce tekstu jako 27

Krok 12: Zainstaluj narzędzia do monitorowania sieci i rejestrowanie bazy danych

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

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

Dodaj następujący wiersz na końcu pliku: local all pi hasło sudo -i -u postgres

psql

utwórz hasło roli pi 'hasło tutaj';

zmień rolę pi logowanie;

zmienić rolę superużytkownika pi;

du

(powinieneś zobaczyć swojego użytkownika PI z przyznanymi uprawnieniami) utwórz bazę danych network_stats;

Q

Wyjście

psql -d statystyki_sieci

Uruchom następujące zapytania:

CREATE TABLE traffic_per_minute (id serial, znacznik czasu bez strefy czasowej NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

UTWÓRZ UNIKALNY INDEKS time_idx ON traffic_per_minute (czas); Skopiuj folder "logowania" kodu z tego projektu do katalogu domowego swojego RPi

crontab -e

Dodaj tę linię

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

Krok 13: Zainstaluj raport podsumowania ruchu (uruchamiany co 5 minut przez Cronjob)

crontab -e

dodaj następującą linię

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

Krok 14: Zainstaluj ekran deski rozdzielczej

Skopiuj folder "display" kodu z tego projektu do katalogu domowego twojego RPi

Uruchom go w następujący sposób

$ python /home/pi/display/NESRouter.py Skonfiguruj skrypt wyświetlania do uruchamiania podczas uruchamiania

crontab -e

Dodaj tę linię

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

Sprawdź, czy wyświetlacz zaczyna działać po ponownym uruchomieniu

ponowne uruchomienie sudo

Krok 15: Zainstaluj witrynę lokalnego użytkowania/statystyk [https://10.0.10.1]

Zainstaluj lokalną witrynę dotyczącą użytkowania/statystyk [https://10.0.10.1]

aktualizacja sudo apt-get && aktualizacja sudo apt-get -y

sudo apt-get zainstaluj apache2

usługa sudo restart apache2

Usuń domyślne strony

cd /var/www

sudo rm -rf html

Skopiuj folder 'webportal' z tego projektu do swojego folderu domowego na swoim RPi i utwórz dowiązanie symboliczne do użycia przez Apache

cd /var/www

sudo ln -s /home/pi/html portalu internetowego

cd /var/www/html

chmod +x *.py

sudo a2enmod cgi

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

Włącz skrypty CGI Pythona

Dodaj wewnątrz tagu

Opcje +ExecCGI AddHandler cgi-script.py sudo usługa apache2 restart

Możesz teraz odwiedzić lokalną witrynę HTTP [https://10.0.10.1]

Konfiguracja zaawansowanego monitorowania sieci (przez IPFM)

aktualizacja sudo apt-get

sudo apt-get zainstaluj ipfm

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

sudo vi /etc/ipfm.conf

Utwórz z następującą zawartością:

# Zmienne globalne

# IPFM może monitorować tylko jedno urządzenie. URZĄDZENIE eth0

# GLOBALNY LOG KONFIGURACJI REJESTRACJI

NAZWA PLIKU "/var/log/ipfm/%Y_%d_%m/%H_%M"

# loguj co minutę ZRZUTUJ CO 1 minutę

# jasne statystyki każdego dnia WYCZYŚĆ CO 24 godziny SORTUJ W ROZWIĄZANIU usługa sudo ipfm start

OPCJONALNIE: tworzenie własnych obrazów Nintendo do renderowania na wyświetlaczu

Prześlij własny plik 128x128 na następujący adres URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Wybierz plik obrazu do przesłania, dodaj rozmiar, jaki ma być na ekranie (szerokość/wysokość)

Wybierz „256 kolorów dla kolorów OLED/LCD (1 bajt/piksel)” w menu rozwijanym „Używane dla”

Uzyskaj wyjście szesnastkowe.

Dodaj wyjście szesnastkowe do pliku display/build/header (.h), użyj pozostałych jako przewodników po składni.

Dołącz nowy plik do pliku digole.c #include myimage.h

Dołącz nowy zaczep wiersza poleceń do pliku obrazu w pliku. Uwaga: poniższe polecenie mówi, że narysuj obraz w pozycji 10 pikseli na 10 pikseli w dół. Możesz zmienić go na różne współrzędne X, Y, możesz także zmienić wartości 128, 128 na dowolny rozmiar twojego nowego obrazu.

} else if (strcmp(digoleCommand, "myimage") == 0) { drawBitmap256(10, 10, 128, 128, &myimageVariableHere, 0); // myimageVariableHere jest zdefiniowane w twoim pliku (.h) }

Teraz przebuduj (zignoruj błędy) poniżej, aby wyrenderować nowy obraz za pomocą następującego polecenia.

$./digole myimage Re-Building [W zestawie] Digole Display Driver dla opcjonalnych zmian

$ wyświetlacz/kompilacja cd $ gcc digole.c $ mv a.out../../digole $ chmod +x../../digole

Zalecana: