Déanaimis cairde RaspberryPi le TP-Link TL-WN727N

Hey Habr!

Chinn mé uair amháin ar mo sú craobh a nascadh leis an Idirlíon ar an aer.

Ní túisce a dúradh ná a rinneadh, chun na críche seo cheannaigh mé feadóg usb wi-fi ón gcuideachta aitheanta TP-Link ón siopa is gaire. Déarfaidh mé ar an bpointe boise nach modúl nana usb de chineál éigin é seo, ach gléas sách mór, thart ar mhéid tiomántán splanc rialta (nó, más mian leat, méid corrmhéarr fear fásta). Roimh a cheannach, rinne mé beagán taighde ar liosta na monaróirí feadóg tacaithe le haghaidh RPI agus bhí TP-Link ar an liosta (áfach, mar a d'éirigh sé amach níos déanaí, níor chuir mé san áireamh na subtleties, mar gheall ar an diabhal, mar is eol dúinn. , atá sna sonraí). Mar sin, cuirtear tús le scéal fuar mo chuid eachtraí; cuirimid scéal bleachtaireachta i 3 chuid i láthair d’aird. Dóibh siúd a bhfuil suim acu, déan tagairt do cat.

Airteagal An cuibheoir wifi WN727N a nascadh le Ubuntu/Mint Chuidigh sé liom go páirteach, ach rudaí ar dtús ar dtús.

Coinníollacha na faidhbe

Mar gheall ar:

  1. ríomhaire boird singil Raspberry Pi 2 B v1.1 – 1 phíosa
  2. feadóg wi-fi usb WN727N - 1 píosa
  3. péire lámha nach bhfuil go leor cam - 2 phíosa
  4. Tá an Raspbian is déanaí suiteáilte mar an OS (bunaithe ar Debian 10 Buster)
  5. leagan eithne 4.19.73-v7+

Aimsigh: ceangail leis an Idirlíon (dáiltear Wi-Fi ó do ródaire baile)

Tar éis an adapter a dhíphacáil, léigh mé na treoracha taobh istigh:

Comhoiriúnacht an Chórais: Windows 10/8/7/XP (fiú an spéir, fiú XP) agus MacOS 10.9-10.13

Hmm, mar is gnách, ní focal faoi Linux. 2k19 a bhí ann, agus bhí gá fós leis na tiománaithe a chur le chéile de láimh ...

Bhí 2 tiomsaitheoir againn linn, 75 míle leabharlann, cúig bhloba dhénártha, leathréimse de mhná nocht le lógó agus lánfharraige de cheanntásca gach teanga agus marcála. Ní hé gur sraith riachtanach é seo don phost. Ach nuair a thosaíonn tú ar chóras a chur le chéile duit féin, bíonn sé deacair stop a chur leis. Ba é an t-aon rud a chuir imní orm ná na tiománaithe wi-fi. Níl rud ar bith níos neamhchabhrach, mífhreagrach agus truaillithe ná tiománaithe a thógáil ón bhfoinse. Ach bhí a fhios agam go n-athrófaí go dtí an bruscar seo luath nó mall.

Go ginearálta, mar is eol duit, tá fiddling le usb wi-fi ar Linux pianmhar agus beagán gan blas (cosúil le sushi Rúisis).

Tá CD le tiománaithe sa bhosca freisin. Gan mórán dóchais breathnaím ar a bhfuil air - is cinnte nár thug siad aire dó. Thug cuardach Idirlín mé chuig suíomh Gréasáin an mhonaróra, ach níl tiománaí Linux ann ach le haghaidh athbhreithniú gléas v4, agus i mo lámha a bhí v5.21. Agus seachas, le haghaidh leaganacha eithne an-sean 2.6-3.16. Ar mo dhíspreagadh mar gheall ar an teip ag an tús, shíl mé cheana féin gur cheart dom an TL-WN727N a ghlacadh (tá sé beagán níos costasaí agus is féidir liom 300Mbps i gcomparáid le 150 a láimhseáil domsa, ach mar a d'éirigh sé amach, is cuma leis seo ar chor ar bith. an sú craobh, scríobhfar faoi seo níos déanaí). Ach is é an rud is tábhachtaí ná go bhfuil tiománaithe ann cheana féin agus go bhfuil siad suiteáilte go simplí mar phacáiste Firmware-ralink. De ghnáth is féidir leat athbhreithniú an ghléis ar chorp an ghléis a fheiceáil ar ghreamán in aice leis an tsraithuimhir.

Ní raibh mórán maitheasa ag baint le tuilleadh googling agus cuairt a thabhairt ar fhóraim éagsúla. Is cosúil nach ndearna duine ar bith romham iarracht a leithéid de oiriúntóir a nascadh le Linux. Hmm, tá mé chomh t-ádh le fear báite.

Cé, ní hea, tá mé ag luí, thug cuairt ar fhóraim (fóraim Bhéarla den chuid is mó) toradh freisin; i roinnt topaicí luadh an tUasal lwfinger áirithe, a bhfuil cáil air as roinnt tiománaithe a scríobh le haghaidh oiriúntóirí Wi-Fi. . Tá a stór git ag deireadh an ailt sna naisc. Agus is é an dara ceacht a d'fhoghlaim mé ná go gcaithfidh tú do ghléas a aithint chun a thuiscint cén tiománaí a d'fhéadfadh a bheith oiriúnach dó.

Cuid 1: An Féiniúlacht Bourne

Nuair a bhí an gléas plugáilte isteach sa phort, ar ndóigh, níor lasadh aon stiúir. Agus go ginearálta níl sé soiléir ar bhealach ar bith an n-oibríonn nó nach n-oibríonn rud éigin.

Ar an gcéad dul síos, chun a fháil amach an bhfeiceann an eithne ár ngléas, táim i 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

D'éirigh sé amach go bhfeiceann sé, agus tá sé soiléir fiú go bhfuil sliseanna Realtek agus VID / PID an fheiste féin ar an mbus usb.

A ligean ar dul níos faide agus breathnú lsusb, agus anseo tá teip eile ag fanacht linn

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

Níl a fhios ag an gcóras cén cineál feiste atá ann, agus taispeánann sé spás folamh in ionad an ainm (cé go bhfuil díoltóir = 2357 cinnte TP-Link).

Ag an gcéim seo, is dócha gur thug an léitheoir fiosrach faoi deara cheana féin rud éigin suimiúil, ach fágfaimid é go dtí ár gcuid ama.

Mar gheall ar thaighde a dhéanamh ar fhadhb na n-ainmneacha folmha tháinig mé chuig suíomh le haitheantóirí, áit a gcuirtear faisnéis ar VID/PID aitheanta isteach. Ní raibh ár 2357:0111 ann. Mar a tharla sé amach níos déanaí, an áirgiúlacht lsusb úsáideann comhad /usr/share/misc/usb.ids, atá ar an liosta céanna IDs ón suíomh seo. Ar mhaithe le háilleacht an taispeántais, níor chuir mé ach línte leis an díoltóir TP-Link i mo chóras.

2357  TP-Link
        0111  TL-WN727N v5.21

Bhuel, cheartaigh muid an taispeáint sa liosta feistí, ach níor thug sé céim amháin níos gaire dúinn maidir le tiománaí a roghnú. Chun tiománaí a roghnú, ní mór duit fios a bheith agat cén tslis ar a ndéantar do fheadóg. Ní raibh aon rud maith mar thoradh ar na chéad iarrachtaí nár éirigh leo é seo a fháil amach ar an Idirlíon. Armtha le scriúire caol sliotáin, bainim an caipín cuibhreora go cúramach amach agus tá smaoineamh fí Uncail Liao le feiceáil ina nocht ghlan. Faoi ghloine formhéadúcháin is féidir leat ainm na sliseanna a fheiceáil - RTL8188EUS. Tá sé seo go maith cheana féin. Ar roinnt fóraim chonaic mé postálacha go bhfuil an tiománaí ón duine uasal céanna lwfinger oiriúnach go maith don sliseanna seo (cé nach scríobhann sé ach faoi RTL8188EU).

Cuid 2: The Bourne Supremacy

Íoslódáil mé na foinsí tiománaí ó Git.

Tá sé in am Windows a athshuiteáil agus an rud a bhfuil baint ag úsáideoirí Linux leis de ghnáth a dhéanamh - rud éigin de shaghas éigin a chur le chéile. Is beag difríocht idir tiomsú tiománaithe, mar a tharla, agus cláir a thiomsú:

make
sudo make install

ach chun modúil eithne a thiomsú ní mór dúinn na comhaid ceanntásc eithne dár leagan sonrach.

Tá pacáiste sa stór stoic ceanntásca raspberrypi-eithne, ach tá leagan eithne na gcomhad ann 4.19.66- v7l+, agus ní oireann sin dúinn. Ach chun ceanntásca an leagan riachtanach a fháil, mar a d'éirigh sé amach, tá uirlis áisiúil ann foinse rpi (nasc ag an deireadh ar Github), leis ar féidir leat na ceanntásca riachtanacha a íoslódáil. Déanaimid an stór a chlónáil, déanaimid an script inrite, agus rithimid é. Theipeann ar an gcéad seoladh le earráid - níl aon áirgiúlacht ann bc. Go fortunately, tá sé sa stór agus ní dhéanaimid ach é a shuiteáil.

sudo apt-get install bc

Tar éis seo, tógann sé roinnt ama chun na ceanntásca a atosú agus a íoslódáil (agus ansin rud éigin a shocrú, ní cuimhin liom anois) agus is féidir leat suí siar i do chathaoir, tá Windows tar éis éirí níos fearr i ngach léiriú.

Tar éis na ceanntásca go léir a íoslódáil, seiceáil go bhfuil an chuma ar an eolaire /lib/modules/4.19.73-v7+ agus sa nasc seo díríonn sé ar an áit a bhfuil na comhaid íoslódála suite (is é /home/pi/linux domsa é):

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

Tá an chéim ullmhúcháin críochnaithe, is féidir leat tús a chur le tionól. Tógann sé roinnt ama chun na modúil a chur le chéile arís, ní beithíoch tapa é an Sú craobh (tá Cortex ARM v32 900bit 7Mhz aige).
Mar sin, gach rud le chéile. Suiteáilimid an tiománaí sa 2ú céim (a shuiteáil), agus muid ag cóipeáil níos mó comhaid firmware atá riachtanach chun go n-oibreoidh an tiománaí:

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

Cuid 3. Ultimatum Bourne

Cuirim an fheadóg isteach sa phort agus... ní tharlaíonn tada. An raibh sé ar fad do rud ar bith?

Tosaím ag déanamh staidéir ar na comhaid taobh istigh den tionscadal agus i gceann acu feicim cad é an fhadhb a bhí ann: sonraíonn an tiománaí liosta iomlán na n-aitheantóirí VID/PID ar féidir leis freastal orthu. Agus chun go n-oibreodh ár ngléas leis an tiománaí seo, níor chuir mé ach m'aitheantas leis an gcomhad 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 */
};

D'athchruinnigh mé an tiománaí agus d'athshuiteáil mé ar an gcóras é.

Agus an uair seo thosaigh gach rud. Las an solas ar an adapter agus bhí feiste nua le feiceáil i liosta na gcomhéadan líonra.

Ag féachaint ar chomhéadain gan sreang taispeánann sé seo a leanas:

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

Bónas dóibh siúd a léann go dtí an deireadh

Cuimhnigh mar a dúirt mé nach cuma cén uasluas atá luaite ar d’oiriúntóir?
Mar sin, ar Malinka (roimh scaoileadh múnla 4), suíonn gach feiste (lena n-áirítear an t-adapter ethernet) ar an mbus usb céanna. Go hiontach, ceart? Agus dá bhrí sin roinntear bandaleithead an bhus usb idir gach feiste air. Agus an luas á thomhas trí ethernet agus trí usb wi-fi (ceangailte le ródaire 1) le haer agus le sreang, bhí sé thart ar 20Mbit/s.

P.S. Go ginearálta, tá an treoir seo chun tiománaí a thiomsú don oiriúntóir áirithe seo bailí, ní hamháin do RPI. Ansin rinne mé arís é ar mo dheasc le Linux Mint - d'oibrigh gach rud ann freisin. Ní mór duit ach na comhaid ceanntásc riachtanacha a íoslódáil le haghaidh do leagan eithne ar an mbealach céanna.

UPD. Mhol daoine eolach: ionas nach mbraitheann tú ar an leagan eithne, ní mór duit tiománaithe a bhailiú agus a shuiteáil ag baint úsáide as dkms. Tá an rogha seo in readme an tiománaí freisin.

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. Beartaithe paiste glacadh le haitheantas feiste isteach sa bhrainse príomhshrutha den stór lwfinger/rtl8188eu.

tagairtí
- Adapters RPi USB Wi-Fi
- Gitbub lufinger/rtl8188eu
- usb.ids
- foinse rpi

Foinse: will.com