مرحبا يا هبر!
بطريقة ما فكرت في توصيل التوت الخاص بي بالإنترنت عبر الهواء.
لم يسبق القول بهذا الحد ، تم شراء صفارة من شركة TP-Link المعروفة في أقرب متجر USB للواي فاي. يجب أن أقول على الفور أن هذا ليس نوعًا من وحدة usb nano ، ولكنه عبارة عن جهاز ثلاثي الأبعاد حول حجم محرك أقراص فلاش عادي (جيدًا ، أو إذا كنت ترغب في ذلك باستخدام إصبع السبابة لرجل بالغ). قبل الشراء ، درست قليلاً قائمة الشركات المصنعة المدعومة من صفارات RPI و TP-Link في القائمة (على الرغم من أنه تبين فيما بعد ، لم أضع في الاعتبار التفاصيل الدقيقة ، لأنه من المعروف أن الشيطان موجود في التفاصيل). لذلك ، تبدأ حكاية البرد الخاصة بسوء حظي ، يتم عرض قصة تحريرية في 3 أجزاء على انتباهكم. مهتمة من فضلك تحت القط.
ساعدني مقال
توصيل WN727N WiFi إلى Ubuntu / Mint جزئيًا ، لكن أولاً
وقبل كل شيء.
شروط المهمة
معين:
- توت العليق Pi 2 B v1.1 - لوحة واحدة للكمبيوتر - 1 جهاز كمبيوتر.
- usb wifi صافرة WN727N - 1 قطعة
- زوج من الأيدي غير ملتوية تماما - 2 قطعة
- تم تثبيت أحدث Raspbian على أنه نظام التشغيل (استنادًا إلى debian 10 Buster)
- إصدار kernel 4.19.73-v7 +
بحث: الاتصال بالإنترنت (يتم سماع Wi-Fi من جهاز التوجيه المنزلي)
بعد تفريغ المهايئ ، قرأت الإرشادات الموجودة في الداخل:
توافق النظام: Windows 10/8/7 / XP (حتى السماء ، وحتى XP) و MacOS 10.9-10.13
هم ، عن لينكس ، كالعادة ، وليس كلمة. كان 2k19 ، ولكن لا تزال هناك حاجة إلى تجميع السائقين يدويا ...
كان لدينا 2 مترجمين و 75 ألف مكتبة وخمس نقاط ثنائية ، نصف كتلة من النساء العاريات مع شعار ، وبحر كامل من رؤوس جميع اللغات والترميزية. ليس أنه كان مجموعة ضرورية للعمل. ولكن إذا بدأت في تجميع النظام لنفسك ، فسيصبح من الصعب التوقف. الشيء الوحيد الذي يقلقني هو السائقين تحت خدمة الواي فاي. لا يوجد شيء أكثر عجزًا ، وغير مسؤول ومفسد من تجميع برامج التشغيل من المصدر. لكنني علمت أننا عاجلاً أم آجلاً سننتقل إلى هذه القمامة.
بشكل عام ، كما تعلم ، فإن التدليل مع usb wi-fi على نظام Linux أمر
مؤلم ولا طعم له إلى حد ما (مثل السوشي الروسي).
يحتوي المربع أيضًا على قرص مضغوط لبرنامج التشغيل. دون الكثير من الأمل ، أنظر إلى ما هو عليه - بالتأكيد ، لم يهتموا.
نقلني البحث على الإنترنت إلى موقع الشركة المصنّعة على الويب ، ولكن لا يوجد برنامج تشغيل Linux إلا لمراجعة جهاز
v4 ، وكان لدي
الإصدار v5.21 . وإلى جانب ذلك ، تحت الإصدارات القديمة للغاية من النواة 2.6-3.16. بعد أن شعرت بالإحباط من الفشل في البداية ، اعتقدت بالفعل أنه كان من الضروري تناول TL-WN727N (إنه أغلى قليلاً ويمكن أن يفعل 300 ميجابايت في الثانية مقابل 150 لعملي ، ولكن تبين أن هذا الأمر غير ذي صلة بالتوت ، سيتم كتابته لاحقًا). ولكن الأهم من ذلك ، أن برامج التشغيل موجودة بالفعل ويتم
تثبيتها ببساطة بواسطة
حزمة ralink الثابتة . يمكنك عادة مشاهدة مراجعة الجهاز على علبة الجهاز على الملصق الموجود بجانب الرقم التسلسلي.
مزيد من googling وزيارة مختلف المنتديات لم يجلب أي شيء جيد. على ما يبدو لم يحاول أحد توصيل هذا المحول بـ Linux قبل قبولي. حسنًا ، أنا محظوظ كرجل غارق.
على الرغم من أن لا ، أنا أكذب ، فإن زيارة المنتديات (معظمها من المنتديات الإنجليزية) أتت بثمارها ، في بعض المواضيع ، كان هناك ذكر لبعض السيد لوفينجر ، الذي اشتهر بكتابة عدد من برامج تشغيل محولات Wi-Fi. مستودع بوابة له في نهاية المقال في الروابط. والدرس الثاني الذي تعلمته هو أنك تحتاج إلى تحديد جهازك لفهم برنامج التشغيل الذي قد يكون مناسبًا له.
الجزء 1. تحديد بورن
عند تشغيل الجهاز في المنفذ ، لا يضيء مصباح LED بالطبع. وبشكل عام ، من غير الواضح ما إذا كان شيء ما يعمل أم لا.
أولاً وقبل كل شيء ، لمعرفة ما إذا كانت النواة ترى أجهزتنا ، أبدو في dmesg:
[ 965.606998] usb 1-1.3: new high-speed USB device number 9 using dwc_otg [ 965.738195] usb 1-1.3: New USB device found, idVendor=2357, idProduct=0111, bcdDevice= 0.00 [ 965.738219] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 965.738231] usb 1-1.3: Product: 802.11n NIC [ 965.738243] usb 1-1.3: Manufacturer: Realtek [ 965.738255] usb 1-1.3: SerialNumber: 00E04C0001
لقد اتضح أنه قد تم رؤيته ، ومن الواضح أن هناك شريحة Realtek وجهاز VID / PID على ناقل USB نفسه.
نذهب أبعد من ذلك ، انظر إلى
lsusb ، ومن ثم ينتظرنا فشل آخر
Bus 001 Device 008: ID 2357:0111 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
لا يعرف النظام ما هو هذا الجهاز ، ويظهر بفارغ الصبر مساحة فارغة بدلاً من اسم (على الرغم من أن البائع = 2357 هو بالضبط TP-Link).
في هذه المرحلة ، ربما لاحظ القارئ الفضولي بالفعل شيئًا مثيرًا للاهتمام ، لكننا سنؤجله حتى وقتنا.
جلبتني عملية البحث عن مشكلة الأسماء الفارغة إلى موقع به معرفات ، حيث يتم إدخال معلومات عن معرف VID / PID معروف. لدينا 2357: 0111 لم يكن هناك. كما اتضح فيما بعد ، يستخدم
lsusb الملف
/usr/share/misc/usb.ids ، وهو نفس قائمة المعرفات من هذا الموقع. من أجل جمال الشاشة ، لقد أضفت خطوطًا لبائع TP-Link إليها في نظامي.
2357 TP-Link 0111 TL-WN727N v5.21
حسنًا ، لقد صححنا العرض في قائمة الأجهزة ، لكن هذا لم يقربنا خطوة واحدة من اختيار برنامج التشغيل. لتحديد برنامج تشغيل ، يلزمك معرفة الشريحة التي يتم تصنيعها في صفاراتك. المحاولات الفاشلة التالية لمعرفة ذلك على الإنترنت لم تؤد إلى أي شيء جيد. مسلحًا بمفك البراغي ذي الشقوق الرفيعة ، أرفع غطاء المهايئ بلطف وأرى من بنات أفكار لياو الشريرة في كل عُريها البدائية. تحت العدسة المكبرة ، يمكنك رؤية اسم الشريحة -
RTL8188EUS . هذا جيد بالفعل. في بعض المنتديات ، رأيت مشاركات أن برنامج التشغيل الخاص بهذا السيد lwfinger مناسب تمامًا لهذه الشريحة (على الرغم من أنه يقول فقط حول RTL8188EU).
الجزء 2. تفوق بورن
أقوم بتنزيل مصادر برنامج التشغيل من gita.
لقد حان الوقت
لإعادة تثبيت shindous للقيام بما يرتبط به Linux عادة - تجميع شيء ما من نوع ما. تحولت مجموعة برامج التشغيل إلى أن تكون مختلفة قليلاً عن تجميع البرامج:
make sudo make install
ولكن لتجميع وحدات kernel ، نحتاج إلى ملفات رأس kernel لإصدارنا المحدد.
توجد حزمة
raspberrypi-kernel-headers في مستودع المخزون ، ولكنها تحتوي على إصدار ملفات kernel
4.19.66-v7l + ، وهذا لا
يناسبنا . ولكن للحصول على رؤوس الإصدار الصحيح ، كما اتضح ، هناك
أداة مصدر rpi مريحة (رابط في النهاية على github) ، يمكنك من خلالها تنزيل الرؤوس اللازمة. نحن استنساخ مستودع ، وجعل البرنامج النصي للتنفيذ ، تشغيله. فشلت البداية الأولى مع وجود خطأ - لا توجد أداة مساعدة
قبل الميلاد . لحسن الحظ ، هو في مستودع ونحن مجرد تثبيته.
sudo apt-get install bc
بعد ذلك ، يستغرق إعادة تشغيل وتنزيل الرؤوس (ثم إعداد شيء ، لا أتذكره الآن) بعض الوقت ويمكنك الجلوس
وتصبح أفضل في جميع مظاهره .
بعد تنزيل جميع الرؤوس ، نتحقق من
ظهور الدليل
/lib/modules/4.19.73-v7+ وفيه يشير الارتباط إلى المكان الذي توجد به الملفات التي تم تنزيلها (لدي / home / pi / linux):
pi@raspberrypi:/home/pi/rtl8188eu# ls -l /lib/modules/4.19.73-v7+/ lrwxrwxrwx 1 root root 14 Sep 24 22:44 build -> /home/pi/linux
اكتمال المرحلة التحضيرية ، يمكنك البدء في تجميع. يستغرق تجميع الوحدات مرة أخرى وقتًا معينًا ، فالتوت البري ليس وحشًا سريعًا (يحتوي على حجر Cortex ARM v7 بحجم 32 بت 900 ميجا هرتز).
لذلك ، كل شيء جمعت. نقوم بتثبيت برنامج التشغيل في الخطوة الثانية (إجراء التثبيت) ، بينما نقوم أيضًا بنسخ ملفات البرامج الثابتة اللازمة لتشغيل برنامج التشغيل:
install: install -p -m 644 8188eu.ko $(MODDESTDIR) @if [ -a /lib/modules/$(KVER)/kernel/drivers/staging/rtl8188eu/r8188eu.ko ] ; then modprobe -r r8188eu; fi; @echo "blacklist r8188eu" > /etc/modprobe.d/50-8188eu.conf cp rtl8188eufw.bin /lib/firmware/. /sbin/depmod -a ${KVER} mkdir -p /lib/firmware/rtlwifi cp rtl8188eufw.bin /lib/firmware/rtlwifi/.
الجزء 3. الإنذار بورن
أنا عصا صافرة في الميناء و ... لا شيء يحدث. هل كان كل شيء يضيع؟
أبدأ في دراسة الملفات الموجودة داخل المشروع ، وفي أحدها أجد المشكلة التي كانت عليها: يشير برنامج التشغيل إلى قائمة VID / PIDs الكاملة التي يمكنه تقديمها. ولكي يعمل الجهاز الخاص بنا مع برنامج التشغيل هذا ، أضفت هويتي إلى ملف
rtl8188eu / os_dep / usb_intf.c static struct usb_device_id rtw_usb_id_tbl[] = { {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179)}, {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179)}, {USB_DEVICE(0x07B8, 0x8179)}, {USB_DEVICE(0x0DF6, 0x0076)}, {USB_DEVICE(0x2001, 0x330F)}, {USB_DEVICE(0x2001, 0x3310)}, {USB_DEVICE(0x2001, 0x3311)}, {USB_DEVICE(0x2001, 0x331B)}, {USB_DEVICE(0x056E, 0x4008)}, {USB_DEVICE(0x2357, 0x010c)}, {USB_DEVICE(0x2357, 0x0111)}, {} };
إعادة ترجمة برنامج التشغيل وإعادة تثبيته في النظام.
وهذه المرة بدأ كل شيء. أضاء ضوء المحول وظهر جهاز جديد في قائمة واجهات الشبكة.
عرض واجهات لاسلكية يعطي ما يلي:
pi@raspberrypi:/home/pi/rtl8188eu# iwconfig eth0 no wireless extensions. lo no wireless extensions. wlan0 unassociated ESSID:"" Nickname:"<WIFI@REALTEK>" Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/100 Signal level=0 dBm Noise level=0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
مكافأة لأولئك الذين قرأوا حتى النهاية
تذكر كيف قلت أنه لا يهم السرعة القصوى المذكورة في محولك؟
لذلك ، على التوت (قبل إصدار النموذج 4) ، جميع الأجهزة (بما في ذلك محول إيثرنت) تجلس على نفس ناقل USB. عظيم ، أليس كذلك؟ وهكذا تتم مشاركة عرض النطاق الترددي الناقل عبر USB بين جميع الأجهزة الموجودة عليه. عند قياس السرعة من خلال الإيثرنت وعبر USB wi-fi (متصل بجهاز توجيه واحد) سواء من خلال الهواء أو من خلال السلك الذي أنتجته في حدود 20 ميغابت في الثانية.
ملاحظة: بشكل عام ، دليل تجميع برنامج التشغيل لهذا المحول المعين صالح ليس فقط بالنسبة إلى RPI. ثم كررت الأمر وعلى سطح مكتبي باستخدام Linux Mint - كل شيء يعمل هناك أيضًا. كل ما تحتاج إليه هو تنزيل ملفات الرأس الضرورية لإصدار kernel.
UPD. اقترح أشخاص مطلعون: لكي لا تعتمد على إصدار kernel ، تحتاج إلى إنشاء وتثبيت برامج التشغيل باستخدام dkms. في الملف التمهيدي للسائق ، يوجد هذا الخيار أيضًا
pi@raspberrypi:/home/pi# sudo dkms add ./rtl8188eu pi@raspberrypi:/home/pi# sudo dkms build 8188eu/1.0 pi@raspberrypi:/home/pi# sudo dkms install 8188eu/1.0
UPD2. تم قبول
التصحيح المقترح لمعرف الجهاز في مستودع التخزين الرئيسي lwfinger / rtl8188eu.
مراجع
-
RPi USB محولات واي فاي-
gitbub lwfinger / rtl8188eu-
usb.ids-
rpi المصدر