Jẹ ki a ṣe awọn ọrẹ RaspberryPi pẹlu TP-Link TL-WN727N

Hey Habr!

Mo pinnu ni ẹẹkan lati so rasipibẹri mi pọ si Intanẹẹti lori afẹfẹ.

Ko pẹ diẹ ti a sọ ju ti ṣe, fun idi eyi Mo ra wi-fi wi-fi USB kan lati ile-iṣẹ TP-Link ti o mọ daradara lati ile itaja to sunmọ. Emi yoo sọ lẹsẹkẹsẹ pe eyi kii ṣe diẹ ninu iru module nano usb, ṣugbọn ohun elo nla kan, nipa iwọn kọnputa filasi deede (tabi, ti o ba fẹ, iwọn ika itọka agbalagba agbalagba). Ṣaaju rira, Mo ṣe iwadii kekere kan lori atokọ ti awọn aṣelọpọ súfèé ti o ni atilẹyin fun RPI ati TP-Link wa lori atokọ naa (sibẹsibẹ, bi o ti yipada nigbamii, Emi ko ṣe akiyesi awọn arekereke, nitori eṣu, bi a ti mọ. , jẹ ninu awọn alaye). Nitorinaa, itan tutu ti awọn aiṣedeede mi bẹrẹ; a ṣafihan itan aṣawari kan si akiyesi rẹ ni awọn apakan 3. Fun awon ti o nife, jọwọ tọkasi lati ologbo.

Abala Nsopọ ohun ti nmu badọgba WiFi WN727N si Ubuntu/Mint O ṣe iranlọwọ fun mi ni apakan, ṣugbọn awọn nkan akọkọ ni akọkọ.

Awọn ipo ti iṣoro naa

Fun:

  1. nikan ọkọ kọmputa Rasipibẹri Pi 2 B v1.1 - 1 nkan
  2. usb wi-fi súfèé WN727N - 1 nkan
  3. a bata ti ko oyimbo wiwọ ọwọ - 2 ege
  4. Raspbian tuntun ti fi sori ẹrọ bi OS (da lori Debian 10 Buster)
  5. ekuro version 4.19.73-v7+

Wa: sopọ si Intanẹẹti (Wi-Fi ti pin lati ọdọ olulana ile rẹ)

Lẹhin ṣiṣi ohun ti nmu badọgba, Mo ka awọn itọnisọna inu:

Ibamu eto: Windows 10/8/7 / XP (paapaa ọrun, paapaa XP) ati MacOS 10.9-10.13

Hmm, bi igbagbogbo, kii ṣe ọrọ kan nipa Linux. O jẹ 2k19, ati pe awọn awakọ tun nilo lati pejọ pẹlu ọwọ…

A ni pẹlu wa awọn olupilẹṣẹ 2, awọn ile-ikawe 75, blobs alakomeji marun, idaji awọn obinrin ihoho pẹlu aami kan ati gbogbo okun ti awọn akọle ti gbogbo awọn ede ati awọn ami-ami. Kii ṣe pe eyi jẹ eto pataki fun iṣẹ naa. Ṣugbọn ni kete ti o ba bẹrẹ apejọ eto kan fun ara rẹ, o nira lati da duro. Ohun kan ṣoṣo ti o fa ibakcdun mi ni awọn awakọ fun wi-fi. Ko si ohun ti o siwaju sii ailagbara, irresponsible ati ibaje ju kikọ awakọ lati orisun. Ṣugbọn mo mọ pe laipẹ tabi ya a yoo yipada si idoti yii.

Ni gbogbogbo, bi o ṣe mọ, fifẹ pẹlu wi-fi usb lori Lainos jẹ irora ati ki o ni itumo tasteless (bii sushi Russian).

Apoti naa tun ni CD kan pẹlu awakọ. Laisi ireti pupọ Mo wo kini o wa lori rẹ - dajudaju wọn ko tọju rẹ. Wiwa Intanẹẹti mu mi wa si oju opo wẹẹbu olupese, ṣugbọn awakọ Linux kan wa nibẹ nikan fun atunyẹwo ẹrọ v4, ati ni apá mi wà v5.21. Ati ni afikun, fun awọn ẹya kernel atijọ pupọ 2.6-3.16. Irẹwẹsi nipasẹ ikuna ni ibẹrẹ akọkọ, Mo ti ronu tẹlẹ pe o yẹ ki Emi mu TL-WN727N (o jẹ diẹ gbowolori ati pe o le mu 300Mbps dipo 150 fun mi, ṣugbọn bi o ti yipada, eyi ko ṣe pataki rara. fun rasipibẹri, eyi yoo kọ nipa nigbamii). Ṣugbọn ohun pataki julọ ni pe awọn awakọ fun o ti wa tẹlẹ ati pe a fi sori ẹrọ ni irọrun bi package kan famuwia-ralink. O le nigbagbogbo wo atunyẹwo ẹrọ lori ara ẹrọ lori sitika lẹgbẹẹ nọmba ni tẹlentẹle.

Siwaju googling ati àbẹwò orisirisi apero ko mu Elo dara. Nkqwe ko si ẹnikan ṣaaju ki o to mi ti gbiyanju lati so iru ohun ti nmu badọgba si Linux. Hmm, Mo ni orire bi eniyan ti o rì.

Botilẹjẹpe, rara, Mo parọ, awọn apejọ abẹwo (eyiti o pọ julọ ti ede Gẹẹsi) tun so eso; ni diẹ ninu awọn koko ọrọ kan ti mẹnuba Ọgbẹni lwfinger kan, ti o jẹ olokiki fun kikọ nọmba awakọ fun awọn alamuuṣẹ Wi-Fi . Ibi ipamọ git rẹ wa ni ipari nkan naa ni awọn ọna asopọ. Ati ẹkọ keji ti mo kọ ni pe o nilo lati ṣe idanimọ ẹrọ rẹ lati ni oye iru awakọ wo ni o yẹ fun.

Apá 1: The Bourne Identity

Nigbati ẹrọ naa ti ṣafọ sinu ibudo, dajudaju, ko si LED ti o tan. Ati ni gbogbogbo ko ṣe kedere ni eyikeyi ọna boya nkan kan ṣiṣẹ tabi rara.

Ni akọkọ, lati wa boya kernel wo ẹrọ wa, Mo wo ni 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

O wa ni pe o rii, ati pe o han gbangba pe chirún Realtek kan wa ati VID/PID ti ẹrọ funrararẹ lori ọkọ akero USB.

Jẹ ki a lọ siwaju ki a wo lsusb, ati nibi ikuna miiran n duro de wa

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

Eto naa ko mọ iru ẹrọ ti o jẹ, ati fifẹ fihan aaye ṣofo dipo orukọ (botilẹjẹpe ataja = 2357 jẹ pato TP-Link).

Ni ipele yii, oluka oniwadii ti ṣe akiyesi tẹlẹ nkan ti o nifẹ, ṣugbọn a yoo fi silẹ titi di akoko wa.

Iwadi iṣoro ti awọn orukọ ofo mu mi lọ si aaye kan pẹlu awọn idamọ, nibiti alaye lori VID/PID ti a mọ ti wa ni titẹ sii. 2357:0111 wa ko si. Bi o ti wa ni jade nigbamii, awọn IwUlO lsusb nlo faili /usr/share/misc/usb.ids, eyiti o jẹ atokọ kanna ti awọn ID lati aaye yii. Fun ẹwa ti ifihan, Mo ṣafikun awọn laini fun TP-Link ataja ninu eto mi.

2357  TP-Link
        0111  TL-WN727N v5.21

O dara, a ṣe atunṣe ifihan ninu atokọ awọn ẹrọ, ṣugbọn ko mu wa ni igbesẹ kan ti o sunmọ si yiyan awakọ kan. Lati yan awakọ kan, o nilo lati mọ kini ërún ti súfèé rẹ ti ṣe lori. Awọn igbiyanju aṣeyọri ti o tẹle lati wa eyi lori Intanẹẹti ko yorisi ohunkohun ti o dara. Ni ihamọra pẹlu screwdriver tinrin tinrin, Mo farabalẹ yọ fila ohun ti nmu badọgba kuro ati pe ọmọ-ọpọlọ buburu ti Arakunrin Liao han ni gbogbo ihoho mimọ rẹ. Labẹ gilasi titobi o le wo orukọ chirún - RTL8188EUS. Eyi ti dara tẹlẹ. Lori diẹ ninu awọn apejọ Mo rii awọn ifiweranṣẹ pe awakọ lati ọdọ ọkunrin okunrin kanna lwfinger ni o baamu daradara fun chirún yii (paapaa o kọ nipa RTL8188EU nikan).

Apá 2: The Bourne Supremacy

Mo ṣe igbasilẹ awọn orisun awakọ lati Git.

O to akoko lati tun fi Windows sori ẹrọ ati ṣe ohun ti awọn olumulo Linux nigbagbogbo ni nkan ṣe pẹlu - apejọ nkan kan lati awọn iru kan. Npejọpọ awakọ, bi o ti wa ni jade, yatọ diẹ si awọn eto iṣakojọpọ:

make
sudo make install

ṣugbọn lati ṣajọ awọn modulu kernel a nilo awọn faili akọsori ekuro fun ẹya wa pato.

Apopọ kan wa ninu ibi ipamọ ọja raspberrypi-kernel-afori, ṣugbọn o ni ẹya kernel ti awọn faili 4.19.66-v7l +, ati pe iyẹn ko baamu wa. Ṣugbọn lati gba awọn akọle ti ẹya ti a beere, bi o ti wa ni jade, ọpa irọrun wa rpi-orisun (ọna asopọ ni ipari lori Github), pẹlu eyiti o le ṣe igbasilẹ awọn akọle pataki. A oniye ibi ipamọ, ṣe awọn iwe afọwọkọ executable, ati ṣiṣe awọn ti o. Ifilọlẹ akọkọ kuna pẹlu aṣiṣe - ko si ohun elo bc. O da, o wa ninu ibi ipamọ ati pe a kan fi sii.

sudo apt-get install bc

Lẹhin eyi, tun bẹrẹ ati gbigba awọn akọle (ati lẹhinna ṣeto nkan kan, Emi ko ranti bayi) gba akoko diẹ ati pe o le joko ni ijoko rẹ, Windows ti dara julọ ni gbogbo awọn ifihan rẹ.

Lẹhin ti gbogbo awọn akọle ti gba lati ayelujara, ṣayẹwo pe itọsọna naa han /lib/modulu/4.19.73-v7+ ati ninu rẹ ọna asopọ aami tọka si aaye nibiti awọn faili ti a ṣe igbasilẹ wa (fun mi o jẹ /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

Ipele igbaradi ti pari, o le bẹrẹ apejọ. Ṣiṣeto awọn modulu lẹẹkansi gba akoko diẹ, Rasipibẹri kii ṣe ẹranko ti o yara (o ni 32bit 900Mhz Cortex ARM v7).
Nitorina ohun gbogbo ti ṣajọ. A fi awakọ sii ni igbesẹ 2nd (ṣe fifi sori ẹrọ), lakoko ti o tun n daakọ awọn faili famuwia diẹ sii pataki fun awakọ lati ṣiṣẹ:

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

Apá 3. The Bourne Ultimatum

Mo pulọọgi awọn súfèé sinu ibudo ati ... ohunkohun ti o ṣẹlẹ. Ṣe gbogbo rẹ jẹ lasan?

Mo bẹrẹ ikẹkọ awọn faili inu iṣẹ akanṣe ati ninu ọkan ninu wọn Mo rii kini iṣoro naa: awakọ naa ṣalaye atokọ pipe ti awọn idanimọ VID/PID ti o le ṣe iranṣẹ. Ati pe ni ibere fun ẹrọ wa lati ṣiṣẹ pẹlu awakọ yii, Mo kan ṣafikun id mi si faili naa 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 */
};

Mo tun ṣe awakọ naa ati tun fi sii lori eto naa.

Ati ni akoko yii ohun gbogbo bẹrẹ. Imọlẹ lori ohun ti nmu badọgba tan si oke ati ẹrọ tuntun han ninu atokọ ti awọn atọkun nẹtiwọọki.

Wiwo awọn atọkun alailowaya fihan atẹle naa:

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

Ajeseku fun awon ti o ka si opin

Ranti bi mo ṣe sọ pe ko ṣe pataki kini iyara ti o pọju ti a sọ lori ohun ti nmu badọgba rẹ?
Nitorinaa, lori Malinka (ṣaaju idasilẹ ti awoṣe 4), gbogbo awọn ẹrọ (pẹlu ohun ti nmu badọgba ethernet) joko lori ọkọ akero usb kanna. Nla, otun? Ati nitorinaa bandiwidi ti ọkọ akero usb ti pin laarin gbogbo awọn ẹrọ lori rẹ. Nigbati o ba ṣe iwọn iyara mejeeji nipasẹ ethernet ati nipasẹ wi-fi usb (ti a ti sopọ si olulana 1) mejeeji nipasẹ afẹfẹ ati nipasẹ waya, o wa ni ayika 20Mbit/s.

PS Ni gbogbogbo, itọsọna yii fun ikojọpọ awakọ kan fun ohun ti nmu badọgba pato yii wulo kii ṣe fun RPI nikan. Mo tun tun ṣe lori tabili tabili mi pẹlu Mint Linux - ohun gbogbo tun ṣiṣẹ nibẹ paapaa. O kan nilo lati ṣe igbasilẹ awọn faili akọsori pataki fun ẹya ekuro rẹ ni ọna kanna.

UPD. Awọn eniyan ti o ni oye daba: ni ibere ki o má ba dale lori ẹya ekuro, o nilo lati gba ati fi awọn awakọ sii nipa lilo dkms. Awọn readme fun awakọ tun ni aṣayan yi.

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. Dabaa alemo fun id ẹrọ ni a gba sinu ẹka akọkọ ti ibi ipamọ lwfinger/rtl8188eu.

jo
- RPi USB Wi-Fi Adapters
- Gitbub lwfinger/rtl8188eu
- usb.ids
- rpi-orisun

orisun: www.habr.com