Ngatiitei shamwari RaspberryPi neTP-Link TL-WN727N

Hei Habr!

Ndakambofunga kubatanidza raspberry yangu kuInternet pamusoro pemhepo.

Pasina nguva ndataura, nekuda kweizvi ndakatenga usb wi-fi muridzo kubva kune inozivikanwa kambani TP-Link kubva kuchitoro chiri pedyo. Ini ndichataura ipapo ipapo kuti iyi haisi imwe mhando ye nano usb module, asi yakakura kwazvo mudziyo, inosvika saizi yenguva dzose flash drive (kana, kana uchida, saizi yechigunwe chemurume mukuru). Ndisati ndatenga, ndakaita tsvakiridzo shoma pane rondedzero yevanotsigirwa vanogadzira muridzo yeRPI uye TP-Link yaive pane iyo rondedzero (zvisinei, sezvazvakazoitika gare gare, ini handina kurangarira hunyengeri, nekuti dhiabhori, sezvatinoziva. , iri mune zvakadzama). Saka, iyo inotonhora nyaya yekusagadzikana kwangu inotanga; isu tinopa kune iwe kutarisisa nyaya yemutikitivha muzvikamu zvitatu. Kune avo vanofarira, ndapota tarisa kune katsi.

Chirevo Kubatanidza iyo WN727N WiFi adapta kuUbuntu/Mint Zvakandibatsira zvishoma, asi zvinhu zvokutanga pakutanga.

Mamiriro edambudziko

Zvapiwa:

  1. single board komputa Raspberry Pi 2 B v1.1 - 1 chidimbu
  2. usb wi-fi muridzo WN727N - 1 chidimbu
  3. maviri asina kunyatsotsveyama maoko - 2 zvidimbu
  4. Iyo yazvino Raspbian yakaiswa seOS (yakavakirwa paDebian 10 Buster)
  5. kernel shanduro 4.19.73-v7+

Tsvaga: batanidza kuInternet (Wi-Fi inogoverwa kubva kumba kwako router)

Mushure mekuburitsa adapta, ndakaverenga rairo mukati:

Kuenderana KweSistimu: Windows 10/8/7/XP (kunyangwe denga, kunyange XP) uye MacOS 10.9-10.13

Hmm, semazuva ese, kwete izwi nezve Linux. Yakanga iri 2k19, uye vatyairi vachiri kuda kuunganidzwa nemaoko ...

Taive nesu 2 vagadziri, zviuru makumi manomwe neshanu emaraibhurari, mashanu mabhanari mabhurobhu, hafu yevakadzi vasina kupfeka vane chiratidzo uye gungwa rose remisoro yemitauro yese uye markups. Kwete kuti ichi chinodiwa seti yebasa. Asi kana wangotanga kuzviunganidzira system, zvinova zvakaoma kumira. Chinhu chimwe chete chaindinetsa ndechekuti madhiraivha eWi-Fi. Hapana chimwe chisingabatsiri, chisingatarisirwi uye chine huori sekuvaka vatyairi kubva kunobva. Asi ndaiziva kuti pasina nguva taizochinja kumarara aya.

Kazhinji, sezvamunoziva, kutamba ne usb wi-fi paLinux ndiko zvinorwadza uye zvisinganakidze (kufanana neRussia sushi).

Bhokisi racho rinewo CD rine vatyairi. Pasina tariro yakawanda ndinotarisa zviri pazviri - ivo havana kuzvitarisira. Kutsvaga kweInternet kwakandiunza kune webhusaiti yemugadziri, asi kune mutyairi weLinux ipapo chete yekudzokorora mudziyo v4, uye mumaoko angu makanga mune v5.21. Uye kunze, kune yekare kernel shanduro 2.6-3.16. Ndakaodzwa mwoyo nekutadza pakutanga, ndakatofunga kuti ndaifanira kunge ndatora TL-WN727N (inodhura zvishoma uye inogona kubata 300Mbps inopesana ne150 yangu, asi sezvazvakazoitika, izvi hazvina basa zvachose. kune raspberry, izvi zvichanyorwa gare gare). Asi chinonyanya kukosha ndechekuti madhiraivha ayo atovepo uye anongoiswa sepakeji firmware-ralink. Iwe unogona kazhinji kuona gadziriso yemudziyo pamutumbi wemudziyo pachinamira padivi peiyo serial nhamba.

Kuwedzera googling nekushanyira maforamu akasiyana hakuna kuunza zvakawanda zvakanaka. Sezviri pachena hapana munhu pamberi pangu akamboedza kubatanidza adapta yakadaro kuLinux. Hmm, ndine rombo rakanaka semurume akanyura.

Nyangwe, kwete, ndiri kunyepa, kushanya kumaforamu (kunyanya echiRungu) kwakaberekawo zvibereko; mune dzimwe misoro paitaurwa nezvemumwe Mr. lwfinger, ane mukurumbira nekunyora chiverengero chevatyairi veWi-Fi adapter. . Yake git repository iri kumagumo echinyorwa mune zvinongedzo. Uye chidzidzo chechipiri chandakadzidza ndechekuti unofanirwa kuziva mudziyo wako kuti unzwisise kuti ndeupi mutyairi angave akakodzera pairi.

Chikamu 1: The Bourne Identity

Apo mudziyo wacho wakabairirwa muchiteshi, hongu, hapana LED yakabatidza. Uye kazhinji hazvisi pachena nenzira ipi zvayo kana chimwe chinhu chinoshanda kana kwete.

Chekutanga pane zvese, kuti ndione kana kernel inoona mudziyo wedu, ndinotarisa mu 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

Zvakazoitika kuti inoona, uye zvakatojeka kuti kune chip Realtek uye VID / PID yemudziyo pachayo pabhasi yebhasi.

Handei mberi titarise lasyb, uye pano kumwe kukundikana kwakatimirira

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

Iyo sisitimu haizive kuti rudzii rwechishandiso, uye zvinonyadzisa inoratidza nzvimbo isina chinhu panzvimbo yezita (kunyangwe mutengesi = 2357 iri TP-Link).

Panguva ino, muverengi anobvunza angangodaro akatoona chimwe chinhu chinonakidza, asi isu tichachisiya kusvika panguva yedu.

Kutsvakurudza dambudziko remazita asina chinhu kwakanditungamirira kune saiti ine zviziviso, uko ruzivo rweVID/PID inozivikanwa inopindwa. Yedu 2357:0111 yanga isipo. Sezvakazoitika gare gare, utility lasyb inoshandisa file /usr/share/misc/usb.ids, inova rondedzero yakafanana yemaID kubva pane ino saiti. Nekunaka kwechiratidziro, ini ndakangowedzera mitsara yemutengesi TP-Link mune yangu system.

2357  TP-Link
        0111  TL-WN727N v5.21

Zvakanaka, isu takagadzirisa kuratidzwa mune runyorwa rwemidziyo, asi hazvina kutiunza nhanho imwe padyo nekusarudza mutyairi. Kuti usarudze mutyairi, unofanirwa kuziva kuti chip chipi chako chinogadzirwa pairi. Kuedza kwakatevera kusina kubudirira kutsvaga izvi paInternet hakuna kutungamira kune chero chinhu chakanaka. Ndakashongedzerwa nesikurudhiraivha yakatetepa, ndinonyatso bvisa chivharo cheadapter uye hutsinye hwaSekuru Liao hunoonekwa mukushama kwavo kwese. Pasi pegirazi rinokudza iwe unogona kuona zita reiyo chip - RTL8188EUS. Izvi zvatova zvakanaka. Pane mamwe maforamu ndakaona matsamba ekuti mutyairi anobva kune iyeye muchinda lwfinger akanyatsokodzera iyi chip (kunyangwe achingonyora nezveRTL8188EU).

Chikamu 2: The Bourne Supremacy

Ini ndinorodha zvitubu zvemutyairi kubva kuGit.

Yave nguva yekudzosera Windows uye kuita izvo vashandisi veLinux vanowanzo sangana nazvo - kuunganidza chimwe chinhu kubva kune mamwe marudzi. Kuunganidza vatyairi, sezvazvinozoitika, kunosiyana zvishoma kubva pakugadzira zvirongwa:

make
sudo make install

asi kuunganidza kernel modules tinoda iyo kernel musoro mafaera kune yedu chaiyo vhezheni.

Pane pasuru mune stock repository raspberrypi-kernel-headers, asi ine kernel vhezheni yemafaira 4.19.66-v7l+, uye izvozvo hazvitikodzeri. Asi kuti uwane misoro yeshanduro inodiwa, sezvazvakazoitika, pane chishandiso chiri nyore rpi-source (link kumagumo paGithub), iyo yaunogona kurodha inodiwa misoro. Isu tinogadzirisa repository, ita kuti script iite, uye tiite. Kutanga kwekutanga kunokundikana nekukanganisa - hapana chinobatsira bc. Neraki, iri mune repository uye isu tinongoiisa.

sudo apt-get install bc

Mushure meizvi, kutangazve uye kurodha misoro (uyezve kuseta chimwe chinhu, ini handichayeuke izvozvi) zvinotora nguva uye iwe unogona kugara kumashure pachigaro chako, Windows yave nani mukuratidzwa kwayo kwese.

Mushure mekunge misoro yese yatorwa, tarisa kuti dhairekitori rinoonekwa /lib/modules/4.19.73-v7+ uye mairi symlink inonongedza kunzvimbo uko mafaera akatorwa ari (kwandiri ndeye / kumba/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

Nhanho yekugadzirira yapera, unogona kutanga kuungana. Kuunganidza ma modules zvakare kunotora nguva, iyo Raspberry haisi chikara chinomhanya (ine 32bit 900Mhz Cortex ARM v7).
Saka zvese zvakasanganiswa. Isu tinoisa mutyairi mudanho rechipiri (ita kuisa), ukuwo tichikopa mamwe mafaera e firmware anodiwa kuti mutyairi ashande:

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

Chikamu 3. The Bourne Ultimatum

Ndinovhara muridzo muchiteshi uye ... hapana chinoitika. Kwaiva pasina here?

Ini ndinotanga kudzidza mafaera mukati mepurojekiti uye mune imwe yadzo ndinoona kuti dambudziko raive rei: mutyairi anotsanangura runyoro rwakakwana rweVID/PID identifiers iyo inogona kushanda. Uye kuitira kuti mudziyo wedu ushande nemutyairi uyu, ndakangowedzera id yangu kufaira 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 */
};

I recompiled driver and reinstall it on the system.

Uye panguva ino zvose zvakatanga. Chiedza paadapter chakavheneka uye mudziyo mutsva wakaonekwa mune rondedzero yetiweki interfaces.

Kuona wireless interfaces kunoratidza zvinotevera:

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

Bonus kune avo vanoverenga kusvika kumagumo

Rangarira matauriro andakaita kuti hazvina basa kuti imhanho ipi inotaurwa pane adapta yako?
Saka, paMalinka (kusati kwaburitswa modhi 4), zvese zvishandiso (kusanganisira iyo ethernet adapta) zvinogara pane imwechete usb bhasi. Zvakanaka, handizvo? Uye saka bandwidth yebhasi yeusb yakakamurwa pakati pemidziyo yese pairi. Pakuyera kumhanya zvese ne ethernet uye kuburikidza ne usb wi-fi (yakabatana kune 1 router) zvese nemhepo uye newaya, yaisvika 20Mbit/s.

PS Kazhinji, gwara iri rekunyora mutyairi weiyi adapta rinoshanda kwete reRPI chete. Ini ndakabva ndazvidzokorora padesktop yangu neLinux Mint - zvese zvakashanda ipapo. Iwe unongoda kurodha anodiwa emusoro mafaera kune yako kernel vhezheni nenzira imwecheteyo.

UPD. Vanhu vane ruzivo vakakurudzira: kuti urege kutsamira pane kernel vhezheni, unofanirwa kuunganidza nekuisa vatyairi vachishandisa dkms. Iyo yekuverenga yemutyairi inewo iyi sarudzo.

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. Proposed chigamba yeID yemudziyo yakagamuchirwa mubazi guru relwfinger/rtl8188eu repository.

nezvakanyorwa
- RPi USB Wi-Fi Adapter
- Gitbub lwfinger/rtl8188eu
- usb.ids
- rpi-source

Source: www.habr.com