Bari mu yi abokai RaspberryPi tare da TP-Link TL-WN727N

Hai Habr!

Na taɓa yanke shawarar haɗa rasberi na zuwa Intanet ta iska.

Ba da jimawa ba sai an yi, saboda wannan dalili na sayi usb wi-fi whistle daga sanannen kamfani TP-Link daga kantin mafi kusa. Zan ce nan da nan cewa wannan ba wani nau'in nano na USB ba ne, amma babban na'ura ne, game da girman faifan filasha na yau da kullun (ko, idan kuna so, girman yatsan babban yatsa). Kafin siyan, na yi ɗan bincike kan jerin masu kera bayanan da ke goyan bayan RPI kuma TP-Link yana cikin jerin (duk da haka, kamar yadda ya fito daga baya, ban yi la'akari da dabarar ba, saboda shaidan, kamar yadda muka sani. , yana cikin cikakken bayani). Don haka, labarin sanyi na ɓarna ya fara, muna gabatar muku da labarin bincike kashi 3. Ga masu sha'awar, da fatan za a koma ga cat.

Mataki na ashirin Haɗa adaftar WN727N WiFi zuwa Ubuntu/Mint Ya taimake ni wani bangare, amma na farko abubuwa farko.

Yanayin matsalar

An ba:

  1. kwamfutar allo guda Rasberi Pi 2 B v1.1 - 1 yanki
  2. usb wi-fi whistle WN727N - 1 yanki
  3. biyu daga waɗanda ba daidai ba karkatacciyar hannaye - guda 2
  4. An shigar da sabuwar Raspbian azaman OS (dangane da Debian 10 Buster)
  5. kernel 4.19.73-v7+

Nemo: haɗi zuwa Intanet (ana rarraba Wi-Fi daga mai ba da hanya tsakanin hanyoyin sadarwa na gida)

Bayan na kwance adaftar, na karanta umarnin ciki:

Daidaituwar tsarin: Windows 10/8/7 / XP (har da sama, har ma da XP) da MacOS 10.9-10.13

Hmm, kamar yadda aka saba, ba kalma ɗaya ba game da Linux. Ya kasance 2k19, kuma har yanzu direbobi suna buƙatar haɗuwa da hannu ...

Muna tare da mu 2 compilers, 75 dubu dakunan karatu, biyar binary blobs, rabin tsararrun mata tsirara tare da tambari da dukan teku na headers na duk harsuna da markups. Ba cewa wannan saitin dole ne don aikin ba. Amma da zarar ka fara harhada tsarin don kanka, zai zama da wuya a daina. Abinda ya dame ni shine direbobin wi-fi. Babu wani abu da ya fi rashin taimako, rashin alhaki da rashawa kamar gina direbobi daga tushe. Amma na san ko ba dade ko ba dade za mu canza zuwa wannan shara.

Gabaɗaya, kamar yadda kuka sani, haɗa haɗin kebul na wi-fi akan Linux shine mai zafi da ɗanɗano mara daɗi (kamar sushi na Rasha).

Akwatin kuma ya ƙunshi CD mai tuƙi. Ba tare da fata mai yawa ba na kalli abin da ke cikinsa - tabbas ba su kula da shi ba. Binciken Intanet ya kawo ni gidan yanar gizon masana'anta, amma akwai direban Linux a wurin don sake fasalin na'urar kawai v4, kuma a hannuna ya kasance v5.21. Kuma banda haka, don tsoffin nau'ikan kwaya 2.6-3.16. Na yi sanyin gwiwa da gazawar a farkon farkon, na riga na yi tunanin cewa yakamata in dauki TL-WN727N (yana da ɗan tsada kuma yana iya ɗaukar 300Mbps akan 150 nawa, amma kamar yadda ya bayyana, wannan ba komai bane. ga rasberi, wannan za a rubuta game da baya). Amma abu mafi mahimmanci shine cewa direbobi don shi sun riga sun wanzu kuma an shigar dasu azaman kunshin firmware-ralink. Yawancin lokaci zaka iya duba sake fasalin na'urar akan jikin na'urar akan sitika kusa da lambar serial.

Ci gaba da yin taɗi da ziyartar tafkuna daban-daban ba su haifar da kyakkyawan sakamako ba. A fili babu wanda kafina yayi ƙoƙarin haɗa irin wannan adaftar zuwa Linux. Hmm naji sa'a kamar wanda aka nutse.

Ko da yake, a’a, ƙarya nake yi, ziyartar dandalin tattaunawa (mafi yawa na Turanci) su ma sun ba da ’ya’ya; a wasu maudu’ai an ambaci wani Malam lwfinger, wanda ya shahara wajen rubuta adadin direbobi don adaftar Wi-Fi. . Ma'ajiyar git ɗin sa yana a ƙarshen labarin a cikin hanyoyin haɗin gwiwa. Kuma darasi na biyu da na koya shine, kuna buƙatar zakuɗa na'urar ku don fahimtar direban da zai dace da ita.

Kashi na 1: Identity na Bourne

Lokacin da na'urar ta toshe cikin tashar jiragen ruwa, ba shakka, babu LED mai haske. Kuma a gaba ɗaya ba a bayyana ta kowace hanya ko wani abu yana aiki ko a'a.

Da farko, don gano ko kernel yana ganin na'urarmu, na duba 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

Ya juya yana gani, kuma a bayyane yake cewa akwai guntu na Realtek da VID/PID na na'urar kanta akan bas ɗin usb.

Mu ci gaba mu duba lsusb, kuma a nan wata gazawar tana jiran mu

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

Tsarin bai san irin nau'in na'urar ba, kuma cikin bacin rai yana nuna sarari mara komai maimakon sunan (ko da yake mai siyarwa = 2357 tabbas TP-Link ne).

A wannan mataki, mai karatu mai tambaya tabbas ya riga ya lura da wani abu mai ban sha'awa, amma za mu bar shi har zuwa lokacinmu.

Binciken matsalar sunaye marasa amfani ya kai ni ga wani rukunin yanar gizo mai ganowa, inda aka shigar da bayanai kan sanannun VID/PID. Mu 2357:0111 ba a can. Kamar yadda ya juya daga baya, mai amfani lsusb yana amfani da fayil /usr/share/misc/usb.ids, wanda shine jeri iri ɗaya na ID daga wannan rukunin yanar gizon. Don kyawun nunin, kawai na ƙara layi don TP-Link mai siyarwa a cikin tsarina.

2357  TP-Link
        0111  TL-WN727N v5.21

To, mun gyara nuni a cikin jerin na'urori, amma bai kawo mana mataki daya kusa da zabar direba ba. Don zaɓar direba, kuna buƙatar sanin guntu guntu ɗin ku aka yi. Ƙoƙarin da ba a yi nasara ba na gaba don gano hakan a Intanet bai haifar da wani abu mai kyau ba. Sanye da screwdriver sirara, na zare hular adaftar a hankali kuma mugun kwakwalen Uncle Liao ya bayyana a cikin duk tsiraicinsa. A ƙarƙashin gilashin ƙara girman za ku iya ganin sunan guntu - Saukewa: RTL8188EUS. Wannan ya riga ya yi kyau. A wasu zaurukan na ga rubuce-rubucen cewa direban daga wannan ɗan adam lwfinger ya dace da wannan guntu (ko da yake kawai ya rubuta game da RTL8188EU).

Kashi na 2: Maɗaukakin Ƙasar Bourne

Na sauke tushen direba daga Git.

Lokaci ya yi da za a sake shigar da Windows kuma yin abin da masu amfani da Linux galibi ke haɗuwa da su - haɗa wani abu daga wasu nau'ikan. Haɗa direbobi, kamar yadda ya fito, ya bambanta kaɗan daga haɗa shirye-shiryen:

make
sudo make install

amma don tattara samfuran kernel muna buƙatar fayilolin rubutun kernel don takamaiman sigar mu.

Akwai kunshin a cikin ma'ajiyar haja raspberrypi-kernel-headers, amma ya ƙunshi nau'in kernel na fayilolin 4.19.66-v7l+, kuma hakan bai dace da mu ba. Amma don samun rubutun da ake buƙata, kamar yadda ya juya, akwai kayan aiki mai dacewa tushen rpi (mahaɗi a ƙarshen Github), wanda tare da shi zaku iya zazzage abubuwan da suka dace. Muna rufe ma'ajiyar, sanya rubutun aiwatarwa, kuma muna gudanar da shi. Ƙaddamarwar farko ta kasa tare da kuskure - babu wani amfani bc. Abin farin ciki, yana cikin ma'ajin kuma muna shigar da shi kawai.

sudo apt-get install bc

Bayan haka, sake farawa da zazzage masu kai (sannan kuma saita wani abu, ban tuna yanzu ba) yana ɗaukar ɗan lokaci kuma zaku iya zama a kan kujerar ku, Windows ya zama mafi kyau a cikin duk bayyanarsa.

Bayan an zazzage duk masu kan kai, duba cewa kundin adireshi ya bayyana /lib/modules/4.19.73-v7+ kuma a cikin sa alamar alamar tana nuna wurin da aka sauke fayilolin (a gare ni /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

An kammala matakin shiri, zaku iya fara taro. Haɗa na'urorin kuma yana ɗaukar ɗan lokaci, Rasberi ba dabba ce mai sauri ba (yana da 32bit 900Mhz Cortex ARM v7).
Don haka aka tattara komai. Mun shigar da direba a mataki na 2 (yi shigarwa), yayin da kuma yin kwafin ƙarin fayilolin firmware masu mahimmanci don direba ya yi aiki:

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

Kashi na 3. The Bourne Ultimatum

Na toshe busar a cikin tashar jiragen ruwa kuma ... babu abin da ya faru. Duk don komai ne?

Na fara nazarin fayilolin da ke cikin aikin kuma a cikin ɗaya daga cikinsu na sami abin da matsalar ta kasance: direba ya ƙayyade cikakken jerin abubuwan gano VID/PID wanda zai iya aiki. Kuma domin na'urarmu ta yi aiki da wannan direba, kawai na ƙara id na a cikin fayil ɗin 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 */
};

Na sake tattara direban kuma na sake shigar da shi akan tsarin.

Kuma a wannan karon komai ya fara. Hasken adaftar ya haskaka kuma wata sabuwar na'ura ta bayyana a cikin jerin hanyoyin sadarwa na cibiyar sadarwa.

Duba musaya mara waya yana nuna masu zuwa:

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

Kyauta ga waɗanda suka karanta har ƙarshe

Ka tuna yadda na faɗi cewa ba shi da mahimmancin iyakar saurin da aka bayyana akan adaftar ku?
Don haka, akan Malinka (kafin fitowar samfurin 4), duk na'urori (ciki har da adaftar ethernet) suna zaune akan bas ɗin USB iri ɗaya. Mai girma, dama? Sabili da haka bandwidth na bas ɗin usb yana rarraba tsakanin duk na'urorin da ke cikinsa. Lokacin auna saurin ta hanyar ethernet da kuma ta hanyar wi-fi usb (wanda aka haɗa da na'ura mai ba da hanya tsakanin hanyoyin sadarwa) duka ta iska da waya, yana kusa da 1Mbit/s.

PS Gabaɗaya, wannan jagorar don haɗa direba don wannan adaftar na musamman yana aiki ba don RPI kaɗai ba. Na sake maimaita shi akan tebur na tare da Linux Mint - komai yayi aiki a can ma. Kawai kuna buƙatar zazzage fayilolin da suka dace don sigar kernel ɗinku ta hanya ɗaya.

UPD. Mutane masu ilimi sun ba da shawarar: don kada ku dogara da sigar kernel, kuna buƙatar tattarawa da shigar da direbobi ta amfani da dkms. Har ila yau, readme na direba ya ƙunshi wannan zaɓi.

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. Gabatarwa faci don id an karɓi na'urar cikin babban reshe na ma'ajiyar lwfinger/rtl8188eu.

nassoshi
- RPi USB Wi-Fi adaftar
- Gitbub lwfinger/rtl8188eu
- usb.ids
- tushen rpi

source: www.habr.com