[[_linuxkpi_802_11_and_native_wireless_update]]
=== Обновление LinuxKPI 802.11 и нативного беспроводного стека (Native Wireless)

Ссылки: +
link:https://github.com/FreeBSDFoundation/proj-laptop/issues/66[Поддержка беспроводных карт MediaTek] URL: link:https://github.com/FreeBSDFoundation/proj-laptop/issues/66[] +
link:https://github.com/FreeBSDFoundation/proj-laptop/issues/99[Поддержка беспроводных карт Realtek] URL: link:https://github.com/FreeBSDFoundation/proj-laptop/issues/99[]

Контакт: Bjoern A. Zeeb <bz@FreeBSD.org> +
Контакт: Список рассылки FreeBSD по беспроводным технологиям <wireless@FreeBSD.org>

Этот отчёт посвящён активностям по использованию беспроводных драйверов Linux с разрешающей это лицензией, в основном без изменений, на FreeBSD, а также подготовке нативного стека net80211 к поддержке новых стандартов.

==== Обновления драйверов

Поскольку обновление драйверов до версии на основе Linux v6.16 застопорилось в прошлом квартале из-за конфликта с drm-kmod, а позже из-за проблемы с nvidia-drm, мы обновились до драйверов на основе v6.17 прямо перед финальной датой выпуска 15.0-RELEASE в сентябре.
К сожалению, несколько исправлений уже не успели попасть в релиз.
Впоследствии нам также пришлось исправить package:graphics/drm-515-kmod[] и скорректировать код LinuxKPI, чтобы восстановить работу SR-IOV для mlx5en.

В декабре мы начали отслеживать Linux v6.18 для некоторых драйверов.
Вероятно, последует и больше, или мы перейдём сразу на v6.19-rcN, чтобы воспользоваться улучшениями из вышестоящего проекта (upstream).

==== Прошивки (Firmware)

С обновлением драйверов до новых версий потребовалось обновить несколько файлов прошивок.
Автоматизированный способ, который мы использовали для man:iwlwifi[4], больше не работает, поэтому теперь мы забираем всё, что можем, но всё ещё пытаемся классифицировать файлы по вариантам, пока это возможно.
Фреймворк портов для wifi-firmware был полностью переключен на поставку только обычных файлов прошивок и больше никаких модулей ядра.
Это означает, что обновления ядра больше не требуют обновления пакетов, и прошивки могут обновляться независимо (в большинстве случаев).
Прошивки для всех других поддерживаемых (или неподдерживаемых) драйверов также были обновлены.

==== Поддержка Intel iwlwifi

Было реализовано несколько исправлений ошибок, в основном связанных с тем фактом, что поддрайвер mvm для man:iwlwifi[4] теперь официально разделён на mvm и mld в новых версиях.
Также была исправлена поддержка карт с 1x1 антеннами, таких как AX101, которые приводили к сбою прошивки с 11n и 11ac.

==== Поддержка чипсетов Mediatek mt76

После того как мы наконец нашли ноутбук, в котором карта MT7922 могла использоваться для разработки (это был не основной слот WiFi в моём ноутбуке, используемом для работы с этим фреймворком), мы добились прохождения пакетов на базовых скоростях в течение 10 дней.
Драйвер mt76 продолжает упираться в конфликт `struct page` в LinuxKPI и дальнейшую работу над `page pool`.
Был открыт pull request для главной ветки (master) drm-kmod, чтобы попытаться заранее решить возможные конфликты из-за изменений `struct page`.
Ведётся работа по поддержке скоростей 11n и 11ac.
Со временем будут добавлены другие поддерживаемые чипсеты mt76, вероятно, следующим будет MT7925.

==== Поддержка Realtek rtw88 и rtw89 (11n и 11ac)

У некоторых чипсетов Realtek были/есть проблемы с работой или аварийным завершением работы из-за реализации совместимости с LinuxKPI.
По крайней мере, один чипсет man:rtw88[4] не может ассоциироваться (или нормально сканировать), в то время как драйвер man:rtw89[4] иногда может вызывать аварийное завершение работы.
Ведётся работа по улучшению этой ситуации.
Кроме того, ведётся работа по поддержке скоростей 802.11n и 802.11ac с этими драйверами.
Поддержка BlockACK была налажена, и man:rtw89[4], кажется, нормально работает с RX, но всё ещё застрял на базовых скоростях для TX.
Последнее, вероятно, вызвано более новыми низкоуровневыми вызовами драйвера, которые мы теперь начинаем поддерживать в LinuxKPI для решения этой проблемы.

Спонсор: Фонд FreeBSD

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (17.01.2026): d033928f3505a3f60d0f10e913e6e80a810d984c
//
