Я работаю над беспроводным маршрутизатором, и передо мной была поставлена задача поддерживать некоторые карты Wi-Fi, а именно Ralink RT5390 и RT2571.

Карта RT2571 работает отлично, я могу установить ее в качестве точки доступа или подключиться к другим точкам доступа. Я могу переключаться между этими двумя режимами и нет проблем.

Затем, когда я пытаюсь с новым RT5390, при первой загрузке все работает нормально. Но тогда, если я перезагружу маршрутизатор, RT5390 не будет отображаться как точка доступа или не будет подключаться к другой точке доступа. Эта функциональность никогда не возвращается. Все процессы, которые должны быть запущены (hostapd или wpa_supplicant), работают так, как должны, но кажется, что карта не передает должным образом.

Если я запускаю iw dev scan <ifname of RT5390> я не получаю никаких результатов, но также и ошибок, возвращаемое значение iw равно 0 . При запуске я вижу, что драйверы и файл прошивки также были загружены правильно, без ошибок, и правила udev которые я использую для переименования сетевого интерфейса, также работают нормально.

Я использую образ Linux для buildroot с ядром 3.12.9 . Я собрал в модуле драйвера rt2800usb - так как это базовый чип на RT5390. Я также добавил соответствующий файл прошивки в /lib/firmware .

Я проверил, что управление питанием off , а также что мощность передачи установлена на 20 дБм. У меня заканчиваются идеи о том, что может быть причиной этого, и буду признателен за любые предложения.

2 ответа2

1

Согласно этой странице в WikiDevi, https://wikidevi.com/wiki/Ralink_RT5390_Reference_Design, RT5390 может управляться либо rt2800pci (в backports), либо rt2860sta. Из того, что вы говорите, не ясно, является ли используемый вами драйвер идентичным или отличным от используемого в бэкпортах. Возможно, вы захотите проверить это.

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

Единственное другое (кроткое) предложение, которое я имею, - это загрузить драйвер с параметром parm nohwcrypt, равным 1. Это хорошо известный трюк, который иногда позволяет этим драйверам работать правильно, без видимых на то веских причин.

0

В конце концов я решил эту проблему, найдя более новую версию файла прошивки rt2800.bin .

Пакет Debian, из которого я получил файл прошивки (ralink-firmware), имеет номер версии 0.36 . Когда я первоначально скачал и распаковал пакет, он содержал v0.24 rt2800.bin .

Я решил пройти все мои шаги снова, чтобы убедиться, что я не допустил ошибок, поэтому я снова загрузил пакет debian - версию 0.36 - и когда я его распаковал, я обнаружил, что rt2800.bin был обновлен до v0.29 Использование этой версии решило все мои проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .