LINUXTALKS.CO

Wifibox 0.10 - окружение для использования WiFi-драйверов Linux во FreeBSD

 ,

L


0

1

Доступен выпуск проекта Wifibox 0.10, нацеленного на решение проблемы с использованием во FreeBSD беспроводных адаптеров, для которых отсутствуют необходимые драйверы. Работа проблемных для FreeBSD адаптеров обеспечивается через запуск гостевой системы с Linux, в которой загружаются родные для Linux драйверы беспроводных устройств.

Установка гостевой системы с драйверами автоматизирована, а все необходимые компоненты оформлены в виде готового пакета wifibox, который запускается при загрузке при помощи поставляемого в комплекте rc-сервиса. В том числе корректно обрабатывается переход в спящий режим. Окружение потенциально может применяться для любых WiFi-карт, поддерживаемых в Linux, но протестировано в основном на чипах Intel. Также проверена корректная работа на системах с беспроводными чипами Qualcomm Atheros и AMD RZ608 (MediaTek MT7921K).

Гостевая система запускается при помощи гипервизора Bhyve, в котором организуется проброс доступа к беспроводной карте. Для работы требуется система с поддержкой аппаратной виртуализации (AMD-Vi или Intel VT-d). Начинка гостевой системы основана на дистрибутиве Alpine Linux, построенного на базе системной библиотеки Musl и набора утилит BusyBox. Размер образа занимает на диске примерно 30МБ и потребляет около 90 МБ оперативной памяти.

Для подключения к беспроводной сети используется пакет wpa_supplicant, файлы конфигурации для которого синхронизируются с настройками из основного окружения FreeBSD. Создаваемый wpa_supplicant управляющий Unix-сокет пробрасывается в хост-окружение, что позволяет использовать штатные утилиты FreeBSD для подключения и работы с беспроводной сетью, в том числе можно использовать утилиты wpa_cli и wpa_gui (net/wpa_supplicant_gui).

В новом выпуске переработан механизм проброса WPA в основное окружение, что позволило обеспечить работу как с wpa_supplicant, таки и с hostapd. Снижен необходимый для гостевой системы объём памяти. Прекращена поддержка FreeBSD 13.0-RELEASE.\

Дополнительно можно отметить работу по улучшению предлагаемых во FreeBSD драйверов для беспроводных карт на чипах Intel и Realtek. При поддержке организации FreeBSD Foundation продолжается развитие нового драйвера iwlwifi, включённого в состав FreeBSD 13.1. Драйвер основан на Linux-драйвере и коде из Linux-подсистемы net80211, поддерживает стандарт 802.11ac и может использоваться с новыми беспроводными чипами Intel. Драйвер загружается автоматически во время загрузки при обнаружении необходимой беспроводной карты. Работа компонентов беспроводного стека Linux обеспечивается при помощи прослойки LinuxKPI. Ранее похожим образом для FreeBSD был портирован драйвер iwm.

Параллельно началась разработка драйверов rtw88 и rtw89 для беспроводных чипов Realtek RTW88 и RTW89, которые также развиваются путём переноса соответствующих драйверов из Linux и работают при помощи прослойки LinuxKPI. Драйвер rtw88 уже готов для начального тестирования, а драйвер rtw89 пока находится на стадии разработки.

Кроме того, можно упомянуть публикацию деталей и готового эксплоита, связанных с уязвимостью (CVE-2022-23088) в беспроводном стеке FreeBSD, устранённой в апрельском обновлении. Уязвимость позволяет выполнить свой код на уровне ядра через отправку специально оформленного кадра в момент нахождения клиента в режиме сканирования сети (на стадии до привязки SSID). Проблема вызвана переполнением буфера в функции ieee80211_parse_beacon() при разборе beacon-кадров, передаваемых точкой доступа. Переполнение стало возможным из-за отсутствия проверки соответствия фактического размера данных и размера, указанного в поле заголовка. Проблема проявляется в версиях FreeBSD, сформированных с 2009 года.

Среди не связанных с беспроводным стеком недавних изменений во FreeBSD: проведена оптимизация времени загрузки, которая на тестовой системе была сокращена с 10 до 8 секунд; реализован GEOM-модуль gunion для выноса на другой диск изменений, производимых поверх диска, доступного в режиме только для чтения; для crypto API ядра подготовлены криптографические примитивы XChaCha20-Poly1305 AEAD и curve25519, необходимые для драйвера VPN WireGuard.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★☆☆☆

А как PCI устройство пробрасывается в виртуалку, для этого разве не нужен IOMMU в железе?

JamesHolden    
★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

это сейчас почти везде есть со времен core 2 duo. разве что на нихнем сегменте самого дешевого железа отсутствует. те, кому нужны UNIX системы, обычно в курсе аппаратных требований.

но я, конечно, на такой изврат, как в новости, не пошел бы.

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Ну не знаю, у меня Core 2 Duo и гораздо более новый ноут на sandy bridge 2010 года, там никакого IOMMU нету. Соответственно пробрасывать видюху в qemu я тоже не могу.

JamesHolden    
★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

когда я менял duron 700mhz на core 2 duo, то специально выбирал с vt-d :) можешь прикинуть, какие это годы)

гораздо более новый ноут на sandy bridge 2010 года

новый, но это нижний сегмент самого дешевого железа, ака ширпотреб.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

На Core 2 Duo e7200 небыло VT-x, не то что VT-d. Но это процессор 2008 года. А еще у меня был ноут 2009 года с процессор T4200, там тоже VT-x небыло.

Aber    
★★★★★★
Ubuntu / Firefox
Ответ на: комментарий от crypt

@Aber

Да не VT-d, понятно что это везде есть. Я же пишу - IOMMU нет. И О МММУУУУ

А без него как пробрасываться PCI устройства в виртуалку будут?

JamesHolden    
★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

Intel has published a specification for IOMMU technology as Virtualization Technology for Directed I/O, abbreviated VT-d.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

https://www.intel.com/content/www/us/en/products/sku/29754/intel-core2-duo-processor-e6320-4m-cache-1-86-ghz-1066-mhz-fsb/specifications.html

Мы немедленно приостановили все деловые операции в России. Это следует за нашим предыдущим решением приостановить все поставки клиентам в России и Беларуси.

Все :(

Aber    
★★★★★★
Ubuntu / Firefox
Ответ на: комментарий от Aber

хз, я апгрейдиться не собирался. вторичка будет цвести.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90