Hi Habr!
Cho-dhùin mi aon uair mo shùbhan-craoibhe a cheangal ris an eadar-lìn thairis air an èadhar.
Cha bu luaithe a chaidh a ràdh na chaidh a dhèanamh, airson an adhbhar seo cheannaich mi fìdeag usb wi-fi bhon chompanaidh ainmeil TP-Link bhon stòr as fhaisge. Canaidh mi sa bhad nach e seòrsa de mhodal nano usb a tha seo, ach inneal gu math mòr, mu mheud draibheadh flash cunbhalach (no, ma thogras tu, meud meur-chlàr fireannaich inbheach). Mus do cheannaich mi, rinn mi beagan rannsachaidh air an liosta de luchd-saothrachaidh fìdeag le taic airson RPI agus bha TP-Link air an liosta (ge-tà, mar a thàinig e a-mach nas fhaide air adhart, cha tug mi aire do na subtleties, oir bha an diabhal, mar a tha fios againn. , anns a’ mhion-fhiosrachadh). Mar sin, tha an sgeulachd fhuar mu na h-eucoirean agam a’ tòiseachadh; bidh sinn a’ toirt dhut sgeulachd lorg-phoileas ann an 3 pàirtean. Dhaibhsan aig a bheil ùidh, thoir sùil air cat.
Artaigil
Cùmhnantan na trioblaid
Leis:
- coimpiutair bòrd singilte Raspberry Pi 2 B v1.1 - 1 pìos
- fìdeag usb wi-fi WN727N - 1 pìos
- paidhir de làmhan nach eil gu tur cam - 2 phìos
- Tha an Raspbian as ùire air a chuir a-steach mar an OS (stèidhichte air Debian 10 Buster)
- dreach kernel 4.19.73-v7+
Lorg: ceangail ris an eadar-lìn (tha Wi-Fi air a chuairteachadh bhon router dachaigh agad)
Às deidh dhomh an inneal-atharrachaidh a dhì-phapadh, leugh mi an stiùireadh a-staigh:
Co-fhreagarrachd an t-siostaim: Windows 10/8/7/XP (eadhon na speuran, eadhon XP) agus MacOS 10.9-10.13
Hmm, mar as àbhaist, chan e facal mu Linux. B' e 2k19 a bh' ann, agus dh'fheumadh na draibhearan fhathast a bhith air an cruinneachadh le làimh ...
Bha 2 neach-cruinneachaidh againn, 75 mìle leabharlann, còig bloban dà-chànanach, leth sreath de bhoireannaich rùisgte le suaicheantas agus muir slàn de chinn-cinn de gach cànan agus comharradh. Chan e gur e seata riatanach a tha seo airson na h-obrach. Ach aon uair ‘s gun tòisich thu a’ cruinneachadh siostam dhut fhèin, bidh e duilich stad. Is e an aon rud a chuir dragh orm na draibhearan airson wi-fi. Chan eil dad nas neo-chomasach, neo-chùramach agus coirbte na bhith a’ togail dhraibhearan bhon tùs. Ach bha fios agam gum biodh sinn luath no mall a’ tionndadh chun sgudal seo.
San fharsaingeachd, mar a tha fios agad, tha fìdhlearachd le usb wi-fi air Linux pianail agus beagan gun blas (mar sushi Ruiseanach).
Tha CD le draibhearan anns a’ bhogsa cuideachd. Gun mòran dòchais gun toir mi sùil air na tha air - gu cinnteach cha do ghabh iad cùram dheth. Thug sgrùdadh eadar-lìn mi gu làrach-lìn an neach-dèanamh, ach tha draibhear Linux ann dìreach airson ath-sgrùdadh inneal v4, agus a'm' uchd bha v5.21. Agus a bharrachd air an sin, airson dreachan kernel fìor sheann 2.6-3.16. Air mo mhisneachadh leis an fhàiligeadh aig an fhìor thoiseach, shaoil mi mu thràth gum bu chòir dhomh a bhith air an TL-WN727N a ghabhail (tha e beagan nas daoire agus is urrainn dhomh 300Mbps an aghaidh 150 a làimhseachadh dhòmhsa, ach mar a thionndaidh e a-mach, chan eil seo gu diofar. airson an sùbh-craoibhe, thèid seo a sgrìobhadh mu dheidhinn nas fhaide air adhart). Ach is e an rud as cudromaiche gu bheil draibhearan air a shon ann mu thràth agus gu bheil iad dìreach air an stàladh mar phacaid firmware-ralink. Mar as trice chì thu ath-sgrùdadh an uidheim air corp an inneil air stiogair ri taobh an àireamh sreathach.
Cha tug tuilleadh googling agus tadhal air diofar fhòraman mòran math. A rèir choltais chan eil duine romham air feuchainn ri inneal-atharrachaidh mar sin a cheangal ri Linux. Hmm, tha mi cho fortanach ri duine a chaidh a bhàthadh.
Ged, chan e, tha mi nam laighe, thug tadhal air fòraman (an fheadhainn Beurla sa mhòr-chuid) toradh cuideachd; ann an cuid de chuspairean chaidh iomradh a thoirt air Mgr lwfinger sònraichte, a tha ainmeil airson a bhith a’ sgrìobhadh grunn dhràibhearan airson innealan-atharrachaidh Wi-Fi . Tha an stòr git aige aig deireadh an artaigil anns na ceanglaichean. Agus is e an dàrna leasan a dh’ ionnsaich mi gum feum thu an inneal agad a chomharrachadh gus tuigsinn dè an draibhear a dh’ fhaodadh a bhith freagarrach air a shon.
Pàirt 1: Dearbh-aithne Bourne
Nuair a chaidh an inneal a chuir a-steach don phort, gu dearbh, cha do lasadh LED sam bith. Agus san fharsaingeachd chan eil e soilleir ann an dòigh sam bith a bheil rudeigin ag obair no nach eil.
An toiseach, gus faighinn a-mach a bheil an kernel a ’faicinn an inneal againn, bidh mi a’ coimhead ann an 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
Thionndaidh e a-mach gu bheil e a ’faicinn, agus tha e eadhon soilleir gu bheil chip Realtek agus VID / PID den inneal fhèin air a’ bhus usb.
Rachamaid nas fhaide agus coimhead lsusb, agus an seo tha fàiligeadh eile a’ feitheamh oirnn
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
Chan eil fios aig an t-siostam dè an seòrsa inneal a th’ ann, agus tha e gu tur a’ sealltainn àite falamh an àite an ainm (ged a tha reiceadair = 2357 gu cinnteach na TP-Link).
Aig an ìre seo, is dòcha gu bheil an leughadair fiosrachail air rudeigin inntinneach fhaicinn mu thràth, ach fàgaidh sinn e gus an àm againn.
Thug rannsachadh air duilgheadas ainmean falamh mi gu làrach le aithnichearan, far a bheil fiosrachadh air VID/PID aithnichte air a chur a-steach. Cha robh an 2357:0111 againn ann. Mar a thionndaidh e a-mach nas fhaide air adhart, an goireas lsusb a’ cleachdadh faidhle /usr/share/misc/usb.ids, a tha san aon liosta de IDan bhon làrach seo. Airson bòidhchead an taisbeanaidh, chuir mi dìreach loidhnichean ris airson an neach-reic TP-Link anns an t-siostam agam.
2357 TP-Link
0111 TL-WN727N v5.21
Uill, cheartaich sinn an taisbeanadh anns an liosta innealan, ach cha tug e sinn aon cheum nas fhaisge air a bhith a’ taghadh draibhear. Gus dràibhear a thaghadh, feumaidh fios a bhith agad air dè an sgiob a tha do fhìdeag air a dhèanamh. Cha do lean na h-ath oidhirpean neo-shoirbheachail gus seo a lorg air an eadar-lìn gu dad math. Armaichte le screwdriver slotted tana, bidh mi gu faiceallach a’ toirt dheth a’ chaip adapter agus tha beachd borb Uncle Liao a’ nochdadh anns a h-uile lomnochd phrìseil. Fo ghlainne-meudachaidh chì thu ainm a’ chip - RTL8188EUS. Tha seo math mu thràth. Air cuid de fhòraman chunnaic mi puist gu bheil an draibhear bhon aon duine-uasal lwfinger sin gu math freagarrach airson a ’chip seo (ged nach eil e a’ sgrìobhadh ach mu RTL8188EU).
Pàirt 2: The Bourne Supremacy
Bidh mi a’ luchdachadh sìos stòran an draibhear bho Git.
Tha an t-àm ann Windows ath-shuidheachadh agus dèan na tha luchd-cleachdaidh Linux mar as trice co-cheangailte riutha - a’ cruinneachadh rudeigin de sheòrsa air choreigin. Chan eil cruinneachadh dhràibhearan, mar a thionndaidh e, glè bheag bho bhith a’ cur ri chèile phrògraman:
make
sudo make install
ach airson modalan kernel a chuir ri chèile feumaidh sinn na faidhlichean cinn kernel airson an dreach sònraichte againn.
Tha pasgan anns an stòr stoc cinn-cinn raspberrypi-kernel, ach tha an tionndadh kernel de na faidhlichean ann 4.19.66-v7l+, agus chan eil sin freagarrach dhuinn. Ach gus cinn-cinn an dreach a tha a dhìth fhaighinn, mar a thàinig e a-mach, tha inneal goireasach ann rpi-stòr (ceangal aig an deireadh air Github), leis an urrainn dhut na cinn-cinn riatanach a luchdachadh sìos. Bidh sinn a’ clonadh an stòr, a’ dèanamh an sgriobt so-ghnìomhaichte, agus ga ruith. Bidh a’ chiad fhoillseachadh a’ fàiligeadh le mearachd - chan eil goireas ann bc. Gu fortanach, tha e san stòr agus tha sinn dìreach ga stàladh.
sudo apt-get install bc
Às deidh seo, bheir ath-thòiseachadh agus luchdachadh sìos na cinn-cinn (agus an uairsin rudeigin a chuir air dòigh, chan eil cuimhne agam a-nis) beagan ùine agus faodaidh tu suidhe air ais sa chathair agad, tha Windows air fàs nas fheàrr anns a h-uile taisbeanadh.
Às deidh a h-uile bann-cinn a luchdachadh sìos, dèan cinnteach gu bheil an eòlaire a’ nochdadh /lib/modules/4.19.73-v7+ agus innte tha an symlink a’ comharrachadh an àite far a bheil na faidhlichean a chaidh a luchdachadh sìos (dhòmhsa is e / home/pi/linux a th’ ann):
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
Tha an ìre ullachaidh air a chrìochnachadh, faodaidh tu tòiseachadh air co-chruinneachadh. Bheir a bhith a’ cruinneachadh nam modalan a-rithist beagan ùine, chan e beathach luath a th’ anns an sùbh-craoibhe (tha 32bit 900Mhz Cortex ARM v7 aige).
Mar sin chaidh a h-uile càil a chuir ri chèile. Bidh sinn a 'stàladh an dràibhear san dàrna ceum (dèan stàladh), agus sinn a' dèanamh lethbhreac de na faidhlichean firmware a tha riatanach airson an dràibhear a bhith ag obair:
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/.
Pàirt 3. The Bourne Ultimatum
Bidh mi a' cur an fhìdeag dhan phort agus... chan eil dad a' tachairt. An robh e uile airson dad?
Bidh mi a 'tòiseachadh a' sgrùdadh nam faidhlichean taobh a-staigh a 'phròiseict agus ann am fear dhiubh tha mi a' faighinn a-mach dè an duilgheadas a bh 'ann: tha an dràibhear a' sònrachadh liosta iomlan de dh'aithnichearan VID/PID as urrainn dha a fhrithealadh. Agus gus am bi an inneal againn ag obair leis an draibhear seo, chuir mi dìreach an id agam ris an fhaidhle 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 */
};
Rinn mi ath-chruinneachadh air an dràibhear agus chuir mi a-rithist e air an t-siostam.
Agus an turas seo thòisich a h-uile càil. Chaidh an solas air an inneal-atharrachaidh a lasadh suas agus nochd inneal ùr anns an liosta de eadar-aghaidh lìonra.
Tha coimhead air eadar-aghaidh gun uèir a’ sealltainn na 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
Bonus dhaibhsan a leugh gu deireadh
Cuimhnich mar a thuirt mi nach eil e gu diofar dè an astar as àirde a tha air a ràdh air an inneal-atharrachaidh agad?
Mar sin, air Malinka (mus tèid modal 4 a leigeil ma sgaoil), bidh a h-uile inneal (a ’toirt a-steach an adapter ethernet) nan suidhe air an aon bhus usb. Sgoinneil, ceart? Agus mar sin tha leud-bann a’ bhus usb air a roinn eadar a h-uile inneal air. Nuair a chaidh an astar a thomhas an dà chuid tro ethernet agus tro usb wi-fi (ceangailte ri 1 router) an dà chuid le èadhar agus le uèir, bha e timcheall air 20Mbit/s.
PS San fharsaingeachd, tha an stiùireadh seo airson dràibhear a chuir ri chèile airson an inneal-atharrachaidh sònraichte seo dligheach chan ann a-mhàin airson RPI. Rinn mi a-rithist e air an deasg agam le Linux Mint - dh’ obraich a h-uile dad an sin cuideachd. Feumaidh tu dìreach na faidhlichean cinn riatanach a luchdachadh sìos airson an dreach kernel agad san aon dòigh.
UPD. Mhol daoine eòlach: gus nach bi iad an urra ris an dreach kernel, feumaidh tu draibhearan a chruinneachadh agus a stàladh a ’cleachdadh dkms. Tha an roghainn seo cuideachd anns an readme airson an draibhear.
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. Air a mholadh
iomraidhean
-
-
-
-
Source: www.habr.com