Asenze abangane i-RaspberryPi nge-TP-Link TL-WN727N

Sawubona Habr!

Ngake nganquma ukuxhuma okusajingijolo wami ku-inthanethi emoyeni.

Ngokushesha nje, ngale njongo ngithenge ikhwela le-usb wi-fi enkampanini eyaziwa kakhulu i-TP-Link esitolo esiseduze. Ngizosho zisuka nje ukuthi lokhu akulona uhlobo oluthile lwemojula ye-nano usb, kodwa idivayisi enkulu impela, elingana nosayizi we-flash drive evamile (noma, uma uthanda, ubukhulu bomunwe wenkomba womuntu omdala). Ngaphambi kokuthenga, ngenze ucwaningo oluncane ohlwini lwabakhiqizi bezimpempe abasekelwa i-RPI kanye ne-TP-Link ohlwini (nokho, njengoba kwenzeka kamuva, angizange ngicabangele ubuqili, ngoba udeveli, njengoba sazi. , kumininingwane). Ngakho-ke, indaba ebandayo yezigigaba zami iyaqala; sikwethulela ukunaka kwakho indaba yomphenyi ngezingxenye ezi-3. Kulabo abanentshisekelo, sicela ubheke ikati.

Isihloko Ixhuma i-adaptha ye-WN727N WiFi ku-Ubuntu/Mint Kwangisiza ngokwengxenye, kodwa izinto zokuqala kuqala.

Izimo zenkinga

Inikezwe:

  1. ikhompuyutha yebhodi elilodwa Raspberry Pi 2 B v1.1 - 1 ucezu
  2. usb wi-fi ikhwela WN727N - 1 ucezu
  3. i-pair yezandla ezingagwegwile neze - izingcezu ezi-2
  4. I-Raspbian yakamuva ifakwe njenge-OS (ngokusekelwe ku-Debian 10 Buster)
  5. inguqulo ye-kernel 4.19.73-v7+

Thola: xhuma ku-inthanethi (i-Wi-Fi isatshalaliswa kumzila wakho wasekhaya)

Ngemva kokukhipha i-adaptha, ngafunda imiyalo ngaphakathi:

Ukuhambisana Kwesistimu: Windows 10/8/7/XP (ngisho nesibhakabhaka, ngisho XP) kanye ne-MacOS 10.9-10.13

Hmm, njengenjwayelo, hhayi igama mayelana ne-Linux. Kwakuyi-2k19, futhi abashayeli bekusadingeka bahlanganiswe ngesandla...

Besinabahlanganisi abangu-2, imitapo yolwazi eyizinkulungwane ezingama-75, ama-binary blobs amahlanu, ingxenye yohlu lwabesifazane abanqunu abanophawu kanye nolwandle lonke lwezihloko zazo zonke izilimi nama-markups. Hhayi ukuthi lokhu kuyisethi edingekayo yomsebenzi. Kodwa uma uqala ukuzihlanganisela uhlelo, kuba nzima ukulimisa. Okuwukuphela kwento eyangibangela ukukhathazeka kwaba abashayeli be-wi-fi. Ayikho into engenakuzisiza, enganaki futhi enenkohlakalo njengokwakha abashayeli besuka emthonjeni. Kodwa ngangazi ukuthi ngokuhamba kwesikhathi sizoshintshela kulo doti.

Ngokuvamile, njengoba wazi, ukudlala nge-usb wi-fi ku-Linux kuyinto kubuhlungu futhi akunambitheki ngandlela-thile (njenge-sushi yaseRussia).

Ibhokisi liphinde libe ne-CD enabashayeli. Ngaphandle kwethemba eliningi ngibheka okukuyo - nakanjani abazange bakunake. Ukusesha nge-inthanethi kungilethe kuwebhusayithi yomkhiqizi, kodwa kukhona umshayeli we-Linux lapho kuphela wokubuyekeza idivayisi v4, futhi ezingalweni zami kwakukhona v5.21. Futhi ngaphandle kwalokho, ngezinguqulo ze-kernel ezindala kakhulu 2.6-3.16. Ngidunyazwe ukwehluleka ekuqaleni, ngase ngivele ngacabanga ukuthi kufanele ngabe ngithathe i-TL-WN727N (ibiza kancane futhi ingakwazi ukuphatha i-300Mbps ngokumelene ne-150 yami, kodwa njengoba kwavela, lokhu akunandaba nhlobo. ku-raspberry, lokhu kuzobhalwa kamuva). Kodwa into ebaluleke kakhulu ukuthi abashayeli bayo sebevele bekhona futhi bavele bafakwe njengephakheji i-firmware-ralink. Ngokuvamile ungabuka isibuyekezo sedivayisi emzimbeni wedivayisi kusitikha esiseduze nenombolo yomkhiqizo.

Ukuqhubeka nokuvakashela izinkundla ezahlukene akulethanga okuhle okungako. Ngokusobala akekho ngaphambi kwami ​​oke wazama ukuxhuma i-adaptha enjalo kuLinux. Hmm, nginenhlanhla njengendoda egwilize.

Nakuba, cha, ngiqamba amanga, ukuvakashela izinkundla (ikakhulukazi ezesiNgisi) nakho kwathela izithelo, kwezinye izihloko kukhulunywe ngoMnuz lwfinger, odume ngokubhala inqwaba yabashayeli be-adaptha ye-Wi-Fi. . Inqolobane yakhe ye-git isekupheleni kwesihloko kuzixhumanisi. Futhi isifundo sesibili engisifundile ukuthi udinga ukuhlonza idivayisi yakho ukuze uqonde ukuthi yimuphi umshayeli ongayifanelekela.

Ingxenye 1: I-Bourne Identity

Lapho idivayisi ixhunywa ethekwini, vele, ayikho i-LED ekhanyisiwe. Futhi ngokujwayelekile akucaci nganoma iyiphi indlela ukuthi kukhona okusebenzayo noma cha.

Okokuqala, ukuthola ukuthi i-kernel iyayibona yini idivayisi yethu, ngibheka ku-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

Kuvele ukuthi iyabona, futhi kucace ngisho nokuthi kukhona i-Realtek chip kanye ne-VID/PID yedivayisi ngokwayo ebhasini le-usb.

Asiqhubeke sibheke lsusb, futhi nakhu okunye ukwehluleka kusilindele

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

Isistimu ayazi ukuthi iluhlobo luni lwedivayisi, futhi ikhombisa ngehlazo indawo engenalutho esikhundleni segama (yize umthengisi=2357 ngokuqinisekile kuyi-TP-Link).

Kulesi sigaba, umfundi othanda ukwazi cishe usebonile okuthile okuthakazelisayo, kodwa sizokushiya kuze kube yisikhathi sethu.

Ukucwaninga inkinga yamagama angenalutho kungiholele kusayithi elinezihlonzi, lapho kufakwa khona ulwazi nge-VID/PID eyaziwayo. U-2357:0111 wethu ubengekho. Njengoba kwavela kamuva, uhlelo lokusebenza lsusb isebenzisa ifayela /usr/share/misc/usb.ids, okuwuhlu olufanayo lwama-ID asuka kule sayithi. Ngobuhle besibonisi, ngimane ngengeze imigqa yomthengisi we-TP-Link ohlelweni lwami.

2357  TP-Link
        0111  TL-WN727N v5.21

Hhayi-ke, silungise isibonisi ohlwini lwamadivayisi, kodwa lokhu akuzange kusisondeze isinyathelo esisodwa ekukhetheni umshayeli. Ukuze ukhethe umshayeli, udinga ukwazi ukuthi iphimbo lakho lenziwa ngalo. Imizamo elandelayo engaphumelelanga yokuthola lokhu ku-inthanethi ayizange iholele kunoma yini enhle. Ngihlome ngesikrudrayiva esicijile esincanyana, ngisusa ngokucophelela ikepisi ye-adaptha futhi ingqondo enonya kaMalume uLiao ibonakala kubo bonke ubunqunu bayo obumsulwa. Ngaphansi kwengilazi yokukhulisa ungabona igama le-chip - I-RTL8188EUS. Lokhu sekuvele kuhle. Kwezinye izinkundla ngabona okuthunyelwe ukuthi umshayeli walowo mnumzane u-lwfinger uyifanelekela kahle le chip (yize ebhala kuphela nge-RTL8188EU).

Ingxenye 2: I-Bourne Supremacy

Ngilanda imithombo yomshayeli ku-Git.

Isikhathi sokufaka kabusha i-Windows futhi wenze lokho abasebenzisi be-Linux abavame ukuhlotshaniswa nakho - ukuhlanganisa okuthile okuvela kwezinye izinhlobo. Ukuhlanganisa abashayeli, njengoba kuvela, kuhluke kancane ekuhlanganiseni izinhlelo:

make
sudo make install

kodwa ukuze sihlanganise amamojula e-kernel sidinga amafayela ekhanda le-kernel enguqulweni yethu ethile.

Kukhona iphakheji endaweni yokugcina isitoko raspberrypi-kernel-izihloko, kodwa iqukethe inguqulo ye-kernel yamafayela 4.19.66-v7l+, futhi lokho akusifanele. Kodwa ukuze uthole izihloko zenguqulo edingekayo, njengoba kwavela, kukhona ithuluzi elilula umthombo we-rpi (isixhumanisi ekugcineni ku-Github), ongalanda ngazo izihloko ezidingekayo. Sihlanganisa inqolobane, senze iskripthi sisebenziseke, bese sisisebenzisa. Ukwethulwa kokuqala kwehluleka ngephutha - asikho isisetshenziswa bc. Ngenhlanhla, isendaweni yokugcina futhi sivele siyifake.

sudo apt-get install bc

Ngemuva kwalokhu, ukuqala kabusha nokulanda izihloko (bese ukusetha okuthile, angikhumbuli manje) kuthatha isikhathi futhi ungahlala esihlalweni sakho, iWindows isibe ngcono kukho konke ukubonakaliswa kwayo.

Ngemuva kokuthi zonke izihloko sezilandiwe, hlola ukuthi uhla lwemibhalo luyavela /lib/modules/4.19.73-v7+ futhi kuyo i-symlink ikhomba indawo lapho amafayela alandiwe atholakala khona (kimi ngu/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

Isigaba sokulungiselela sesiphelile, ungaqala ukuhlanganisa. Ukuhlanganisa amamojula futhi kuthatha isikhathi, i-Raspberry ayisona isilo esisheshayo (ine-32bit 900Mhz Cortex ARM v7).
Ngakho konke kuhlanganiswe. Sifaka umshayeli esinyathelweni sesi-2 (yenza ukufaka), kuyilapho sikopisha amanye amafayela e-firmware adingekayo ukuze umshayeli asebenze:

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

Ingxenye 3. I-Bourne Ultimatum

Ngixhuma impempe ethekwini futhi... akukho okwenzekayo. Ingabe konke kwakuyize?

Ngiqala ukufunda amafayela ngaphakathi kwephrojekthi futhi kwenye yazo ngithola ukuthi inkinga yayiyini: umshayeli ucacisa uhlu oluphelele lwezihlonzi ze-VID/PID ezingazisebenzisa. Futhi ukuze idivayisi yethu isebenze nalo mshayeli, ngimane ngengeze i-id yami efayeleni 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 */
};

Ngihlanganise kabusha umshayeli futhi ngayifaka kabusha kusistimu.

Futhi kulokhu konke kwaqala. Ukukhanya kwe-adaptha kwakhanya futhi idivayisi entsha yavela ohlwini lwezokuxhumana zenethiwekhi.

Ukubuka ukuxhumana okungenantambo kukhombisa okulandelayo:

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

Ibhonasi kulabo abafunda kuze kube sekugcineni

Khumbula ukuthi ngasho kanjani ukuthi akunandaba ukuthi yisiphi isivinini esikhulu esishiwo ku-adaptha yakho?
Ngakho, kuMalinka (ngaphambi kokukhishwa kwemodeli 4), wonke amadivayisi (kuhlanganise ne-adaptha ye-ethernet) ahlala ebhasini elifanayo le-usb. Kuhle, akunjalo? Ngakho-ke umkhawulokudonsa webhasi le-usb uhlukaniswe phakathi kwawo wonke amadivaysi kuwo. Lapho ukala isivinini nge-ethernet nange-usb wi-fi (exhunywe kumzila ongu-1) kokubili ngomoya nangentambo, bekuku-20Mbit/s.

P.S. Ngokuvamile, lo mhlahlandlela wokuhlanganisa umshayeli wale adaptha ethile awusebenzi ku-RPI kuphela. Ngabe sengiyiphinda kudeskithophu yami ngeLinux Mint - yonke into yasebenza lapho. Udinga nje ukulanda amafayela wekhanda adingekayo wenguqulo yakho ye-kernel ngendlela efanayo.

I-UPD. Abantu abanolwazi basikisela: ukuze unganciki enguqulweni ye-kernel, udinga ukuqoqa futhi ufake abashayeli usebenzisa ama-dkms. I-readme yomshayeli nayo iqukethe le nketho.

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. Okuhlongozwayo i-patch ku-id yedivayisi yamukelwe egatsheni elivamile le-lwfinger/rtl8188eu repository.

izithenjwa
- I-RPi USB Wi-Fi Adapter
- I-Gitbub lwfinger/rtl8188eu
- usb.ids
- umthombo we-rpi

Source: www.habr.com