Проблемы с Ubuntu 20.04 и TP Link AC1300 Archer T4U

Вопрос или проблема

Я думаю, это работало на предыдущих версиях Linux, но с новой версией донгл просто не распознается. Из драйверов, предложенных на странице TP-Link, есть инструкция по установке для Linux, которая похоже не работает.

У кого-нибудь есть идеи, есть ли способ заставить это работать? У меня ощущение, что это как-то связано с новым ядром…

Существует несколько различных аппаратных ревизий, поэтому сначала вам нужно определить, какая именно у вас. Есть пару различных методов:

  • Посмотрите на устройство
    • Либо на этикетке устройства, либо на металле, где оно подключается, должно быть FCC-ID. Версия находится в конце этого значения и начинается с V, например TE7T4UV32 — это v3.2

      Дополнительную информацию можно найти здесь: https://www.tp-link.com/support/faq/46/

  • Сопоставьте идентификатор устройства
    • Подключите устройство и выполните команду: lsusb. Вы должны увидеть запись, похожую на эту:

      Bus 001 Device 007: ID 2357:0115 TP-Link 802.11ac NIC

      Аппаратный ID должен показать вам, какую версию вы имеете:

      • 2357:0101: v1
      • 2357:010d: v2
      • 2357:0115: v3

Теперь вы можете установить драйвер в зависимости от версии оборудования:

v1 и v2

Эти устройства имеют чипсет rtl8812au, и вы можете следовать предложению Pilot6:

sudo apt install rtl8812au-dkms

v3

Убедитесь, что у вас установлен как минимум ядро 6.2, например, если вы используете Ubuntu LTS:

sudo apt install linux-generic-hwe-$(lsb_release -rs)

Подробнее

Это устройство имеет чипсет rtl8812bu. Ранее вам необходимо было вручную установить модуль ядра, но теперь это больше не требуется с новыми ядрами.

Поэтому все, что вам нужно сделать, это убедиться, что у вас установлено более новое ядро:

  1. Проверьте, какое ядро у вас установлено:

    uname -r
    

    Если это 6.2 или позже, устройство должно работать из коробки. В противном случае продолжайте читать

  2. Если вам нужно установить более новое ядро, убедитесь, что вы используете поддерживаемую версию Ubuntu: https://ubuntu.com/about/release-cycle

  3. Если вы используете LTS версию Ubuntu, вы можете установить более новое ядро так:

    sudo apt install linux-generic-hwe-$(lsb_release -rs)
    

    ⓘ Вы можете получить ошибки, если уже установили rtl88x2bu из инструкций ниже; вы можете их игнорировать на данный момент

  4. Убедитесь, что оно устанавливает ядро версии 6.2 или выше, и перезагрузите систему

  5. Устройство должно просто работать. Вы можете дополнительно подтвердить, что загружен правильный драйвер, следующим образом:

    $ lsmod | grep 2bu
    rtw88_8822bu           16384  0
    rtw88_usb              24576  1 rtw88_8822bu
    rtw88_8822b           233472  1 rtw88_8822bu
    
  6. (Опционально) Если вы ранее установили драйвер вручную, вы можете его удалить. См. следующий раздел

Удаление вручную установленного драйвера v3

Если вы ранее установили драйвер v3 вручную, как описано ниже, вы можете его удалить. Это ускорит обновления, так как пропустит попытку установить ручной драйвер при каждом обновлении ядра и предотвратит ошибки. Недостаток в том, что устройство больше не будет работать с более старыми ядрами.

  1. Перечислите все версии установленных драйверов, например:

    $ dkms status
    rtl88x2bu/5.6.1, 5.4.0-96-generic, x86_64: built
    rtl88x2bu/5.8.7.1, 5.15.0-130-generic, x86_64: installed
    rtl88x2bu/5.8.7.1, 6.2.0-37-generic, x86_64: installed
    
  2. Для каждой установленной версии (первая колонка) удалите её для всех ядер, например:

    sudo dkms remove rtl88x2bu/5.6.1 --all
    sudo dkms remove rtl88x2bu/5.8.7.1 --all
    
  3. (Опционально) Удалите старые ядра, которые не поддерживают устройство

    Чтобы не случайно загрузиться со старым ядром, не поддерживающим устройство, вы можете удалить старые ядра:

    1. Перечислите все установленные ядра

      dpkg -l | grep linux-image | grep ^i
      
    2. Удалите любые ядра старше 6.2

      ⚠️ Это может потребовать немного экспериментов, и если вам некомфортно, вы можете пропустить этот шаг. Например, вот что мне пришлось сделать:

      1. Я увидел, что установлено linux-image-5.15.0-130-generic, поэтому я выполнил эту команду, чтобы удалить его и пакет заголовков:

        sudo apt purge linux-image-5.15.0-130-generic linux-headers-5.15.0-130-generic
        
      2. Но затем я заметил, что она собирается установить ещё одно старое ядро (linux-image-unsigned-5.15.0-130-generic), поэтому я изменил команду вот так:

        sudo apt purge linux-image-5.15.0-130-generic linux-headers-5.15.0-130-generic linux-image-unsigned-5.15.0-130-generic
        

        Это дало мне желаемый результат, но также удалило linux-generic, linux-headers-generic и linux-image-generic. Я знал, что в моём случае это нормально, потому что я использую ядро HWE (linux-generic-hwe-22.04).

Установка драйвера вручную для старых ядер

Если вы используете ядро старше версии 6.2 и не можете его обновить, потребуется немного больше работы, чтобы всё заработало. К счастью, для этого есть работающий драйвер: https://github.com/cilynx/rtl88x2bu

Чтобы это заработало, сначала вам нужно установить некоторые пакеты и клонировать репозиторий Git:

sudo apt-get install build-essential dkms git
git clone https://github.com/cilynx/rtl88x2bu.git

Затем следуйте инструкциям здесь для установки драйвера:

cd rtl88x2bu
./deploy.sh

Примечание: Ранее я рекомендовал драйвер, предложенный Диего (https://github.com/EntropicEffect/rtl8822bu), но больше не могу его рекомендовать:

  • После выхода из режима сна он больше не мог подключаться к беспроводным сетям, и мне приходилось отключать и переподключать устройство
  • Этот драйвер является форком форка, и, к сожалению, нет возможности сообщать о проблемах

Обновление вручную установленного драйвера

Если вы ранее установили драйвер ядра для устройства v3 и вам нужно его обновить:

  1. Обновите репозиторий git

    • Если он уже у вас клонирован: git pull
    • В противном случае, реконите (см. выше)
  2. Запустите скрипт развёртывания снова

    ./deploy.sh
    

    Если вы получите ошибку, вам может потребоваться сначала удалить драйвер:

    sudo dkms remove rtl88x2bu/5.8.7.1 --all
    
  3. Установите драйвер для всех остальных ядер (скрипт развёртывания устанавливает его только для текущего ядра)

    ls /boot/initrd.img-* | cut -d- -f2- | \
        sudo xargs -n1 /usr/lib/dkms/dkms_autoinstaller start
    

    (Источник: Команда для пересборки всех модулей DKMS для всех установленных ядер?)

Только драйвер bu https://github.com/EntropicEffect/rtl8822bu работал для меня на ядре 5.4.0-7642-generic. Драйвер, который предоставляет TPLink здесь https://www.tp-link.com/us/support/download/archer-t4u/#Driver, не совместим с более новыми ядрами.

https://github.com/aircrack-ng/rtl8812au/blob/v5.6.4.2/README.md

Проверьте этот драйвер, отлично работает в 20.04.

Поскольку эта тема является одной из первых в поиске Google по данной проблеме, я хотел бы добавить, что предложенный в этой теме драйвер, похоже, не работает на ядре 5.11 (в настоящее время в 21.04 и 21.10)

Но драйвер с Github Linux Driver for USB WiFi Adapters that are based on the RTL8812BU and RTL8822BU Chipsets кажется работает без проблем.

Мой TP-Link AC600 – Archer T2U Plus версия 1.0
ID: 2357:0120

Bus 001 Device 002: ID 2357:0120 TP-Link 802.11ac WLAN Adapter

работает с драйвером rtl8814au (на Ubuntu 20.04 Server)

sudo apt install git dkms
git clone https://github.com/aircrack-ng/rtl8814au.git
cd rtl8814au
sudo make dkms_install
iwconfig

На Ubuntu 20.04 ядро 5.13 для меня работает с драйвером с https://www.cudytech.com/wu1200_software_download

Ответ или решение

Если ваш адаптер TP-Link AC1300 Archer T4U не распознается в Ubuntu 20.04, это может быть связано с обновлениями ядра или несовместимостью драйверов, предоставленных TP-Link для Linux. Давайте разберемся, как решить эту проблему, используя пошаговый подход.

1. Определение версии устройства

Перед установкой драйверов важно определить аппаратную ревизию вашего устройства. Существует несколько методов:

  • Найти отметку на устройстве: На корпусе устройства должна быть указана версия, например, TE7T4UV32 указывает на v3.2. Дополнительная информация доступна на сайте TP-Link.
  • Использовать lsusb: Подключите устройство и выполните команду lsusb. Вы найдете строку вида:
    Bus 001 Device 007: ID 2357:0115 TP-Link 802.11ac NIC

    Аппаратные идентификаторы помогут определить версию:

    • 2357:0101: v1
    • 2357:010d: v2
    • 2357:0115: v3

2. Установка драйверов

Версии v1 и v2

Для устройств с чипсетом rtl8812au рекомендуется установка с помощью:

sudo apt install rtl8812au-dkms
Версия v3

Эти устройства используют чипсет rtl8812bu. С новым ядром 6.2 и выше драйвера уже интегрированы в ядро:

  1. Проверьте версию ядра:

    uname -r

    Если версия ядра 6.2 или выше, устройство должно работать без дополнительных шагов.

  2. Обновление ядра:
    Если необходимо обновить ядро, выполните:

    sudo apt install linux-generic-hwe-$(lsb_release -rs)

    Перезагрузитесь после установки обновлений.

  3. Проверка загруженных модулей:
    Убедитесь, что необходимые модули загружены:

    lsmod | grep 2bu

3. Ручная установка драйвера для устаревших ядер

Если вы не можете обновить ядро до версии 6.2 или выше, можно установить драйвер вручную:

  1. Установите необходимые инструменты:

    sudo apt-get install build-essential dkms git
  2. Клонирование репозитория и установка драйвера:

    git clone https://github.com/cilynx/rtl88x2bu.git
    cd rtl88x2bu
    ./deploy.sh

Заключение

Проблемы совместимости беспроводных адаптеров нередко возникают из-за различий между версиями ядра и драйверами. В случае с TP-Link AC1300 Archer T4U можно подобрать решение, соответствующее версии вашего устройства и ядра системы. Убедитесь, что ваши действия отвечают актуальным версиям используемых компонентов.

SEO оптимизация

Для оптимизации статьи по SEO включите ключевые фразы, такие как "решение проблем TP-Link AC1300 на Ubuntu", "драйверы для TP-Link Archer T4U" и "RTL8812AU RTL8812BU Ubuntu" в заголовки и текст статьи.

Оцените материал
Добавить комментарий

Капча загружается...