Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Аппаратные модули
  3. WiFi/Ethernet/Bluetooth
  4. Нужна Помощь!! Подключение Wi-Fi TP-Link TL-WN725N V2 к Raspberri Pi Zero на Raspbian 4.4.11+ #888

Нужна Помощь!! Подключение Wi-Fi TP-Link TL-WN725N V2 к Raspberri Pi Zero на Raspbian 4.4.11+ #888

Запланировано Прикреплена Закрыта Перенесена WiFi/Ethernet/Bluetooth
3 Сообщения 1 Posters 57 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано pi
    #1

    В русскоязычном интернете по этой проблеме нет информации, а в англоязычном, информации для решения проблемы недостаточно.

    Проблему затрудняет то, что на Raspberri Pi ZERO отсутствует проводной интернет, и для того, чтобы настроить двайвер беспроводного донгла, приходится пользоваться персональным компьютером и флэшкой.

    Проблему также осложняет то, что с официального сайта Raspberri Pi всегда можно скачать только последнюю версию ОС

    Статья, которой я пользовался:
    www.raspberrypi.org/forums/viewtopic.php?f=28&t=62371&hilit=WN725N

    Немного на русском:
    ur7hbq.blogspot.ru/2015/01/tl-wn725n-v2-8188eu-raspberry-pi-update.html

    Итак, что я делал:

    uname -a
    Linux raspberrypi 4.4.11+ #888 Mon May 23 20:02:58 BST 2016 armv6l GNU/Linux
    

    Значит качаю двайвер для моей версии по ссылке:

    dl.dropboxusercontent.com/u/80256631/8188eu-4.4.11-888.tar.gz

    Устанавливаю:

    sudo install -p -m 644 8188eu.ko /lib/modules/4.4.11+/kernel/drivers/net/wireless/
    sudo insmod /lib/modules/4.4.11+/kernel/drivers/net/wireless/8188eu.ko
    

    и получаю ошибку:

    insmod: ERROR: could not insert module /lib/modules/4.4.11+/kernel/drivers/net/wireless/8188eu.ko: Invalid module format
    

    Ну думаю, наверное драйвер скомпилирован для другой версии малины.

    Иду сюда:

    github.com/twd2/TL-WN725N-V2-Driver-for-Linux

    Качаю исходник, компилирую:

    make all
    

    Получаю ошибку:

    make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.4.11+/build M=/home/pi/Desktop/rtl8188eu-master modules
    make[1]: *** /lib/modules/4.4.11+/build: No such file or directory. Stop.
    Makefile:147: recipe for target 'modules' failed
    make: *** [modules] Error 2
    

    Думаю, наверное отсутсвует папка build по указанному пути, делаю папку, компилирую заново, получаю ошибку:

    \make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.4.11+/build M=/home/pi/Desktop/rtl8188eu-master modules
    make[1]: Entering directory '/lib/modules/4.4.11+/build'
    make[1]: *** No rule to make target 'modules'. Stop.
    make[1]: Leaving directory '/lib/modules/4.4.11+/build'
    Makefile:147: recipe for target 'modules' failed
    make: *** [modules] Error 2
    

    При попытке нагуглить по проблемые rule to make tarket, он отсылает в такие дебри C++… Причем самое странное что в интернете англоязычном у всех все работает чуть ли не из коробки. Подскажите пожалуйста куда копать?

    Спасибо!!!

    P.S. на всякий случай:

    lsusb
    Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp.
    ifconfig
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:512 errors:0 dropped:0 overruns:0 frame:0
              TX packets:512 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:41472 (40.5 KiB)  TX bytes:41472 (40.5 KiB)
    
    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано pi
      #2
      make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.4.11+/build M=/home/pi/Desktop/rtl8188eu-master modules
      make[1]: *** /lib/modules/4.4.11+/build: No such file or directory. Stop.
      Makefile:147: recipe for target 'modules' failed
      make: *** [modules] Error 2
      

      Это говорит о том что нужно поставить заголовочные файлы для твоей версии ядра.
      apt-get install raspberrypi-kernel-headers
      после этого папка /lib/modules/<kernel-version>/build появится.

      Попробовал у себя, Rpi B+:

      pi@raspberrypi /usr/src/linux-headers-4.4.9+/arch $ uname -a
      Linux raspberrypi 4.4.9+ #884 Fri May 6 17:25:37 BST 2016 armv6l GNU/Linux
      

      Cборка завершается ошибкой:

      pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux $ make
      make ARCH=armv6l CROSS_COMPILE= -C /lib/modules/4.4.9+/build M=/home/pi/TL-WN725N-V2-Driver-for-Linux
      make[1]: Entering directory '/usr/src/linux-headers-4.4.9+'
      Makefile:606: arch/armv6l/Makefile: No such file or directory
      make[1]: *** No rule to make target 'arch/armv6l/Makefile'.  Stop.
      make[1]: Leaving directory '/usr/src/linux-headers-4.4.9+'
      Makefile:582: recipe for target 'modules' failed
      make: *** [modules] Error 2
      

      Не может найти файл arch/armv6l/Makefile в папке '/usr/src/linux-headers-4.4.9+'. Там действительно такого файла нет. Похоже какая-то хитрость в скрипте Makefile для определения архитектуры процессора есть.

      Здесь советуют сделать либо так
      make ARCH=arm либо так (номер версии у тебя будет другой, отличный то 4.4.9+):

      cd /usr/src/linux-headers-4.4.9+/arch
      sudo ln -s arm armv6l
      cd ~/TL-WN725N-V2-Driver-for-Linux/
      make
      

      Но тебе это вроде не потребуется, т.к. в строке компиляции у тебя и так уже присутствует ARCH=arm.

      После этого сборка идет, но в конце завершается ошибкой, что-то не так в исходниках драйвера.
      Итак, ошибка номер рас:

      CC [M]  /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/usb_intf.o
      /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/usb_intf.c: In function ‘rtw_drv_entry’:
      /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/usb_intf.c:1535:34: error: macro &quot;__DATE__&quot; might prevent reproducible builds [-Werror=date-time]
        DBG_871X(&quot;build time: %s %s\n&quot;, __DATE__, __TIME__);
                                        ^
      /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/usb_intf.c:1535:44: error: macro &quot;__TIME__&quot; might prevent reproducible builds [-Werror=date-time]
        DBG_871X(&quot;build time: %s %s\n&quot;, __DATE__, __TIME__);
                                                  ^
      

      Компилятор ругается на макросы DATE и TIME.
      В чем точно дело я не знаю, но можно эти строки в исходниках поправить. Для этого открываем файл /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/usb_intf.c и меняем следющую строку

      DBG_871X(&quot;build time: %s %s\n&quot;, __DATE__, __TIME__);
      наDBG_871X(&quot;build time: %s %s\n&quot;,&quot;2016-06-22&quot;, &quot;22:00:36&quot;);
      

      Это костыль конечно, но влиять на работу драйвера не будет.
      Запускаем сборку снова. Теперь появляется следующая ошибка:

      CC [M]  /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/rtw_android.o
      /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/rtw_android.c: In function ‘rtw_android_cmdstr_to_num’:
      /home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/rtw_android.c:230:3: error: implicit declaration of function ‘strnicmp’ [-Werror=implicit-function-declaration]
         if(0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) )
         ^
      cc1: some warnings being treated as errors
      scripts/Makefile.build:258: recipe for target '/home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/rtw_android.o' failed
      

      Теперь компилятор не может найти функцию strnicmp.

      Решение нашлось здесь: правим в файле **/home/pi/TL-WN725N-V2-Driver-for-Linux/os_dep/linux/rtw_android.**c строку

      if(0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) ) на такую #if (LINUX_VERSION_CODE &gt;= KERNEL_VERSION(4, 0, 0))
         if(!strncasecmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) )
      #else
         if(0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) )
      #endif
      

      После этого снова запускаем сборку командой make. У меня после этого драйвер скомпилировался.
      Установить его можно командой

      sudo make install
      
      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано pi
        #3

        Пробовал с дропбокса скачивать файлы для своей версии ядра, результат такой же как и у тебя — при попытке загрузить модуль ругается на формат файла.
        Вот так выглядит скомпилированный мной модуль

        pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux $ file 8188eu.ko
        8188eu.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=9af26ac15901038c105c1e7de7e898937187f1cc, not stripped
        

        а вто так скачанный:

        pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux $ file ../8188eu/8188eu.ko
        ../8188eu/8188eu.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=23180437f351ee6c55aa7d512e95bed4d3b6bd98, not stripped
        

        Я лично отличий не вижу (если линуксотды есть — пусть подскажут как еще сравнить).
        При попытке загрузить скаченный модуль:

        pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux 
        $ sudo insmod ../8188eu/8188eu.ko
        insmod: ERROR: could not insert module ../8188eu/8188eu.ko: Invalid module format
        

        когда загружаю сомпилироованный модуль:

        pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux $ sudo insmod 8188eu.ko
        pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux $ lsmod
        Module                  Size  Used by
        8188eu                590226  0
        cfg80211              499234  0
        rfkill                 21397  2 cfg80211
        8192cu                555405  0
        snd_bcm2835            23163  0
        snd_pcm                95441  1 snd_bcm2835
        snd_timer              22396  1 snd_pcm
        snd                    68368  3 snd_bcm2835,snd_timer,snd_pcm
        spi_bcm2835             8032  0
        bcm2835_gpiomem         3823  0
        bcm2835_wdt             4133  0
        uio_pdrv_genirq         3718  0
        uio                    10230  1 uio_pdrv_genirq
        ipv6                  367575  26
        pi@raspberrypi ~/TL-WN725N-V2-Driver-for-Linux $
        

        Также по твоей ссылке автор предлагает скачать скрипт wget https://dl.dropboxusercontent.com/u/80256631/install-wifi.tar.gz
        tar xzf install-wifi.tar.gz который сам должен скачать подходящую версию драйвера. У меня он ругнулся на отстутствие адаптера и ничего не скачал, может у тебя получится.

        1 ответ Последний ответ
        0

        • Войти

        • Нет учётной записи? Зарегистрироваться

        • Login or register to search.
        • Первое сообщение
          Последнее сообщение
        0
        • Категории
        • Главная
        • Документация
        • Последние
        • Пользователи