Andao hanao namana RaspberryPi amin'ny TP-Link TL-WN727N

Hey Habr!

Indray mandeha aho dia nanapa-kevitra ny hampifandray ny raspberry amin'ny Internet amin'ny alΓ lan'ny rivotra.

Vao tsy ela akory izay dia nividy sioka USB Wi-Fi avy amin'ny orinasa malaza TP-Link avy amin'ny fivarotana akaiky indrindra aho. Holazaiko avy hatrany fa tsy karazana nano usb module io, fa fitaovana lehibe, mitovy amin'ny haben'ny flash drive mahazatra (na, raha tianao, ny haben'ny fanondron'ny olon-dehibe). Talohan'ny nividianako dia nanao fikarohana kely momba ny lisitry ny mpanamboatra sioka tohanana ho an'ny RPI sy TP-Link aho tao amin'ny lisitra (na izany aza, araka ny hita taty aoriana, dia tsy nieritreritra ny hafetsena aho, satria ny devoly, araka ny fantatsika. , dia ao amin'ny antsipiriany). Noho izany, manomboka ny tantara mangatsiaka momba ny fahoriako; Asehoy anao ny tantaran'ny mpitsikilo amin'ny fizarana 3. Ho an'ireo liana dia jereo ny saka.

lahatsoratra Mampifandray ny adaptatera WiFi WN727N amin'ny Ubuntu/Mint Nanampy ahy tamin'ny ampahany izany, fa ny zavatra voalohany aloha.

Ny toetry ny olana

nomena:

  1. Solosaina birao tokana Raspberry Pi 2 B v1.1 - 1 sombiny
  2. sioka usb wi-fi WN727N - 1 sekely
  3. mpivady tsy dia miolakolaka tanana - 2 sekely
  4. Ny Raspbian farany dia napetraka ho OS (miorina amin'ny Debian 10 Buster)
  5. kernel version 4.19.73-v7+

Tadiavo: mifandray amin'ny Internet (Wi-Fi dia zaraina amin'ny router an-tranonao)

Rehefa avy nesorina ny adaptatera dia namaky ny toromarika tao anatiny aho:

System Compatibility: Windows 10/8/7/XP (na ny lanitra aza, eny fa na XP) ary MacOS 10.9-10.13

Hmm, toy ny mahazatra, tsy misy teny momba ny Linux. 2k19 izany, ary mbola mila amboarina amin'ny tanana ny mpamily...

Nanana compiler 2 izahay, trano famakiam-boky 75 arivo, blobs binary dimy, antsasaka vehivavy miboridana miaraka amin'ny logo ary ranomasina feno lohatenin'ny fiteny sy marika rehetra. Tsy hoe fitaovana ilaina amin'ny asa io. Saingy rehefa manomboka manangona rafitra ho anao ianao dia lasa sarotra ny mijanona. Ny hany nampiahiahy ahy dia ny mpamily ho an'ny Wi-Fi. Tsy misy zavatra tsy afa-manoatra, tsy tompon'andraikitra ary manao kolikoly noho ny fananganana mpamily avy amin'ny loharano. Saingy fantatro fa na ho ela na ho haingana dia hifindra amin'ity fako ity isika.

Amin'ny ankapobeny, araka ny fantatrao, ny fiddling amin'ny usb wi-fi amin'ny Linux dia maharary sady somary tsy misy tsirony (toy ny sushi Rosiana).

Misy CD misy mpamily koa ilay boaty. Raha tsy manana fanantenana be aho dia mijery izay ao anatiny - azo antoka fa tsy nokarakarain'izy ireo izany. Ny fikarohana amin'ny Internet dia nitondra ahy tany amin'ny tranokalan'ny mpanamboatra, saingy misy mpamily Linux ho an'ny fanavaozana fitaovana ihany v4, ary teo an-tsandriko no nisy v5.21. Ary ankoatra izany, ho an'ny dikan-teny kernel tranainy 2.6-3.16. Kivy tamin'ny tsy fahombiazana tany am-boalohany aho dia efa nieritreritra fa tokony ho naka ny TL-WN727N aho (lafo kely kokoa izy io ary mahazaka 300Mbps versus 150 ho an'ny ahy, saingy araka ny hita dia tsy maninona izany. ho an'ny voaroy, hosoratana izany any aoriana). Fa ny tena zava-dehibe dia efa misy ny mpamily ho azy ary napetraka ho fonosana fotsiny firmware-ralink. Azonao atao matetika ny mijery ny fanavaozana ny fitaovana eo amin'ny vatan'ny fitaovana amin'ny sticker eo akaikin'ny laharan-tariby.

Tsy nitondra soa firy ny fikarohana sy ny fitsidihana forum isan-karazany. Toa tsy nisy teo alohako nanandrana nampifandray adaptatera toy izany tamin'ny Linux. Hmm, tsara vintana aho toy ny lehilahy maty an-drano.

Na dia, tsia, mandainga aho, ny fitsidihana forums (ny ankamaroany amin'ny teny anglisy) dia namokatra ihany koa, tamin'ny lohahevitra sasany dia nisy filazana momba an'i Mr. lwfinger iray, izay malaza amin'ny fanoratana mpamily maromaro ho an'ny adapter Wi-Fi. . Ny tahiry git azy dia eo amin'ny faran'ny lahatsoratra amin'ny rohy. Ary ny lesona faharoa nianarako dia ny hoe mila mamantatra ny fitaovanao ianao mba hahafantaranao hoe iza no mpamily mety aminy.

Fizarana 1: The Bourne Identity

Rehefa nampidirina tao amin'ny seranan-tsambo ilay fitaovana dia mazava ho azy fa tsy nisy LED nirehitra. Ary amin'ny ankapobeny dia tsy mazava amin'ny fomba rehetra na misy zavatra mandeha na tsia.

Voalohany indrindra, mba hahitana raha mahita ny fitaovantsika ny kernel, dia mijery dmesg aho:

[  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

Hita fa hitany, ary mazava ho azy fa misy puce Realtek sy VID/PID an'ilay fitaovana mihitsy ao amin'ny bus usb.

Andeha isika hijery bebe kokoa lsusb, ary misy tsy fahombiazana hafa koa miandry antsika

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

Tsy fantatry ny rafitra hoe karazana fitaovana inona izy io, ary mampiseho toerana tsy misy na inona na inona fa tsy ny anarana (na dia TP-Link aza ny mpivarotra = 2357).

Amin'ity dingana ity dia efa nahatsikaritra zavatra mahaliana ny mpamaky tia karokaroka, saingy havelantsika izany mandra-pahatongan'ny androntsika.

Ny fikarohana momba ny olan'ny anarana poakaty dia nitarika ahy tany amin'ny tranokala misy mpamantatra, izay misy fampahalalana momba ny VID/PID fantatra. Tsy tao ny 2357:0111 anay. Araka ny hita taty aoriana, ny utility lsusb mampiasa rakitra /usr/share/misc/usb.ids, izay lisitry ny ID mitovy amin'ity tranokala ity. Ho an'ny hatsaran'ny fampiratiana dia nampiako andalana fotsiny ho an'ny mpivarotra TP-Link ao amin'ny rafitra misy ahy.

2357  TP-Link
        0111  TL-WN727N v5.21

Eny, nanitsy ny fampiratiana ao amin'ny lisitry ny fitaovana izahay, saingy tsy nitondra anay nanakaiky kokoa ny fisafidianana mpamily izany. Mba hisafidianana mpamily dia mila mahafantatra ianao hoe inona no chip nanaovanao ny siokao. Ny andrana tsy nahomby manaraka mba hahitana izany amin'ny Internet dia tsy nitondra na inona na inona tsara. Miaraka amin'ny screwdriver manify, nesoriko tamim-pitandremana ny satroka adaptatera ary ny atidohan'i Dadatoa Liao dia miseho amin'ny fitanjahany. Eo ambanin'ny fitaratra lehibe iray dia hitanao ny anaran'ilay puce - Sary RTL8188EUS. Efa tsara izany. Tao amin'ny forum sasany dia nahita lahatsoratra aho fa ny mpamily avy amin'io lehilahy lwfinger io ihany no mety amin'ity chip ity (na dia manoratra momba ny RTL8188EU fotsiny aza izy).

Fizarana 2: Ny Fahasoavana Bourne

Misintona ny loharanon'ny mpamily avy amin'ny Git aho.

Fotoana hamerenana ny Windows sy hanao izay ifandraisan'ny mpampiasa Linux matetika - manangona zavatra avy amin'ny karazana sasany. Ny fanangonana mpamily, raha ny fantatra, dia tsy mitovy amin'ny fanangonana programa:

make
sudo make install

fa mba hanangonana modules kernel dia ilaintsika ny rakitra lohatenin'ny kernel ho an'ny dikan-tsika manokana.

Misy fonosana ao amin'ny tahiry tahiry raspberrypi-kernel-headers, fa misy ny dikan-karen'ny rakitra 4.19.66-v7l+, ary tsy mety amintsika izany. Fa mba hahazoana ny lohatenin'ny dikan-teny ilaina, araka ny hita, dia misy fitaovana mety rpi-source (Rohy amin'ny farany amin'ny Github), izay ahafahanao misintona ny lohatenin'ny ilaina. Manao clone ny repository izahay, manao ny script ho executable, ary mihazakazaka izany. Ny fandefasana voalohany dia tsy nahomby tamin'ny fahadisoana - tsy misy fitaovana bc. Soa ihany fa ao anaty tahiry izy io ary apetrakay fotsiny.

sudo apt-get install bc

Aorian'izany, ny fanombohana sy ny fampidinana ireo lohapejy (ary avy eo mametraka zavatra, tsy tadidiko ankehitriny) dia maka fotoana kely ary afaka mipetraka eo amin'ny sezanao ianao, nanjary tsara kokoa ny Windows tamin'ny fisehoany rehetra.

Rehefa voasintona ny lohapejy rehetra dia jereo fa miseho ny lahatahiry /lib/modules/4.19.73-v7+ ary ao anatin'izany ny symlink dia manondro ny toerana misy ny rakitra alaina (ho ahy dia /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

Efa vita ny dingana fanomanana, afaka manomboka mivory ianao. Ny fanangonana ireo maody indray dia maka fotoana kely, ny Raspberry dia tsy biby haingana (manana 32bit 900Mhz Cortex ARM v7).
Koa natambatra ny zava-drehetra. Mametraka ny mpamily amin'ny dingana faha-2 izahay (manao fametrahana), ary koa mandika ireo rakitra firmware ilaina ho an'ny mpamily:

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

Fizarana 3. Ny Bourne Ultimatum

Ampidiriko amin'ny seranana ny sioka ary... tsy misy na inona na inona mitranga. Foana ve izany rehetra izany?

Manomboka mianatra ireo rakitra ao anatin'ilay tetikasa aho ary ao anatin'ny iray amin'izy ireo no hitako ny olana: ny mpamily dia mamaritra lisitra feno momba ny VID/PID izay azony ampiasaina. Ary mba hahafahan'ny fitaovantsika miasa amin'ity mpamily ity dia nampiako fotsiny ny id-ko tamin'ny rakitra 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 */
};

Naveriko indray ny mpamily ary naveriny tamin'ny rafitra.

Ary tamin'ity indray mitoraka ity dia nanomboka ny zava-drehetra. Nirehitra ny jiro teo amin'ny adaptatera ary nisy fitaovana vaovao niseho tao amin'ny lisitry ny fifandraisana amin'ny tambajotra.

Ny fijerena ny fifandraisana tsy misy tariby dia mampiseho ireto manaraka ireto:

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 ho an'izay mamaky hatramin'ny farany

Tsarovy ny fomba nilazako fa tsy maninona ny hafainganam-pandeha ambony indrindra voalaza ao amin'ny adaptateranao?
Noho izany, ao amin'ny Malinka (talohan'ny famoahana ny modely 4), ny fitaovana rehetra (anisan'izany ny adapter ethernet) dia mipetraka amin'ny bus USB iray ihany. Tsara, sa tsy izany? Ary noho izany dia zaraina amin'ny fitaovana rehetra ao aminy ny bandwidth an'ny bus usb. Rehefa mandrefy ny hafainganam-pandeha na amin'ny alalan'ny ethernet na amin'ny alalan'ny usb wi-fi (mifandray amin'ny router 1) na amin'ny rivotra na amin'ny tariby dia manodidina ny 20Mbit/s izany.

PS Amin'ny ankapobeny, ity torolΓ lana momba ny fanangonana mpamily ho an'ity adaptatera manokana ity dia manan-kery tsy ho an'ny RPI ihany. Avy eo dia naveriko teo amin'ny biraoko miaraka amin'ny Linux Mint - niasa tao koa ny zava-drehetra. Mila misintona ireo rakitra lohapejy ilaina ho an'ny dikan-kernel anao amin'ny fomba mitovy ihany ianao.

UPD. Nanolo-kevitra ny olona manam-pahalalana: mba tsy hiankin-doha amin'ny version kernel dia mila manangona sy mametraka mpamily amin'ny dkms ianao. Ny readme ho an'ny mpamily dia ahitana ity safidy ity.

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. nanolo-kevitra damba fa ny ID fitaovana dia nekena tao amin'ny sampana mahazatra amin'ny tahiry lwfinger/rtl8188eu.

soratra masina
- RPi USB Wi-Fi adaptatera
- Gitbub lwfinger/rtl8188eu
- usb.ids
- rpi-source

Source: www.habr.com