TP-Link TL-WN727N மூலம் RaspberryPi ஐ நண்பர்களாக உருவாக்குவோம்

ஹே ஹப்ர்!

நான் ஒருமுறை எனது ராஸ்பெர்ரியை இணையத்துடன் காற்றில் இணைக்க முடிவு செய்தேன்.

விரைவில் சொல்ல முடியாது, இந்த நோக்கத்திற்காக நான் அருகிலுள்ள கடையில் இருந்து நன்கு அறியப்பட்ட நிறுவனமான TP-Link இலிருந்து usb wi-fi விசில் வாங்கினேன். இது ஒருவித நானோ யூ.எஸ்.பி தொகுதி அல்ல, ஆனால் வழக்கமான ஃபிளாஷ் டிரைவின் அளவு (அல்லது, நீங்கள் விரும்பினால், வயது வந்தவரின் ஆள்காட்டி விரலின் அளவு) அளவுக்கு மிகப் பெரிய சாதனம் என்று நான் இப்போதே கூறுவேன். வாங்குவதற்கு முன், RPI க்கான ஆதரிக்கப்படும் விசில் உற்பத்தியாளர்களின் பட்டியலில் நான் ஒரு சிறிய ஆராய்ச்சி செய்தேன் மற்றும் TP-Link பட்டியலில் இருந்தது (இருப்பினும், அது பின்னர் மாறியது போல், நான் நுணுக்கங்களை கணக்கில் எடுத்துக்கொள்ளவில்லை, ஏனென்றால் பிசாசு, நமக்குத் தெரியும் , விவரங்களில் உள்ளது). எனவே, எனது சாகசங்களின் குளிர் கதை தொடங்குகிறது; 3 பகுதிகளாக ஒரு துப்பறியும் கதையை உங்கள் கவனத்திற்கு வழங்குகிறோம். ஆர்வமுள்ளவர்கள், பூனையைப் பார்க்கவும்.

கட்டுரை WN727N WiFi அடாப்டரை Ubuntu/Mint உடன் இணைக்கிறது இது எனக்கு ஓரளவு உதவியது, ஆனால் முதல் விஷயங்கள் முதலில்.

பிரச்சனையின் நிலைமைகள்

கொடுக்கப்பட்ட:

  1. ஒற்றை பலகை கணினி Raspberry Pi 2 B v1.1 - 1 துண்டு
  2. usb wi-fi விசில் WN727N - 1 துண்டு
  3. மிகவும் வளைந்த கைகளின் ஒரு ஜோடி - 2 துண்டுகள்
  4. சமீபத்திய ராஸ்பியன் OS ஆக நிறுவப்பட்டது (டெபியன் 10 பஸ்டரை அடிப்படையாகக் கொண்டது)
  5. கர்னல் பதிப்பு 4.19.73-v7+

கண்டுபிடி: இணையத்துடன் இணைக்கவும் (உங்கள் வீட்டு திசைவியிலிருந்து Wi-Fi விநியோகிக்கப்படுகிறது)

அடாப்டரைத் திறந்த பிறகு, உள்ளே உள்ள வழிமுறைகளைப் படித்தேன்:

கணினி இணக்கத்தன்மை: Windows 10/8/7/XP (வானத்தில் கூட, XP கூட) மற்றும் MacOS 10.9-10.13

ஹ்ம்ம், வழக்கம் போல், லினக்ஸ் பற்றி ஒரு வார்த்தை கூட இல்லை. இது 2k19 ஆக இருந்தது, மேலும் டிரைவர்களை கைமுறையாக அசெம்பிள் செய்ய வேண்டும்...

எங்களிடம் 2 கம்பைலர்கள், 75 ஆயிரம் நூலகங்கள், ஐந்து பைனரி குமிழ்கள், ஒரு சின்னத்துடன் கூடிய நிர்வாணப் பெண்களின் அரை வரிசை மற்றும் அனைத்து மொழிகளின் தலைப்புகள் மற்றும் மார்க்அப்களின் முழு கடல். இது வேலைக்கு அவசியமான தொகுப்பு என்பதல்ல. ஆனால் உங்களுக்காக ஒரு அமைப்பைச் சேகரிக்கத் தொடங்கியவுடன், அதை நிறுத்துவது கடினம். எனக்கு கவலையை ஏற்படுத்திய ஒரே விஷயம் வைஃபைக்கான டிரைவர்கள். மூலத்திலிருந்து ஓட்டுனர்களை உருவாக்குவதை விட உதவியற்ற, பொறுப்பற்ற மற்றும் ஊழல் எதுவும் இல்லை. ஆனால் விரைவில் அல்லது பின்னர் நாங்கள் இந்த குப்பைக்கு மாறுவோம் என்று எனக்குத் தெரியும்.

பொதுவாக, உங்களுக்குத் தெரியும், லினக்ஸில் usb wi-fi மூலம் ஃபிட்லிங் செய்வது வலி மற்றும் ஓரளவு சுவையற்றது (ரஷ்ய சுஷி போன்றது).

பெட்டியில் இயக்கிகளுடன் ஒரு குறுவட்டு உள்ளது. அதிக நம்பிக்கை இல்லாமல், அதில் என்ன இருக்கிறது என்று நான் பார்க்கிறேன் - அவர்கள் நிச்சயமாக அதை கவனிக்கவில்லை. இணையத் தேடல் என்னை உற்பத்தியாளரின் வலைத்தளத்திற்குக் கொண்டு வந்தது, ஆனால் சாதனத் திருத்தத்திற்கு மட்டுமே லினக்ஸ் இயக்கி உள்ளது v4, மற்றும் என் கைகளில் இருந்தது v5.21. மேலும், மிகவும் பழைய கர்னல் பதிப்புகள் 2.6-3.16. ஆரம்பத்தில் ஏற்பட்ட தோல்வியால் மனமுடைந்து, நான் TL-WN727N ஐ எடுத்திருக்க வேண்டும் என்று ஏற்கனவே நினைத்தேன் (இது கொஞ்சம் விலை அதிகம் மற்றும் என்னுடையது 300 க்கு எதிராக 150Mbps ஐக் கையாள முடியும், ஆனால் அது மாறியது, இது ஒரு பொருட்டல்ல. ராஸ்பெர்ரிக்கு, இது பின்னர் எழுதப்படும்). ஆனால் மிக முக்கியமான விஷயம் என்னவென்றால், அதற்கான இயக்கிகள் ஏற்கனவே உள்ளன மற்றும் வெறுமனே ஒரு தொகுப்பாக நிறுவப்பட்டுள்ளன firmware-ralink. வரிசை எண்ணுக்கு அடுத்துள்ள ஸ்டிக்கரில் சாதனத்தின் உடலில் சாதனத்தின் திருத்தத்தை நீங்கள் வழக்கமாகப் பார்க்கலாம்.

மேலும் கூகிள் செய்து பல்வேறு மன்றங்களைப் பார்வையிட்டது நல்ல பலனைத் தரவில்லை. எனக்கு முன் யாரும் அத்தகைய அடாப்டரை லினக்ஸுடன் இணைக்க முயற்சிக்கவில்லை. ம்ம், நீரில் மூழ்கிய மனிதனைப் போல நான் அதிர்ஷ்டசாலி.

இருப்பினும், இல்லை, நான் பொய் சொல்கிறேன், மன்றங்களுக்குச் செல்வது (பெரும்பாலும் ஆங்கில மொழி) பலனைத் தந்தது; சில தலைப்புகளில் ஒரு குறிப்பிட்ட திரு. lwfinger பற்றி குறிப்பிடப்பட்டுள்ளது, அவர் Wi-Fi அடாப்டர்களுக்கு பல இயக்கிகளை எழுதுவதில் பிரபலமானவர். . அவரது ஜிட் களஞ்சியம் இணைப்புகளில் கட்டுரையின் முடிவில் உள்ளது. நான் கற்றுக்கொண்ட இரண்டாவது பாடம் என்னவென்றால், எந்த இயக்கி அதற்கு ஏற்றது என்பதைப் புரிந்துகொள்வதற்கு உங்கள் சாதனத்தை நீங்கள் அடையாளம் காண வேண்டும்.

பகுதி 1: தி போர்ன் அடையாளம்

சாதனம் போர்ட்டில் செருகப்பட்டபோது, ​​நிச்சயமாக, எல்.ஈ.டி எரியவில்லை. பொதுவாக, ஏதாவது செயல்படுகிறதா இல்லையா என்பது எந்த வகையிலும் தெளிவாக இல்லை.

முதலில், கர்னல் எங்கள் சாதனத்தைப் பார்க்கிறதா என்பதைக் கண்டறிய, நான் 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

அது பார்க்கிறது என்று மாறியது, மேலும் யூ.எஸ்.பி பஸ்ஸில் ரியல்டெக் சிப் மற்றும் சாதனத்தின் விஐடி / பிஐடி உள்ளது என்பது கூட தெளிவாகிறது.

மேலும் சென்று பார்ப்போம் lsusb, இங்கே இன்னொரு தோல்வி நமக்குக் காத்திருக்கிறது

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

இது எந்த வகையான சாதனம் என்பது கணினிக்குத் தெரியாது, மேலும் பெயருக்குப் பதிலாக வெறுமையான இடத்தைக் காட்டுகிறது (விற்பனையாளர்=2357 நிச்சயமாக TP-Link என்றாலும்).

இந்த கட்டத்தில், ஆர்வமுள்ள வாசகர் ஏற்கனவே சுவாரஸ்யமான ஒன்றைக் கவனித்திருக்கலாம், ஆனால் அதை நம் நேரம் வரை விட்டுவிடுவோம்.

வெற்றுப் பெயர்களின் சிக்கலைப் பற்றி ஆராய்வது, அறியப்பட்ட VID/PID பற்றிய தகவல் உள்ளிடப்பட்ட அடையாளங்காட்டிகளைக் கொண்ட தளத்திற்கு என்னை அழைத்துச் சென்றது. எங்கள் 2357:0111 அங்கு இல்லை. அது பின்னர் மாறியது, பயன்பாடு lsusb கோப்பைப் பயன்படுத்துகிறது /usr/share/misc/usb.ids, இந்த தளத்தின் அதே ஐடிகளின் பட்டியல். காட்சியின் அழகுக்காக, எனது கணினியில் TP-Link என்ற விற்பனையாளருக்கான வரிகளைச் சேர்த்துள்ளேன்.

2357  TP-Link
        0111  TL-WN727N v5.21

சரி, சாதனங்களின் பட்டியலில் காட்சியை நாங்கள் சரிசெய்தோம், ஆனால் இது இயக்கியைத் தேர்ந்தெடுப்பதற்கு ஒரு படி மேலே கொண்டு வரவில்லை. டிரைவரைத் தேர்ந்தெடுக்க, உங்கள் விசில் எந்த சிப்பில் செய்யப்பட்டுள்ளது என்பதை நீங்கள் தெரிந்து கொள்ள வேண்டும். இணையத்தில் இதைக் கண்டுபிடிப்பதற்கான அடுத்த தோல்வியுற்ற முயற்சிகள் எதற்கும் வழிவகுக்கவில்லை. மெல்லிய துளையிடப்பட்ட ஸ்க்ரூடிரைவருடன் ஆயுதம் ஏந்திய நான், அடாப்டர் தொப்பியை கவனமாக கழற்றினேன், மாமா லியாவோவின் தீய மூளை அதன் அனைத்து நிர்வாணத்திலும் தோன்றுகிறது. பூதக்கண்ணாடியின் கீழ் நீங்கள் சிப்பின் பெயரைக் காணலாம் - RTL8188EUS. இது ஏற்கனவே நல்லது. சில மன்றங்களில், அதே ஜென்டில்மேன் lwfinger இன் இயக்கி இந்த சிப்புக்கு மிகவும் பொருத்தமானவர் என்று இடுகைகளைப் பார்த்தேன் (அவர் RTL8188EU பற்றி மட்டுமே எழுதுகிறார் என்றாலும்).

பகுதி 2: தி பார்ன் மேலாதிக்கம்

நான் Git இலிருந்து இயக்கி மூலங்களைப் பதிவிறக்குகிறேன்.

விண்டோஸை மீண்டும் நிறுவி, லினக்ஸ் பயனர்கள் வழக்கமாக என்ன தொடர்பு கொள்கிறார்களோ அதைச் செய்ய வேண்டிய நேரம் இது. இயக்கிகளை அசெம்பிள் செய்வது, நிரல்களை தொகுப்பதில் இருந்து சிறிது வேறுபடுகிறது:

make
sudo make install

ஆனால் கர்னல் தொகுதிகளை தொகுக்க நமது குறிப்பிட்ட பதிப்பிற்கான கர்னல் தலைப்பு கோப்புகள் தேவை.

பங்கு களஞ்சியத்தில் ஒரு தொகுப்பு உள்ளது ராஸ்பெர்ரிபி-கர்னல்-தலைப்புகள், ஆனால் இது கோப்புகளின் கர்னல் பதிப்பைக் கொண்டுள்ளது 4.19.66-v7l+, அது எங்களுக்குப் பொருந்தாது. ஆனால் தேவையான பதிப்பின் தலைப்புகளைப் பெற, அது மாறியது போல், ஒரு வசதியான கருவி உள்ளது rpi-ஆதாரம் (கிதுப்பில் கடைசியில் உள்ள இணைப்பு), தேவையான தலைப்புகளை நீங்கள் பதிவிறக்கம் செய்யலாம். நாங்கள் களஞ்சியத்தை குளோன் செய்து, ஸ்கிரிப்டை இயங்கக்கூடியதாக ஆக்கி, அதை இயக்குகிறோம். முதல் ஏவுதல் பிழையுடன் தோல்வியடைகிறது - பயன்பாடு இல்லை bc. அதிர்ஷ்டவசமாக, இது களஞ்சியத்தில் உள்ளது, நாங்கள் அதை நிறுவுகிறோம்.

sudo apt-get install bc

இதற்குப் பிறகு, தலைப்புகளை மறுதொடக்கம் செய்து பதிவிறக்குவது (பின்னர் எதையாவது அமைப்பது, இப்போது எனக்கு நினைவில் இல்லை) சிறிது நேரம் எடுக்கும், மேலும் நீங்கள் உங்கள் நாற்காலியில் உட்கார்ந்து கொள்ளலாம், விண்டோஸ் அதன் அனைத்து வெளிப்பாடுகளிலும் சிறப்பாக மாறிவிட்டது.

அனைத்து தலைப்புகளும் பதிவிறக்கம் செய்யப்பட்ட பிறகு, அடைவு தோன்றுகிறதா என சரிபார்க்கவும் /lib/modules/4.19.73-v7+ மேலும் அதில் பதிவிறக்கம் செய்யப்பட்ட கோப்புகள் அமைந்துள்ள இடத்தை சிம்லிங்க் சுட்டிக்காட்டுகிறது (எனக்கு இது /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

ஆயத்த நிலை முடிந்தது, நீங்கள் சட்டசபை தொடங்கலாம். தொகுதிகளை மீண்டும் இணைக்க சிறிது நேரம் எடுக்கும், ராஸ்பெர்ரி வேகமான மிருகம் அல்ல (இது 32பிட் 900Mhz கார்டெக்ஸ் ARM v7 ஐக் கொண்டுள்ளது).
எனவே எல்லாம் தொகுக்கப்பட்டது. இயக்கியை 2 வது கட்டத்தில் நிறுவுகிறோம் (நிறுவவும்), அதே நேரத்தில் இயக்கி வேலை செய்ய தேவையான கூடுதல் ஃபார்ம்வேர் கோப்புகளை நகலெடுக்கவும்:

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

பகுதி 3. தி போர்ன் அல்டிமேட்டம்

நான் விசிலை போர்ட்டில் சொருகுகிறேன்... எதுவும் நடக்காது. எல்லாம் சும்மா இருந்ததா?

நான் ப்ராஜெக்ட்டில் உள்ள கோப்புகளைப் படிக்கத் தொடங்குகிறேன், அவற்றில் ஒன்றில் சிக்கல் என்ன என்பதைக் கண்டேன்: இயக்கி அது சேவை செய்யக்கூடிய VID/PID அடையாளங்காட்டிகளின் முழுமையான பட்டியலைக் குறிப்பிடுகிறது. எங்கள் சாதனம் இந்த இயக்கியுடன் வேலை செய்ய, நான் எனது ஐடியை கோப்பில் சேர்த்தேன் 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 */
};

நான் இயக்கியை மீண்டும் தொகுத்து கணினியில் மீண்டும் நிறுவினேன்.

இந்த முறை எல்லாம் தொடங்கியது. அடாப்டரில் ஒளி எரிந்தது மற்றும் பிணைய இடைமுகங்களின் பட்டியலில் புதிய சாதனம் தோன்றியது.

வயர்லெஸ் இடைமுகங்களைப் பார்ப்பது பின்வருவனவற்றைக் காட்டுகிறது:

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

இறுதிவரை படிப்பவர்களுக்கு போனஸ்

உங்கள் அடாப்டரில் எந்த அதிகபட்ச வேகம் குறிப்பிடப்பட்டுள்ளது என்பது முக்கியமில்லை என்று நான் சொன்னது நினைவிருக்கிறதா?
எனவே, மலிங்காவில் (மாடல் 4 வெளியீட்டிற்கு முன்), அனைத்து சாதனங்களும் (ஈதர்நெட் அடாப்டர் உட்பட) ஒரே யூ.எஸ்.பி பஸ்ஸில் அமர்ந்திருக்கும். அருமை, சரியா? எனவே யூ.எஸ்.பி பஸ்ஸின் அலைவரிசை அதிலுள்ள அனைத்து சாதனங்களுக்கும் இடையில் பிரிக்கப்பட்டுள்ளது. ஈத்தர்நெட் வழியாகவும், usb wi-fi வழியாகவும் (1 ரூட்டருடன் இணைக்கப்பட்டுள்ளது) காற்று மற்றும் கம்பி மூலம் வேகத்தை அளவிடும் போது, ​​அது சுமார் 20Mbit/s ஆக இருந்தது.

PS பொதுவாக, இந்த குறிப்பிட்ட அடாப்டருக்கான இயக்கியை தொகுப்பதற்கான இந்த வழிகாட்டி RPIக்கு மட்டும் செல்லுபடியாகும். நான் அதை லினக்ஸ் புதினாவுடன் எனது டெஸ்க்டாப்பில் மீண்டும் செய்தேன் - எல்லாம் அங்கேயும் வேலை செய்தது. உங்கள் கர்னல் பதிப்பிற்குத் தேவையான தலைப்புக் கோப்புகளை அதே வழியில் பதிவிறக்கம் செய்ய வேண்டும்.

UPD அறிவுள்ளவர்கள் பரிந்துரைத்தனர்: கர்னல் பதிப்பைச் சார்ந்திருக்காமல் இருக்க, dkms ஐப் பயன்படுத்தி இயக்கிகளைச் சேகரித்து நிறுவ வேண்டும். இயக்கிக்கான readme இந்த விருப்பத்தையும் கொண்டுள்ளது.

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. முன்மொழியப்பட்டது இணைப்பு சாதன ஐடி lwfinger/rtl8188eu களஞ்சியத்தின் பிரதான கிளையில் ஏற்றுக்கொள்ளப்பட்டது.

குறிப்புகள்
- RPi USB Wi-Fi அடாப்டர்கள்
- கிட்பப் lwfinger/rtl8188eu
- usb.ids
- rpi-ஆதாரம்

ஆதாரம்: www.habr.com