Адаптер Wi-Fi Broadcom не работает на Ubuntu 20.04.2

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

wireless-info: https://paste.ubuntu.com/p/w7nQFktm9P/

Как мне получить и установить работающий драйвер для этого адаптера Broadcom BCM43142?

sudo modprobe wl:

modprobe: ОШИБКА: ../libkmod/libkmod-module.c:838 kmod_module_insert_module() не удалось найти модуль с именем="wl"
modprobe: ОШИБКА: не удалось вставить 'wl': Неизвестный символ в модуле или неизвестный параметр (см. dmesg)
modprobe: ОШИБКА: ../libkmod/libkmod-module.c:990 command_do() Ошибка при выполнении команды установки '/sbin/modprobe --ignore-install wl ' для модуля wl: код возврата 1
modprobe: ОШИБКА: не удалось вставить 'wl': Неверный аргумент

mokutil –sb-state:

SecureBoot отключен

Методы, которые я уже пробовал и не получил результата:

Ссылки, которые вы опубликовали в своем вопросе, предполагают, что вы пробовали несколько различных пакетов и, очевидно, ни один из них не работает должным образом. Давайте сделаем уборку и начнем с нуля. С временным рабочим интернет-соединением по Ethernet, модему или любым доступным способом, пожалуйста, выполните команды в терминале:

sudo apt purge broadcom-sta-dkms
sudo apt purge broadcom-sta-source
sudo apt purge broadcom-sta-common
sudo apt purge bcmwl-kernel-source

Если некоторые из пакетов не установлены и поэтому не удалены, это нормально; просто переходите к следующему шагу.

sudo apt update && sudo apt -y upgrade
sudo apt install -y bcmwl-kernel-source

Перезагрузите.

Есть ли какие-либо улучшения?

Правка: В нашем чате мы обнаружили, что было установлено два дополнительных беспроводных драйвера. Это может быть объяснением ошибок cfg80211 при попытке загрузить драйвер Broadcom wl.

Мы удалили их обоих и перезагрузили. Ваш беспроводной интерфейс тогда заработал как ожидалось.

Для тех, кто не может использовать

sudo apt install bcmwl-kernel-source

Так что вы можете вручную составить из их исходного кода (с патчами, примененными для сборки под ядро 6.x).

!заметка: у меня ядро 6.5, протестировано ОК.

Сначала клонируем исходный код:

git clone https://git.launchpad.net/ubuntu/+source/bcmwl/

(чтобы быть подробным, мой последний коммит — cd76516d116a73018ca4cbe6b580bfd603465cb9, вы можете ‘git checkout cd76516d116a73018ca4cbe6b580bfd603465cb9’, если хотите иметь ту же ветку, что и я)

Перейдите в исходный код, вы увидите Makefile, README, debian и src, переместите Makefile в папку src

mv Makefile ./src/

Теперь создайте скрипт в директории src для применения патчей (уже в исходном коде)

#!/bin/bash

# путь к вашим патчам (измените, если хотите абсолютный путь)
PATCH_DIR="../debian/patches"

PATCHES=(
    "0002-Makefile.patch"
    "0003-Make-up-for-missing-init_MUTEX.patch"
    "0010-change-the-network-interface-name-from-eth-to-wlan.patch"
    "0013-gcc.patch"
    "0019-broadcom-sta-6.30.223.248-3.18-null-pointer-fix.patch"
    "0020-add-support-for-linux-4.3.patch"
    "0021-add-support-for-Linux-4.7.patch"
    "0022-add-support-for-Linux-4.8.patch"
    "0023-add-support-for-Linux-4.11.patch"
    "0024-add-support-for-Linux-4.12.patch"
    "0025-add-support-for-Linux-4.14.patch"
    "0026-add-support-for-Linux-4.15.patch"
    "0027-add-support-for-linux-5.1.patch"
    "0028-add-support-for-linux-5.6.patch"
    "0029-Update-for-set_fs-removal-in-Linux-5.10.patch"
    "0040-add-support-for-linux-5.18.patch"
    "0041-dev-addr-access.patch"
    "0042-add-support-for-linux-6.x.patch"
)

# Применить все
for PATCH in "${PATCHES[@]}"; do
    echo "Применение патча: $PATCH"
    patch -p1 < "$PATCH_DIR/$PATCH"

    if [ $? -ne 0 ]; then
        echo "Не удалось применить $PATCH, пропускаем."
    fi
done

echo "Все патчи успешно применены."

Теперь мы можем собрать

make -C /lib/modules/$(uname -r)/build M="$(pwd)"

или просто :

make

После сборки мы можем установить, используя команду:

sudo make install
sudo modprobe -r wl
sudo modprobe wl
lsmod |grep wl

Если есть wl, вы можете увидеть, что Wi-Fi работает.


Для тех, кто хочет использовать dkms для сборки:
Вам нужно получить исходный код и применить патчи, как выше.
Скопируйте папку src в

/var/lib/dkms/bcmwl/6.30.223.271+bdcom/source

Теперь проверьте, есть ли какие-либо установки dkms ранее, нам нужно удалить их:

dkms status
sudo dkms remove bcmwl/6.30.223.271+bdcom --all
dkms status

Перейдите в /var/lib/dkms/bcmwl/6.30.223.271+bdcom/source/dkms.conf и удалите все патчи:

PACKAGE_NAME="bcmwl"
PACKAGE_VERSION="#VERSION#"
CLEAN="rm -f *.*o"

BUILT_MODULE_NAME[0]="wl"
MAKE[0]="make -C $kernel_source_dir M=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build"
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"

Теперь все чисто, просто перейдите к сборке

sudo dkms build bcmwl/6.30.223.271+bdcom
sudo dkms install bcmwl/6.30.223.271+bdcom

или просто сделайте это:

sudo apt update
sudo apt install bcmwl-kernel-source

Теперь все работает нормально.

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

Проблема с работой Wi-Fi адаптера Broadcom на Ubuntu 20.04.2 и ее решение

Адаптер Broadcom BCM43142 может вызывать сложности в работе на Ubuntu 20.04.2, особенно когда речь идет о загрузке и использовании драйвера wl. В этой статье мы подробно рассмотрим шаги по устранению этой проблемы и последующему успешному подключению к Wi-Fi.

1. Причины проблемы

На основании предоставленной информации можно выделить несколько причин, почему адаптер не работает:

  • Неустановленные или конфликтующие драйверы: Возможно, что другие версии драйверов уже установлены на системе и мешают загрузке драйвера wl.
  • Загруженные модули: Сообщение об ошибке при выполнении команды modprobe wl указывает на то, что модуль не может быть загружен, что также может быть связано с конфликтами в драйверах или их несоответствием вашей версии ядра.

2. Предварительная подготовка

Убедитесь, что у вас есть работающий интернет-соединение через Ethernet или с помощью точки доступа на вашем мобильном устройстве.

3. Устранение старых драйверов

Во-первых, рекомендуется удалить потенциально конфликтующие драйверы. Для этого выполните следующие команды в терминале:

sudo apt purge broadcom-sta-dkms
sudo apt purge broadcom-sta-source
sudo apt purge broadcom-sta-common
sudo apt purge bcmwl-kernel-source

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

4. Установка драйвера bcmwl-kernel-source

После удаления старых драйверов обновите списки пакетов и установите необходимый драйвер:

sudo apt update && sudo apt -y upgrade
sudo apt install -y bcmwl-kernel-source

5. Перезагрузка системы

После завершения установки перезагрузите компьютер:

sudo reboot

6. Проверка работы адаптера

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

lsmod | grep wl

Если модуль загружен, это будет означать, что проблем с подключением к Wi-Fi быть не должно.

7. Ручная установка драйвера

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

  1. Склонируйте репозиторий с кодом драйвера:
git clone https://git.launchpad.net/ubuntu/+source/bcmwl/
cd bcmwl
  1. Переместите Makefile в папку src и примените необходимые патчи (при необходимости).
  2. Соберите и установите драйвер:
make && sudo make install
  1. Перезагрузите систему и проверьте состояние адаптера.

8. Использование DKMS

В качестве альтернативы, вы можете использовать dkms для автоматической компиляции драйвера при обновлении ядра:

sudo dkms add ./bcmwl
sudo dkms build bcmwl/6.30.223.271+bdcom
sudo dkms install bcmwl/6.30.223.271+bdcom

Заключение

Следуя вышеуказанным шагам, вы сможете установить и настроить драйвер для Wi-Fi адаптера Broadcom BCM43142 на Ubuntu 20.04.2. В случае возникновения дополнительных вопросов или проблем обратитесь на соответствующий форум поддержки Ubuntu или обратитесь к сообществу. Успехов!

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

Данная статья относится к ключевым запросам, связанным с установкой драйвера Broadcom на Ubuntu, включая “Broadcom Wi-Fi адаптер не работает Ubuntu” и “установка bcmwl-kernel-source”. Убедитесь, что информация представлена в максимально понятной и структурированной форме.

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

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