[[_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 + Контакт: Список рассылки FreeBSD по беспроводным технологиям Этот отчёт посвящён активностям по использованию беспроводных драйверов 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 //