Aynu saaxiibo ka dhigno RaspberryPi TP-Link TL-WN727N

Haye Habr!

Waxaan mar go'aansaday inaan ku xidho raspberry-kayga internetka hawada.

Si dhakhso ah uma dhihin intii la sameeyay, ujeedadan awgeed waxaan ka soo iibsaday seeriga wi-fi ee shirkadda caanka ah ee TP-Link dukaanka iigu dhow. Isla markiiba waxaan dhihi doonaa in tani aysan ahayn nooc ka mid ah nano usb module, laakiin waa qalab aad u weyn, oo ku saabsan cabbirka darawalka caadiga ah (ama, haddii aad jeceshahay, cabbirka farta index ee nin weyn). Kahor intaanan wax iibsan, waxaan sameeyay cilmi baaris yar oo ku saabsan liiska soosaarayaasha foorida ee la taageeray ee RPI iyo TP-Link ayaa ku jiray liiska (si kastaba ha noqotee, sida ay u dhacday ka dib, ma aanan xisaabtamin khiyaanada, sababtoo ah Ibliisku, sida aan ognahay. , waa in faahfaahinta). Haddaba, sheekadii qabow ee xumaantaydu waxay bilaabmaysaa, waxaanu kuu soo bandhigaynaa sheeko baadhid oo ka kooban 3 qaybood. Kuwa xiisaynaya, fadlan tixraac bisad

Qodobka Ku xidhida adabtarada WN727N WiFi ee Ubuntu/Mint Waxay i caawisay qayb ahaan, laakiin marka hore waxyaalihii hore.

Xaaladaha dhibaatada

Siiyay:

  1. Kumbiyuutarka looxa looxa ah ee Raspberry Pi 2 B v1.1 - 1 gabal
  2. seeriga wi-fi USB WN727N - 1 xabbo
  3. labo gacmood oo aan qalloocan ahayn - 2 xabbo
  4. Raspbian-kii ugu dambeeyay waxaa loo rakibay sidii OS (ku saleysan Debian 10 Buster)
  5. nooca kernel 4.19.73-v7+

Soo hel: ku xidh Internetka (Wi-Fi waxa laga qaybiyaa router gurigaaga)

Ka dib markii aan furay adabtarada, waxaan akhriyay tilmaamaha:

Waafaqsanaanta nidaamka: Windows 10/8/7/XP (xitaa cirka, xitaa XP) iyo MacOS 10.9-10.13

Hmm, sida caadiga ah, ma aha kelmad ku saabsan Linux. Waxay ahayd 2k19, darawalladana wali waxay u baahnaayeen in gacanta lagu soo ururiyo...

Waxaan nala haysanay 2 compilers, 75 kun oo maktabado ah, shan blobs binary, nus dumar ah oo qaawan oo wata calaamad iyo bad dhan oo madax ka ah dhammaan luqadaha iyo calaamadaha. Ma aha in tani ay tahay mid lagama maarmaan u ah shaqada. Laakin marka aad bilowdo ururinta nidaam naftaada, way adagtahay in la joojiyo. Waxa kaliya ee walaac igu dhaliyay waxay ahayd wadayaasha wi-fi-ga. Ma jiro wax ka sii liita, mas'uuliyad darro iyo musuqmaasuq ka badan in darawaliinta laga dhiso ilo. Laakiin waan ogaa in mar dhow ama hadhowba aan u wareegi doono qashinkan.

Guud ahaan, sida aad ogtahay, ku-xirnaanta usb wi-fi ee Linux waa xanuun badan oo aan dhadhamin (sida sushi Ruush).

Sanduuqa waxa kale oo ku jira CD ay ku jiraan darawallo. Iyada oo aan rajo badan laga qabin in aan eego waxa ku dul yaal - xaqiiqdii ma ay daryeelin. Raadinta internetka ayaa ii keentay bogga soo saaraha, laakiin waxaa jira darawal Linux ah oo kaliya oo loogu talagalay dib-u-eegista qalabka v4, oo gacmahayga ayaa ku jiray v5.21. Iyo ka sokow, noocyada kernel-ka 2.6-3.16. Anigoo niyad jabiyay guuldarada bilawgii hore, waxaan horeyba u maleeyay inaan qaato TL-WN727N (waa wax yar ka qaalisan waxayna xamili kartaa 300Mbps iyo 150 aniga, laakiin sida ay noqotay, tani wax dhib ah maaha raspberry, kani gadaal ayaa laga qori doonaa). Laakiin waxa ugu muhiimsan waa in darawalada ay hore u jireen oo si fudud loogu rakibay xirmo ahaan firmware-ralink. Caadi ahaan waxaad ku arki kartaa dib u eegista qalabka ee jidhka qalabka ku dheji dhejiyeyaal ku xiga lambarka taxanaha.

Gogol-xaadhista dheeraadka ah iyo booqashada golayaasha kala duwan may keenin wax wanaagsan. Sida muuqata ma jiro qof iga horreeyay oo isku dayay inuu ku xidho adabtarada noocaan ah Linux. Hmm, waxaan u nasiib badanahay sidii nin qarqmay.

In kasta oo, maya, aan been sheegayo, haddana, golayaasha booqashada (inta badan kuwa Ingiriisiga lagu hadlo) ayaa iyaguna midho dhalay, mawduucyada qaarna waxa lagu xusay Mr. . Kaydkiisa git wuxuu ku yaalaa dhamaadka maqaalka ee isku xirka. Casharka labaad ee aan bartayna waa in aad u baahan tahay in aad aqoonsato aaladdaada si aad u fahamto darawalka ku habboon.

Qaybta 1: Aqoonsiga Bourne

Markii aaladda lagu xidhay dekedda, dabcan, wax LED ah ma shiday. Guud ahaanna sina uma cadda in shay shaqaynayo iyo in kale.

Marka hore, si aan u ogaado in kernel-ku uu arko aaladdayada, waxaan eegayaa 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

Waxay soo baxday inay aragto, oo xitaa way caddahay in ay jiraan chip Realtek iyo VID/PID ee qalabka laftiisa baska usb-ka.

Aynu sii socono oo eegno lsusb, halkanna fashil kale ayaa ina sugaya

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

Nidaamku ma garanayo nooca aaladda uu yahay, wuxuuna si bash-bash ah u muujinayaa meel bannaan oo bannaan halkii magaca (in kasta oo iibiyaha=2357 uu hubaal yahay TP-Link).

Marxaladdan, akhristaha wax waydiinaya waxay u badan tahay inuu hore u ogaaday wax xiiso leh, laakiin waan ka tagi doonaa ilaa waqtigeena.

Baaritaanka dhibaatada magacyada madhan ayaa ii horseeday goob leh aqoonsi, halkaas oo macluumaadka VID/PID ee la yaqaan la geliyo. Our 2357:0111 ma jirin. Sida markii dambe soo baxday, utility lsusb isticmaala file /usr/share/misc/usb.ids, kaas oo ah isla liiskii aqoonsiga ee goobtan. Quruxda bandhigga, waxaan si fudud ugu daray khadadka iibiyaha TP-Link ee nidaamkayga.

2357  TP-Link
        0111  TL-WN727N v5.21

Hagaag, waxaanu saxnay bandhiga liiska aaladaha, laakiin nama keenin hal tallaabo oo ku dhow doorashada darawalka. Si aad u dooratid darawal, waxaad u baahan tahay inaad ogaato waxa firiga lagu sameeyay. Isku daygii xigay ee aan lagu guulaysan ee lagu doonayay in lagu ogaado internetka wax wanaagsan ma keenin. Anigoo ku hubaysan kaashawiito dhuuban oo dhuuban, waxaan si taxadar leh u saaray daboolka adabtarada waxaana ilmada xun ee adeer Liao uu ka soo muuqday dhammaan cawradiisa saafiga ah. Muraayadda weyneynta hoosteeda waxaad arki kartaa magaca chip-ka - RTL8188EUS. Tani mar horeba way wanaagsan tahay. Golayaasha qaarkood waxaan ku arkay qoraallo sheegaya in darawalka isla mudane lwfinger uu si fiican ugu habboon yahay chip-kan (inkastoo uu kaliya wax ka qoro RTL8188EU).

Qaybta 2: Sarraynta Bourne

Waxaan ka soo dejiyaa ilaha darawalka Git.

Waa waqtigii dib loo rakibi lahaa Windows oo la samayn lahaa waxa isticmaalayaasha Linux inta badan lala xiriiriyo - wax ka soo ururinta noocyada qaarkood. Isku-dubarid wadayaasha, sida ay soo baxday, wax yar ayay kaga duwan tahay ururinta barnaamijyada:

make
sudo make install

laakiin si aan u ururinno cutubyada kernel-ka waxaan u baahanahay faylalka madaxa kernel noocayada gaarka ah.

Baakad ayaa ku jirta kaydka kaydka raspberrypi-kernel-headers, laakiin waxa uu ka kooban yahay nooca kernel ee faylalka 4.19.66-v7l+, taasina naguma habboona. Laakiin si aad u hesho madaxyada nooca loo baahan yahay, sida ay soo baxday, waxaa jira qalab ku habboon rpi-source (isku xidhka dhamaadka Github), kaas oo aad kala soo bixi karto madaxyada lagama maarmaanka ah. Waxaanu xidhnay kaydka, waxaanu ka dhignaa qoraalka mid la fulin karo, oo aanu wadnaa. Daahfurka ugu horreeya wuxuu ku guul-darraystaa qalad - ma jiro wax adeegsi ah bc. Nasiib wanaag, waxay ku jirtaa kaydka waxaanan si fudud u rakibnay.

sudo apt-get install bc

Taas ka dib, dib u bilaabista iyo soo dejinta madaxyada (ka dibna wax u dejinaya, hadda ma xasuusto) waxay qaadataa wakhti oo waad fadhiisan kartaa, Windows-na wuxuu noqday mid ka sii wanaagsan dhammaan muuqaaladiisa.

Ka dib marka dhammaan madaxyada la soo dejiyo, hubi in hagaha uu soo muuqdo /lib/modules/4.19.73-v7+ oo dhexda calaamaddu waxay tilmaamaysaa meesha faylasha la soo dejiyey ay yaalliin (aniga aniga waa /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

Marxaladda diyaarinta waa la dhammeeyey, waxaad bilaabi kartaa isu imaatinka. Isku-dubarid modules-yada mar kale waxay qaadataa wakhti, Raspberry-ku maaha bahal degdeg ah (wuxuu leeyahay 32bit 900Mhz Cortex ARM v7).
Markaa wax walba waa la ururiyey. Waxaan ku rakibnay darawalka tallaabada 2-aad (ka dhig rakib), anagoo sidoo kale koobiyneyno faylal badan oo firmware ah oo lagama maarmaanka u ah darawalku inuu shaqeeyo:

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

Qaybta 3. Bourne Ultimatum

Seeriga ayaan ku xidhay dekedda oo... waxba ma dhacaan. Ma wax la'aan bay ahayd?

Waxaan bilaabay in aan daraaseeyo faylalka ku jira mashruuca mid ka mid ahna waxaan ka helay dhibaatadu waxa ay ahayd: darawalku waxa uu qeexayaa liis dhamaystiran oo ah VID/PID-ga aqoonsiga uu u adeegi karo. Oo si qalabkeenu ula shaqeeyo darawalkan, waxaan si fudud ugu daray aqoonsigayga faylka 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 */
};

Dib ayaan u ururiyay darawalkii oo dib ayaan ugu shubay nidaamka.

Oo markan wax walba bilaabay. Iftiinka adapter-ka ayaa shidmay oo qalab cusub ayaa ka soo muuqday liiska isku xirka shabakadaha.

Daawashada is dhexgalka wirelessku waxay tusinaysaa kuwan soo socda:

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

Gunnada kuwa wax akhriya ilaa dhammaadka

Xusuusnow sidaan u idhi dhib malaha xawaaraha ugu badan ee lagu sheegay adabtaradaada?
Marka, Malinka (ka hor inta aan la sii dayn moodelka 4), dhammaan aaladaha (oo ay ku jiraan adabtarada ethernetka) waxay ku fadhiyaan baska USB isku mid ah. Way fiicantahay, sax? Oo sidaas daraaddeed bandwidth ee baska usb waxaa loo qaybiyaa inta u dhaxaysa dhammaan qalabka ku yaal. Marka la cabbirayo xawaaraha labadaba ethernet iyo usb wi-fi (ku xidhan 1 router) labadaba hawada iyo siligaba, waxay ahayd qiyaastii 20Mbit/s.

PS Guud ahaan, hagahan loogu talagalay ururinta darawalka adabtarada gaarka ah ma shaqaynayo oo keliya RPI. Ka dib waxaan ku celiyay miiskayga Linux Mint - wax walbana halkaas ayay ka shaqeeyeen. Kaliya waxaad u baahan tahay inaad soo dejiso faylalka madaxa ee lagama maarmaanka u ah nooca kernel-kaaga si la mid ah.

UPD Dadka aqoonta u leh ayaa soo jeediyay: si aadan ugu tiirsanaan nooca kernel, waxaad u baahan tahay inaad ururiso oo rakibto darawallada adoo isticmaalaya dkms. Akhriska darawalka sidoo kale wuxuu ka kooban yahay doorashadan.

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. Soo jeediyay balastar Iid aaladda waxaa loo aqbalay laanta guud ee kaydka lwfinger/rtl8188eu.

tixraacyada
- RPi USB Wi-Fi Adapters
- Gitbub lwfinger/rtl8188eu
- usb.ids
- rpi-source

Source: www.habr.com