راځئ چې د TP-Link TL-WN727N سره RaspberryPi ملګري کړو

اې حبره!

ما یوځل پریکړه وکړه چې خپل راسبیري د هوا له لارې انټرنیټ سره وصل کړم.

ژر تر ژره وویل شو چې بشپړ شو، د دې هدف لپاره ما د نږدې پلورنځي څخه د مشهور شرکت TP-Link څخه د USB wi-Fi ویسټل اخیستی. زه به سمدلاسه ووایم چې دا یو ډول نانو USB ماډل نه دی ، مګر خورا لوی وسیله ، د منظم فلش ډرایو اندازې په اړه (یا ، که تاسو غواړئ ، د بالغ سړي د شاخص ګوتې اندازه). د پیرودلو دمخه ، ما د RPI او TP-Link لپاره د ملاتړ شوي ویسل جوړونکو لیست په اړه لږه څیړنه وکړه (په هرصورت ، لکه څنګه چې وروسته څرګنده شوه ، ما فرعي ټکي په پام کې ندي نیولي ، ځکه چې شیطان ، لکه څنګه چې موږ پوهیږو ، په جزیاتو کې دی). نو زما د بدمرغیو سړه کیسه پیل کیږي؛ موږ ستاسو پام ته په 3 برخو کې یوه جاسوسي کیسه وړاندې کوو. د لیوالتیا لپاره، مهرباني وکړئ بلی ته مراجعه وکړئ.

مقاله د WN727N وائی فای اډاپټر اوبنټو/مینټ ته وصل کول دې ما سره په جزوي ډول مرسته وکړه ، مګر لومړی شیان لومړی.

د ستونزې شرایط

ورکړل شوی:

  1. د واحد بورډ کمپیوټر Raspberry Pi 2 B v1.1 - 1 ټوټه
  2. د USB وای فای څاڅکی WN727N - 1 ټوټه
  3. یوه جوړه د کافي نه کږه لاسونه - 2 ټوټې
  4. وروستی راسبیان د OS په توګه نصب شوی (د Debian 10 بسټر پراساس)
  5. د کرنل نسخه 4.19.73-v7+

ومومئ: انټرنیټ سره وصل شئ (وائی فای ستاسو د کور روټر څخه توزیع شوی)

د اډاپټر د خلاصولو وروسته ، ما دننه لارښوونې لوستل:

د سیسټم مطابقت: وینډوز 10/8/7/XP (حتی آسمان، حتی XP) او MacOS 10.9-10.13

هوم، د معمول په څیر، د لینکس په اړه یوه کلمه نه ده. دا 2k19 وه، او چلوونکي لاهم اړتیا لري چې په لاسي ډول راټول شي ...

موږ له موږ سره دوه تالیف کونکي، 2 زره کتابتونونه، پنځه بائنری بلابونه، د لوګو سره نیمه ناپاک میرمنې او د ټولو ژبو او مارک اپونو سرلیکونو بشپړ سمندر درلود. نه دا چې دا د دندې لپاره اړین ترتیب دی. مګر یوځل چې تاسو د خپل ځان لپاره د سیسټم راټولول پیل کړئ ، نو ودرول یې ستونزمن کیږي. یوازینی شی چې زما د اندیښنې لامل شوی و د وای فای لپاره چلوونکي و. له منبع څخه د موټر چلوونکو له جوړولو پرته نور بې وسه، بې مسوولیته او فاسد بل څه نشته. مګر زه پوهیدم چې ژر یا وروسته به موږ دې کثافاتو ته واړوو.

په عموم کې، لکه څنګه چې تاسو پوهیږئ، په لینوکس کې د USB وائی فای سره ډکول دي دردناک او یو څه بې خوند (لکه روسي سوشي).

په بکس کې د چلوونکو سره CD هم شتون لري. د ډیرې امید پرته زه وګورم چې پدې کې څه دي - دوی یقینا د دې پاملرنه نه ده کړې. د انټرنیټ لټون ما د تولید کونکي ویب پا toې ته راوړی ، مګر دلته یوازې د وسیلې بیاکتنې لپاره لینکس ډرایور شتون لري v4، او زما په غیږ کې وه v5.21. او سربیره پردې ، د خورا زاړه کرنل نسخو لپاره 2.6-3.16. په پیل کې د ناکامۍ له امله مایوسه شوی ، ما دمخه فکر کاوه چې ما باید TL-WN727N اخیستی وای (دا یو څه ډیر ګران دی او کولی شي زما لپاره د 300 په پرتله 150Mbps اداره کړي ، مګر لکه څنګه چې څرګنده شوه ، دا د دې لپاره هیڅ اهمیت نلري. راسبیري، دا به وروسته په اړه ولیکل شي). مګر ترټولو مهمه خبره دا ده چې د دې لپاره چلوونکي لا دمخه شتون لري او په ساده ډول د کڅوړې په توګه نصب شوي firmware-ralink. تاسو کولی شئ معمولا د وسیلې بیاکتنه د وسیلې په بدن کې د سیریل نمبر سره په سټیکر کې وګورئ.

نور ګوګل کول او د مختلف فورمونو لیدل ډیر ښه ندي راوړي. ظاهرا زما څخه مخکې هیڅوک هڅه نه ده کړې چې دا ډول اډاپټر لینکس ته وصل کړي. هو، زه د ډوب شوي سړي په څیر خوشحاله یم.

که څه هم، نه، زه دروغ وایم، د فورمونو لیدل (اکثره انګلیسي ژبې) هم ګټورې دي؛ په ځینو موضوعاتو کې د یو ځانګړي ښاغلي لوفینګر یادونه وه، چې د وای فای اډاپټرونو لپاره د یو شمیر چلوونکو په لیکلو مشهور دی. . د هغه د ګیټ ذخیره په لینکونو کې د مقالې په پای کې ده. او دوهم درس چې ما زده کړل هغه دا دی چې تاسو اړتیا لرئ خپل وسیله وپیژنئ ترڅو پوه شئ چې کوم ډرایور ممکن د دې لپاره مناسب وي.

لومړۍ برخه: د بورن هویت

کله چې وسیله په بندر کې ولګول شوه، البته، هیڅ 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

دا معلومه شوه چې دا ګوري، او دا حتی روښانه ده چې د ریلټیک چپ شتون لري او پخپله د USB بس کې د وسیلې VID/PID.

راځئ نور لاړ شو او وګورو 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-لینک دی).

پدې مرحله کې، لوستونکي شاید دمخه یو څه په زړه پوري لیدلي وي، مګر موږ به یې تر خپل وخت پورې پریږدو.

د خالي نومونو د ستونزې څیړنه ما د پیژندونکو سره یو سایټ ته ولیږه، چیرې چې د پیژندل شوي VID/PID په اړه معلومات داخل شوي. زموږ 2357:0111 هلته نه و. لکه څنګه چې وروسته معلومه شوه، افادیت lsusb فایل کاروي /usr/share/misc/usb.ids, کوم چې د دې سایټ څخه د IDs ورته لیست دی. د نندارې ښکلا لپاره، ما په ساده ډول زما په سیسټم کې د پلورونکي TP-Link لپاره لینونه اضافه کړل.

2357  TP-Link
        0111  TL-WN727N v5.21

ښه، موږ د وسیلو په لیست کې ښودنه سمه کړه، مګر دا موږ ته د موټر چلوونکي غوره کولو لپاره یو ګام هم نږدې نه کړ. د موټر چلوونکي غوره کولو لپاره، تاسو اړتیا لرئ پوه شئ چې ستاسو سیست په کوم چپ جوړ شوی. په انټرنیټ کې د دې موندلو راتلونکي ناکامې هڅې هیڅ ښه لامل نه شو. د یو پتلی سلاټ شوي سکریو ډرایور سره مسلح ، زه په احتیاط سره د اډاپټر کیپ لرې کړم او د کاکا لیاو شیطاني دماغي ماشوم په خپل ټول لومړني بربنډۍ کې څرګند شو. د میګنیفاینګ شیشې لاندې تاسو کولی شئ د چپ نوم وګورئ - RTL8188EUS. دا لا دمخه ښه دی. په ځینو فورمونو کې ما پوسټونه ولیدل چې د ورته شریف سړي lwfinger څخه ډرایور د دې چپ لپاره مناسب دی (که څه هم هغه یوازې د RTL8188EU په اړه لیکي).

دویمه برخه: د بورن برتری

زه د ګیټ څخه د ډرایور سرچینې ډاونلوډ کوم.

دا وخت دی چې وینډوز بیا انسټال کړئ او هغه څه وکړئ چې د لینکس کارونکي معمولا ورسره تړاو لري - د ځینې ډولونو څخه یو څه راټولول. د ډرایورانو راټولول، لکه څنګه چې دا معلومه شوه، د پروګرامونو د راټولولو څخه لږ توپیر لري:

make
sudo make install

مګر د کرنل ماډلونو تالیف کولو لپاره موږ زموږ د ځانګړي نسخې لپاره د کرنل سرلیک فایلونو ته اړتیا لرو.

د سټاک ذخیره کې یو بسته شتون لري raspberrypi-kernel-headers، مګر دا د فایلونو کرنل نسخه لري 4.19.66-v7l+، او دا موږ ته مناسب نه دی. مګر د اړتیا وړ نسخې سرلیکونو ترلاسه کولو لپاره، لکه څنګه چې دا معلومه شوه، یو مناسب وسیله شتون لري rpi- سرچینه (د ګیتوب په پای کې لینک)، د کوم سره چې تاسو کولی شئ اړین سرلیکونه ډاونلوډ کړئ. موږ ذخیره کلون کوو، سکریپټ د اجرا وړ ګرځوو او چلوو. لومړی لانچ د غلطۍ سره ناکام شو - هیڅ ګټه نشته bc. خوشبختانه ، دا په ذخیره کې دی او موږ یې یوازې نصب کوو.

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

د چمتووالي مرحله بشپړه شوې، تاسو کولی شئ مجلس پیل کړئ. د ماډلونو راټولول بیا یو څه وخت نیسي ، راسبیري یو ګړندی حیوان ندی (دا د 32bit 900Mhz Cortex ARM v7 لري).
نو هرڅه تالیف شوي. موږ ډرایور په دوهم ګام کې نصب کوو (انسټال کړئ) ، پداسې حال کې چې د ډرایور کار کولو لپاره اړین نور فرم ویئر فایلونه هم کاپي کوو:

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/.

دریمه برخه. د بورن الټیمیټم

زه ویسل په بندر کې ولګوم او ... هیڅ نه کیږي. ایا دا ټول د هیڅ لپاره نه وو؟

زه د پروژې دننه د فایلونو مطالعه پیل کوم او په یوه کې زه وموم چې ستونزه څه وه: ډرایور د VID/PID پیژندونکو بشپړ لیست مشخص کوي چې دا کولی شي خدمت وکړي. او د دې لپاره چې زموږ وسیله د دې ډرایور سره کار وکړي، ما په ساده ډول زما ID فایل ته اضافه کړ rtl8188eu/os_dep/usb_intf.c

static struct usb_device_id rtw_usb_id_tbl[] = {
        /*=== Realtek demoboard ===*/
        {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179)}, /* 8188EUS */
        {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179)}, /* 8188ETV */
        /*=== Customer ID ===*/
        /****** 8188EUS ********/
        {USB_DEVICE(0x07B8, 0x8179)}, /* Abocom - Abocom */
        {USB_DEVICE(0x0DF6, 0x0076)}, /* Sitecom N150 v2 */
        {USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */
        {USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */
        {USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */
        {USB_DEVICE(0x2001, 0x331B)}, /* D-Link DWA-121 rev B1 */
        {USB_DEVICE(0x056E, 0x4008)}, /* Elecom WDC-150SU2M */
        {USB_DEVICE(0x2357, 0x010c)}, /* TP-Link TL-WN722N v2 */
        {USB_DEVICE(0x2357, 0x0111)}, /* TP-Link TL-WN727N v5.21 */
        {}      /* Terminating entry */
};

ما ډرایور بیا جوړ کړ او په سیسټم کې یې بیا نصب کړ.

او دا ځل هرڅه پیل شول. د اډاپټر رڼا روښانه شوه او د شبکې انٹرفیسونو لیست کې یو نوی وسیله ښکاره شوه.

د بې سیم انٹرفیس لیدل لاندې ښیې:

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 له لارې (د 1 روټر سره وصل شوی) د هوا او تار له لارې ، دا شاوخوا 20Mbit/s و.

PS په عموم کې ، د دې ځانګړي اډاپټر لپاره د ډرایور تالیف کولو لپاره دا لارښود نه یوازې د RPI لپاره اعتبار لري. ما بیا دا په خپل ډیسټاپ کې د لینکس مینټ سره تکرار کړ - هرڅه هلته هم کار کوي. تاسو یوازې اړتیا لرئ په ورته ډول ستاسو د کرنل نسخې لپاره اړین سرلیک فایلونه ډاونلوډ کړئ.

UPD. پوهو خلکو وړاندیز وکړ: د دې لپاره چې د کرنل نسخه پورې اړه ونلري ، تاسو اړتیا لرئ د dkms په کارولو سره ډرایورونه راټول او نصب کړئ. د موټر چلوونکي لپاره readme هم دا اختیار لري.

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. وړاندیز شوی ټوټه د وسیلې ID لپاره د lwfinger/rtl8188eu ذخیره اصلي جریان څانګې ته ومنل شو.

مرجع
- د RPi USB وای فای اډاپټرونه
- Gitbub lwfinger/rtl8188eu
- usb.ids
- rpi- سرچینه

سرچینه: www.habr.com