جدول المحتويات:

راوتر Nintendo Wifi: 17 خطوة (بالصور)
راوتر Nintendo Wifi: 17 خطوة (بالصور)

فيديو: راوتر Nintendo Wifi: 17 خطوة (بالصور)

فيديو: راوتر Nintendo Wifi: 17 خطوة (بالصور)
فيديو: Huawei WIFI AX3 ريفيو عن مميزات الجهاز + ضبط اعدادات الراوتر وتشغيله 2024, شهر نوفمبر
Anonim
راوتر نينتندو واي فاي
راوتر نينتندو واي فاي

باستخدام علبة نظام Old Nintendo Entertainment ، قم بإنتاج جهاز توجيه منزلي وظيفي للغاية باستخدام RaspberryPI 3!

الخطوة 1: تثبيت برنامج RaspberryPi المطلوب

تفليش القرص الصلب RaspberriPi / تثبيت البرامج المطلوبة (باستخدام Ubuntu Linux)

تنزيل "RASPBIAN JESSIE LITE"

قم بإنشاء القرص الثابت الجديد الخاص بك لـ DashboardPI

أدخل microSD في جهاز الكمبيوتر الخاص بك عبر محول USB وقم بإنشاء صورة القرص باستخدام الأمر dd

حدد موقع بطاقة microSD التي تم إدخالها عبر الأمر df -h ، وقم بإلغاء تحميلها وإنشاء صورة القرص باستخدام الأمر disk copy dd

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

umount / dev / sdb1

تحذير: تأكد من أن الأمر دقيق تمامًا ، يمكنك إتلاف الأقراص الأخرى باستخدام هذا الأمر

if = موقع ملف صورة RASPBIAN JESSIE LITE = موقع بطاقة microSD الخاصة بك

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img من = / 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 / keyboard غيّر السطر التالي: XKBLAYOUT = "us" قم بإعداد أمر الدليل البسيط l [اختياري]

vi ~ /.bashrc

أضف السطر التالي:

الاسم المستعار l = 'ls -lh'

المصدر ~ /.bashrc Fix VIM الافتراضي تمييز بناء الجملة [اختياري]

sudo vi / etc / vim / vimrc

uncomment السطر التالي:

بناء الجملة على إعادة تشغيل PI للحصول على أحدث التغييرات

قم بتحديث إعدادات المنطقة الزمنية المحلية

sudo dpkg-recfigure tzdata حدد منطقتك الزمنية باستخدام الواجهة

الخطوة 2: إنشاء نقطة وصول WiFi

يرجى ملاحظة ، قبل أن يصبح هذا جهاز توجيه ، نقوم بتوصيل RaspberryPi بشبكة موجودة عبر منفذ ethernet الخاص به لتثبيت الحزم التالية

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-basic python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

أضف السطر التالي:

denyinterfaces wlan0 sudo vi / etc / network / interfaces

قم بتحرير قسم wlan0 بحيث يبدو كالتالي:

حلقة تلقائية لو iface loopback

دليل iface eth0 إنت

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 service dhcpcd

sudo ifdown eth0 ؛ sudo ifup wlan0

تكوين HOSTAPD (تغيير ssid و wpa_passphrase إلى القيم التي تختارها)

sudo vi /etc/hostapd/hostapd.conf

# هذا هو اسم واجهة WiFi التي قمنا بتكوينها أعلاه الواجهة = wlan0

# استخدم برنامج التشغيل nl80211 مع برنامج التشغيل brcmfmac = nl80211

# هذا هو اسم الشبكة ssid = NintendoWiFi

# استخدم النطاق 2.4 جيجا هرتز hw_mode = g

# استخدم القناة 6 قناة = 6

# تمكين 802.11n ieee80211n = 1

# تمكين WMM wmm_enabled = 1

# تمكين قنوات 40 ميجا هرتز بفاصل حماية 20 ثانية 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 # الربط بالواجهة للتأكد من أننا لا نرسل أشياء إلى مكان آخر الخادم = 8.8.8.8 # إعادة توجيه طلبات DNS إلى Google DNS domain-required # لا تقم بإعادة توجيه الأسماء القصيرة bogus-priv # لا تقم بإعادة توجيه العناوين في غير -مساحات العنوان المروتة.

# تعيين عناوين IP مع وقت تأجير غير محدود (لإحصائيات استخدام الجهاز) dhcp-range = wlan0 ، 10.0.10.100 ، 10.0.10.200 ، 255.255.255.0 ، 10.0.10.255 ، نطاق dhcp اللانهائي = eth1 ، 10.0.20.100 ، 10.0. 20.200 ، 255.255.255.0 ، 10.0.20.255 ، إعداد لانهائي IPV4 إعادة توجيه

sudo vi /etc/sysctl.conf

[uncomment] 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 state - ذات الصلة بالدولة ، تم تأسيسها -j قبول

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

sudo iptables -A FORWARD -i eth0 -o wlan0 -m 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-response </etc/iptables.ipv4.nat أعد تشغيل الخدمات

بدء خدمة sudo hostapd بدء sudo خدمة dnsmasq

sudo إعادة التشغيل

تعيين عناوين IP الثابتة [اختياري]

إذا كنت ترغب في أن يكون لدى المضيفين على شبكتك ips ثابتة ، فيرجى استخدام ما يلي

احصل على المضيفين المتصلين حاليًا عبر DHCP vi /var/lib/misc/dnsmasq.leases

أضف عنوان MAC (من الإخراج أعلاه) وعنوان IP الذي ترغب في تعيينه لهما إلى sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc، 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 allow 80

السماح لمنافذ الويب الآمنة للجميع

sudo ufw allow 443

قم بتمكين UFW وتحقق من الحالة

sudo ufw - تمكين القوة

حالة sudo ufw

إصلاح BUG مع UFW لا يبدأ عند بدء التشغيل

sudo su crontab -e

أضف السطر التالي:reboot / bin / sleep 60 ؛ ufw - تمكين القوة

الخطوة 3: الإمدادات المطلوبة: 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

المستلزمات المطلوبة: مروحة صغيرة 5 فولت 0.1 أمبير Raspberry Pi
المستلزمات المطلوبة: مروحة صغيرة 5 فولت 0.1 أمبير 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 Display "NESPanel" في / Construction / display-frame / المجلد. [إذا لم يكن لديك طابعة ثلاثية الأبعاد ، فيمكنك قطع فتحة مربعة بدقة لشاشة Digole باستخدام أداة Dremel] اقطع الفتحات التالية في الجزء الخلفي والجانب من العلبة للسماح بتثبيت المروحة الصغيرة على الجانب وكابلات الطاقة / إيثرنت وإيثرنت USB للدخول من خلال الظهر.

الخطوة 9: مقاولات البناء

مقاولات البناء
مقاولات البناء

قم بفك اللوحة السوداء العلوية اليمنى من NES وقم بقص ثقب مربع كبير بما يكفي لتركيب شاشة digole. صمغ الشاشة في مكانها باستخدام إطار الطباعة ثلاثية الأبعاد "NESPanel" فوقها.

الخطوة العاشرة: مقاولات البناء

مقاولات البناء
مقاولات البناء

قم بتركيب RaspberryPi في منتصف الجزء السفلي من علبة NES الفارغة ، اربطها بالغراء أو برغي صغير من خلال الجزء السفلي. باستخدام مقاومة 270 أوم ، قم بتوصيل "power on LED" الخاص بـ NES بمسامير 5V و GND في Raspberry Pi (مؤشر LED القصير هو الأرض). قم بتوصيل المروحة الصغيرة بمسامير 5V و GND أيضًا لتشغيلها عند بدء تشغيل الوحدة ، قم بلصق المروحة على الفتحة الموجودة في الجانب من أجلها.

الخطوة 11: توصيل شاشة Digole

قم بتوصيل المسامير التالية بالدبابيس الموجودة على RaspberryPi

VCC متصل بـ 3v GND هو الأرضي DATA هو SDA CLOCK هو SCL الآن يجب أن ترى الجهاز في الأمر i2cdetect الخاص بك

i2cdetect -y 1 يجب أن يظهر في شبكة النص كـ 27

الخطوة 12: قم بتثبيت أدوات مراقبة الشبكة وتسجيل قاعدة البيانات

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

بسكل

إنشاء كلمة مرور للدور "كلمة المرور هنا" ؛

تغيير دور pi تسجيل الدخول ؛

تغيير دور المستخدم الخارق ؛

du

(يجب أن ترى مستخدم PI الخاص بك مع الأذونات الممنوحة) إنشاء قاعدة بيانات network_stats ؛

ف

خروج

psql -d network_stats

قم بتشغيل الاستعلامات التالية:

CREATE TABLE traffic_per_minute (رقم التعريف التسلسلي ، الطابع الزمني بدون المنطقة الزمنية NOT NULL ، eth0_down real ، eth0_up real ، eth1_down real ، eth1_up real ، wan0_down real ، wan0_up real) ؛

إنشاء UNIQUE INDEX time_idx ON traffic_per_minute (time) ؛ انسخ مجلد التعليمات البرمجية "logging" من هذا المشروع إلى الدليل الرئيسي لـ RPi الخاص بك

كرونتاب -e

أضف هذا الخط

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

الخطوة 13: تثبيت تقرير ملخص حركة المرور (يتم تشغيله كل 5 دقائق بواسطة Cronjob)

كرونتاب -e

أضف السطر التالي

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

الخطوة 14: قم بتثبيت شاشة لوحة المعلومات

انسخ مجلد الكود "عرض" من هذا المشروع إلى الدليل الرئيسي لـ RPi الخاص بك

قم بتشغيله على النحو التالي

$ python /home/pi/display/NESRouter.py إعداد البرنامج النصي للعرض ليتم تشغيله عند بدء التشغيل

كرونتاب -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 update && sudo apt-get Upgrade -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

أضف داخل العلامة

خيارات + إعادة تشغيل ExecCGI AddHandler cgi-script.py sudo service apache2

يمكنك الآن زيارة موقع HTTP المحلي [https://10.0.10.1]

إعداد مراقبة الشبكة المتقدمة (عبر IPFM)

sudo apt-get update

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

أنشئ بالمحتويات التالية:

# المتغيرات العالمية

# IPFM يمكنها مراقبة جهاز واحد فقط. جهاز eth0

# سجل تكوين التسجيل العالمي

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

# سجل كل دقيقة تفريغ كل 1 دقيقة

# إحصائيات واضحة كل يوم امسح كل 24 ساعة قم بترتيب حل sudo service ipfm start

اختياري: إنشاء صور Nintendo الخاصة بك لعرضها على الشاشة

قم بتحميل ملف 128 × 128 الخاص بك إلى عنوان URL التالي:

www.digole.com/tools/PicturetoC_Hex_convert…

اختر ملف الصورة لتحميله ، أضف الحجم الذي تريده أن يكون على الشاشة (العرض / الارتفاع)

حدد "256 لونًا للون OLED / LCD (1 بايت / بكسل)" في القائمة المنسدلة "مستعملة لـ"

الحصول على الناتج السداسي.

أضف الإخراج السداسي إلى ملف عرض / بناء / رأس (.h) ، واستخدم الملفات الأخرى كدليل لبناء الجملة.

قم بتضمين الملف الجديد في ملف digole.c #include myimage.h

قم بتضمين رابط سطر أوامر جديد لملف صورتك في ملف. ملاحظة: الأمر أدناه يقول ارسم صورتك في موضع 10 بكسل فوق 10 بكسل لأسفل. يمكنك تغييره إلى إحداثيات X و Y مختلفة ، كما يمكنك تغيير القيم 128 ، 128 إلى أي حجم تكون صورتك الجديدة في الواقع.

} else if (strcmp (digoleCommand، "myimage") == 0) {drawBitmap256 (10، 10، 128، 128، & myimageVariableHere، 0)؛ // myimageVariableHere محدد في ملفك (.h)}

الآن أعد البناء (تجاهل الأخطاء) أدناه لعرض صورتك الجديدة باستخدام الأمر التالي.

$./digole myimage Re-Building [مضمن] Digole Display Driver لتغييراتك الاختيارية

عرض $ cd / بناء $ gcc digole.c $ mv a.out../../digole $ chmod + x../../digole

موصى به: