Ubuntu 16.10 и Mediatek MT7630E Wifi + Bluetooth

photo_2016-10-18_01-54-08Добрались, наконец у меня руки снести Windows 10 (в девичестве предустановленная 8.1) на моем ноутбуке ASUS. И хорошо, что я решил сначала проверить как новая ubuntu 16.10 будет себя вести на нем, запустив Live-режим. Оказалось что не зря. Запустилось мгновенно, работало замечательно всё, кроме одного. Не оказалось беспроводной сети. От слова совсем. В списке устройств по lspci Wi-Fi адаптер опознан был как MEDIATEK MT7630E. Не захотев рисковать я начал поиски решения без установки системы.

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

snimok-jekrana-2015-08-12-v-141918

Потратив с полчаса на чтение форумов, я нашел рабочий вариант, который меня устроил. Для этого мне пригодился второй ПК, хотя можно было обойтись и тем самым ноутбуком, я же не стал удалять систему, мне просто было лень в нее загружаться :)

Итак, решение:

Идем по адресу https://github.com/neurobin/MT7630E Это исходники модифицированного драйвера. Качаем или ZIP-архив, или клонируем репозиторий с гитхаба. (на всякий пожарный, выложу у себя ZIP, а то вдруг чего приключится)

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

Так как я сначала искал работающее решение, я решил протестировать работу. Для этого достаточно дать исполняемые права на файл test и запустить его от имени root

$cd path/to/mt7630-release
$sudo chmod +x test
$sudo ./test

После выполнения сборки и подключения модуля в ядро я увидел что ноутбук обнаружил wifi сети. Всё оказалось просто.

Ну а дальше все как по маслу. Установка с USB, загрузка в систему. В свежеустановленной системе wifi конечно же отсутствует. Поэтому — снова копируем исходники с подготовленного носителя, кладем их в директорию без кириллических символов в пути, и выполняем чуть другую команду:

$cd path/to/mt7630-release
$sudo chmod +x install unistal bpatch
$sudo ./install

Вот и всё казалось бы. Однако по сути — мы установили модуль для текущего ядра. Что же будет если установить новое ядро и загрузить с ним систему? Мы снова получим неработающий wifi. Чтобы этого не произошло хотя бы для минорных версий ядра, надо установить dkms в систему, сделать деинсталляцию модуля:
$./uninstall
$sudo make clean

И установить для dkms
$sudo make dkms
При мажорных релизах, однако, вам всё равно придется удалять и заново устанавливать модуль вот таким образом:

./uninstall
make clean
./install

Если этого не сделать, то при повторной установке модуля вы получите что-то типа такого:

modprobe: ERROR: could not insert ‘mt7630e’: Exec format error
modprobe: ERROR: could not insert ‘mt76xx’: Exec format error

Еще одно НО. Данный драйвер самописный и не имеет никакой цифровой подписи. Поэтому, если у вас включен Secureboot, то при его установке вы будете получать ошибку об отсутствующем сертификате. Это не вина Linux. Он просто показывает сообщения от железа, которое контролирует какие драйвера вы устанавливаете. Поэтому, если у вас есть возможность — отключите Secureboot в BIOS. В моём ноутбуке это делается в разделе Boot.

Напоследок — снимок экрана со свежей системы:

snimok-ekrana-ot-2016-10-18-01-48-56

Думаю, это же решение будет работать как минимум на Debian. На этом всё. Удачи.

Автор: Mirivlad

Скромный труженик консоли и окошек.

Комментарии: