TP-Link TL-WN727N සමඟ RaspberryPi මිතුරන් ඇති කර ගනිමු

හෙලෝ, හබ්ර්!

මම වරක් මගේ රාස්ප්බෙරි වාතය හරහා අන්තර්ජාලයට සම්බන්ධ කිරීමට තීරණය කළෙමි.

වැඩි කල් යන්නට මත්තෙන්, මේ සඳහා මම සුප්‍රසිද්ධ සමාගමක් වන TP-Link වෙතින් usb wi-fi විස්ල් එකක් ළඟම ඇති වෙළඳසැලෙන් මිලදී ගත්තෙමි. මෙය යම් ආකාරයක නැනෝ usb මොඩියුලයක් නොවන බව මම වහාම කියමි, නමුත් සාමාන්‍ය ෆ්ලෑෂ් ඩ්‍රයිව් එකක ප්‍රමාණය (හෝ, ඔබ කැමති නම්, වැඩිහිටි මිනිසෙකුගේ දර්ශක ඇඟිල්ලේ ප්‍රමාණය) තරමක් විශාල උපාංගයක්. මිලදී ගැනීමට පෙර, මම RPI සඳහා සහය දක්වන විස්ල් නිෂ්පාදකයින්ගේ ලැයිස්තුව ගැන ටිකක් පර්යේෂණ කළ අතර TP-Link ලැයිස්තුවේ තිබුණි (කෙසේ වෙතත්, පසුව පෙනී ගිය පරිදි, මම සියුම්කම් සැලකිල්ලට නොගත්තේ, මන්ද යක්ෂයා, අප දන්නා පරිදි , විස්තර ඇත). ඉතින්, මගේ අත්වැරදීම් පිළිබඳ සීතල කතාව ආරම්භ වේ; අපි ඔබේ අවධානයට කොටස් 3 කින් රහස් පරීක්ෂක කතාවක් ඉදිරිපත් කරමු. උනන්දුවක් දක්වන අය සඳහා, කරුණාකර cat වෙත යොමු වන්න.

ලිපිය WN727N WiFi ඇඩැප්ටරය Ubuntu/Mint වෙත සම්බන්ධ කිරීම එය මට අර්ධ වශයෙන් උපකාරී විය, නමුත් පළමු දේ පළමුව.

ගැටලුවේ කොන්දේසි

ලබා දී ඇත්තේ:

  1. තනි පුවරු පරිගණකය Raspberry Pi 2 B v1.1 - 1 කෑල්ලක්
  2. usb wi-fi විස්ල් WN727N - 1 කෑල්ලක්
  3. තරමක් වංක නොවන අත් යුගලයක් - 2 කෑලි
  4. නවතම Raspbian මෙහෙයුම් පද්ධතිය ලෙස ස්ථාපනය කර ඇත (Debian 10 Buster මත පදනම්ව)
  5. කර්නල් අනුවාදය 4.19.73-v7+

සොයන්න: අන්තර්ජාලයට සම්බන්ධ වන්න (Wi-Fi ඔබේ නිවසේ රවුටරයෙන් බෙදා හරිනු ලැබේ)

ඇඩැප්ටරය ඉවත් කිරීමෙන් පසු, මම ඇතුළත උපදෙස් කියෙව්වා:

පද්ධති අනුකූලතාව: Windows 10/8/7/XP (අහස පවා, XP පවා) සහ MacOS 10.9-10.13

හ්ම්, සුපුරුදු පරිදි, ලිනක්ස් ගැන වචනයක්වත් නැත. එය 2k19 වූ අතර රියදුරන් තවමත් අතින් එකලස් කිරීමට අවශ්‍ය විය...

අපි සමඟ සම්පාදකයින් 2 ක්, පුස්තකාල 75 දහසක්, ද්විමය බ්ලොබ් පහක්, ලාංඡනයක් සහිත නිරුවත් කාන්තාවන්ගෙන් අඩක් සහ සියලු භාෂා සහ සලකුණු සහිත ශීර්ෂයන් සහිත සම්පූර්ණ මුහුදක් අප සමඟ තිබුණි. මෙය රැකියාවට අවශ්‍ය කට්ටලයක් බව නොවේ. නමුත් ඔබ ඔබටම පද්ධතියක් එකලස් කිරීමට පටන් ගත් පසු, එය නතර කිරීම අපහසු වේ. මට කනස්සල්ලට හේතු වූ එකම දෙය wi-fi සඳහා රියදුරන් ය. මූලාශ්‍රයෙන් රියදුරන් ගොඩනැගීම තරම් අසරණ, වගකීම් විරහිත, දූෂිත දෙයක් තවත් නැත. නමුත් ඉක්මනින් හෝ පසුව අපි මෙම කුණු වලට මාරු වන බව මම දැන සිටියෙමි.

පොදුවේ, ඔබ දන්නා පරිදි, Linux මත usb wi-fi සමඟ fiddling වේ වේදනාකාරී සහ තරමක් රසවත් (රුසියානු සුෂි වැනි).

පෙට්ටියේ ධාවක සහිත සංයුක්ත තැටියක් ද අඩංගු වේ. වැඩි බලාපොරොත්තුවක් නොමැතිව මම එහි ඇති දේ දෙස බලමි - ඔවුන් අනිවාර්යයෙන්ම එය රැකබලා ගෙන නැත. අන්තර්ජාල සෙවුමක් මාව නිෂ්පාදකයාගේ වෙබ් අඩවියට ගෙන ආ නමුත් එහි Linux ධාවකයක් ඇත්තේ උපාංග සංශෝධනය සඳහා පමණි v4, සහ මගේ අත්වල විය v5.21. ඊට අමතරව, ඉතා පැරණි කර්නල් අනුවාද 2.6-3.16 සඳහා. ආරම්භයේදීම අසාර්ථක වීමෙන් අධෛර්යයට පත් වූ මම දැනටමත් TL-WN727N ගත යුතු යැයි සිතුවෙමි (එය ටිකක් මිල අධික වන අතර මගේ 300 ට සාපේක්ෂව 150Mbps හැසිරවිය හැක, නමුත් එය සිදු වූ පරිදි, මෙය කිසිසේත් වැදගත් නොවේ. රාස්ප්බෙරි, මෙය පසුව ලියනු ලැබේ). නමුත් වැදගත්ම දෙය නම් එය සඳහා ධාවක දැනටමත් පවතින අතර ඒවා පැකේජයක් ලෙස ස්ථාපනය කර ඇත ස්ථිරාංග-රැලින්ක්. ඔබට සාමාන්‍යයෙන් අනුක්‍රමික අංකයට යාබද ස්ටිකරයක් මත උපාංග ශරීරය මත උපාංග සංශෝධනය නැරඹිය හැක.

තවදුරටත් ගූගල් කිරීම සහ විවිධ සංසද නැරඹීම එතරම් හොඳ දෙයක් ගෙන දුන්නේ නැත. පෙනෙන විදිහට මට පෙර කිසිවෙක් එවැනි ඇඩප්ටරයක් ​​ලිනක්ස් වෙත සම්බන්ධ කිරීමට උත්සාහ කර නැත. හ්ම්, මම දියේ ගිලුණු මිනිසෙකු තරම් වාසනාවන්තයි.

නැත, මම බොරු කීවත්, සංසදවලට (බොහෝ විට ඉංග්‍රීසි භාෂා) පැමිණීමෙන්ද පල දරන්නට විය; සමහර මාතෘකා වල Wi-Fi ඇඩැප්ටර සඳහා ධාවක ගණනාවක් ලිවීමට ප්‍රසිද්ධ වූ එක්තරා lwfinger මහතා ගැන සඳහනක් විය. . ඔහුගේ git ගබඩාව සබැඳිවල ලිපියේ අවසානයේ ඇත. මා ඉගෙන ගත් දෙවන පාඩම නම්, එයට සුදුසු ධාවකය කුමක්ද යන්න තේරුම් ගැනීමට ඔබ ඔබේ උපාංගය හඳුනා ගත යුතු බවයි.

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

එය දකින බව පෙනී ගිය අතර, usb බස් රථයේ Realtek චිපයක් සහ උපාංගයේ 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-Link වේ).

මෙම අවස්ථාවෙහිදී, විමසිලිමත් පාඨකයා දැනටමත් රසවත් යමක් දැක ඇති නමුත්, අපි එය අපගේ කාලය දක්වා තබමු.

හිස් නම්වල ගැටලුව පිළිබඳව පර්යේෂණ කිරීම, දන්නා VID/PID පිළිබඳ තොරතුරු ඇතුළත් කර ඇති හඳුනාගැනීම් සහිත අඩවියකට මා ගෙන ගියේය. අපගේ 2357:0111 එහි නොවීය. පසුව පෙනී ගිය පරිදි, උපයෝගීතාව lsusb ගොනුව භාවිතා කරයි /usr/share/misc/usb.ids, මෙම වෙබ් අඩවියෙන් එකම ID ලැයිස්තුවකි. සංදර්ශකයේ අලංකාරය සඳහා, මම මගේ පද්ධතියේ විකුණුම්කරු TP-Link සඳහා රේඛා එකතු කළෙමි.

2357  TP-Link
        0111  TL-WN727N v5.21

හොඳයි, අපි උපාංග ලැයිස්තුවේ සංදර්ශකය නිවැරදි කර ඇත, නමුත් එය රියදුරෙකු තෝරා ගැනීමට අපට එක් පියවරක් සමීප කළේ නැත. ධාවකයක් තෝරා ගැනීමට, ඔබේ විස්ල් එක සෑදී ඇත්තේ කුමන චිපයකින්ද යන්න ඔබ දැනගත යුතුය. අන්තර්ජාලයේ මෙය සොයා ගැනීමට ඊළඟ අසාර්ථක උත්සාහයන් යහපත් දෙයකට මඟ පෑදුවේ නැත. සිහින් සිදුරු සහිත ඉස්කුරුප්පු නියනකින් සන්නද්ධව, මම පරිස්සමෙන් ඇඩැප්ටර තොප්පිය ගලවා බැලූ අතර, ලියාඕ මාමාගේ දරුණු මොළය එහි සියලු නිර්වස්ත්‍ර බවින් දිස්වේ. විශාලන වීදුරුවක් යටතේ ඔබට චිපයේ නම දැකිය හැකිය - RTL8188EUS. මෙය දැනටමත් හොඳයි. සමහර ෆෝරම් වල මම දැක්කා ඒ මහත්මයාගේ lwfinger ගේ ඩ්‍රයිවර් එක මේ චිප් එකට (ඔහු ලියන්නේ RTL8188EU ගැන විතරයි) කියලා.

2 කොටස: බෝර්න් උත්තරීතරභාවය

මම රියදුරු මූලාශ්‍ර බාගත කරන්නේ Git එකෙන්.

වින්ඩෝස් නැවත ස්ථාපනය කිරීමට සහ ලිනක්ස් භාවිතා කරන්නන් සාමාන්‍යයෙන් සම්බන්ධ කර ඇති දේ කිරීමට කාලයයි - යම් ආකාරයක යමක් එකලස් කිරීම. ධාවක එකලස් කිරීම, පෙනෙන පරිදි, වැඩසටහන් සම්පාදනයට වඩා වෙනස් නොවේ:

make
sudo make install

නමුත් කර්නල් මොඩියුල සම්පාදනය කිරීමට අපට අපගේ නිශ්චිත අනුවාදය සඳහා කර්නල් ශීර්ෂ ගොනු අවශ්‍ය වේ.

කොටස් ගබඩාවේ පැකේජයක් තිබේ raspberrypi-kernel-ශීර්ෂ, නමුත් එහි ගොනු වල කර්නල් අනුවාදය අඩංගු වේ 4.19.66-v7l+, සහ ඒක අපිට ගැලපෙන්නේ නැහැ. නමුත් අවශ්ය අනුවාදයේ ශීර්ෂයන් ලබා ගැනීම සඳහා, එය සිදු වූ පරිදි, පහසු මෙවලමක් තිබේ rpi-මූලාශ්රය (ගිතුබ් හි අවසානයේ ඇති සබැඳිය), ඔබට අවශ්‍ය ශීර්ෂ බාගත කළ හැකිය. අපි ගබඩාව ක්ලෝන කර, ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කර එය ක්‍රියාත්මක කරන්නෙමු. පළමු දියත් කිරීම දෝෂයක් සමඟ අසාර්ථක වේ - කිසිදු උපයෝගීතාවයක් නොමැත bc. වාසනාවකට මෙන්, එය ගබඩාවේ ඇති අතර අපි එය ස්ථාපනය කරමු.

sudo apt-get install bc

මෙයින් පසු, ශීර්ෂයන් නැවත ආරම්භ කිරීම සහ බාගත කිරීම (පසුව යමක් සැකසීම, මට දැන් මතක නැත) යම් කාලයක් ගත වන අතර ඔබට ඔබේ පුටුවේ වාඩි විය හැකිය, වින්ඩෝස් එහි සියලුම ප්‍රකාශනයන් තුළ වඩා හොඳ වී ඇත.

සියලුම ශීර්ෂයන් බාගත කිරීමෙන් පසුව, බහලුම දිස්වේදැයි පරීක්ෂා කරන්න /lib/modules/4.19.73-v7+ සහ එහි symlink බාගත කළ ගොනු පිහිටා ඇති ස්ථානයට යොමු කරයි (මට එය /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

සූදානම් වීමේ අදියර අවසන්, ඔබට එකලස් කිරීම ආරම්භ කළ හැකිය. නැවත මොඩියුල එකලස් කිරීමට යම් කාලයක් ගතවේ, Raspberry වේගවත් මෘගයෙක් නොවේ (එය 32bit 900Mhz Cortex ARM v7 ඇත).
එබැවින් සියල්ල සම්පාදනය කර ඇත. අපි 2 වන පියවරේදී ධාවක ස්ථාපනය කරන්නෙමු (ස්ථාපනය කරන්න), රියදුරුට වැඩ කිරීමට අවශ්‍ය තවත් ස්ථිරාංග ගොනු පිටපත් කරන අතරම:

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 කොටස. The Bourne Ultimatum

මම විස්ල් එක පෝට් එකට ප්ලග් කරලා... මුකුත් වෙන්නේ නෑ. ඒ සියල්ල නිකරුණේද?

මම ව්‍යාපෘතිය තුළ ඇති ලිපිගොනු අධ්‍යයනය කිරීමට පටන් ගන්නා අතර ඒවායින් එකක මම ගැටලුව කුමක්දැයි සොයා ගන්නෙමි: රියදුරු එය සේවය කළ හැකි VID/PID හඳුනාගැනීම් වල සම්පූර්ණ ලැයිස්තුවක් නියම කරයි. අපගේ උපාංගය මෙම ධාවකය සමඟ ක්‍රියා කිරීම සඳහා, මම මගේ හැඳුනුම්පත ගොනුවට එක් කළෙමි 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

අවසානය දක්වා කියවන අයට බෝනස්

ඔබේ ඇඩැප්ටරයේ උපරිම වේගය කොපමණ දැයි ප්‍රශ්නයක් නොවන බව මා පැවසූ ආකාරය මතකද?
එබැවින්, Malinka මත (ආකෘතිය 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. යෝජිතය පැච් උපාංග හැඳුනුම්පත lwfinger/rtl8188eu ගබඩාවේ ප්‍රධාන ධාරාවේ ශාඛාව වෙත පිළිගනු ලැබීය.

යොමු
- RPi USB Wi-Fi ඇඩැප්ටර
- Gitbub lwfinger/rtl8188eu
- usb.ids
- rpi-මූලාශ්රය

මූලාශ්රය: www.habr.com