Решение проблем с карт-ридерами на чипах rts5129 и rts5139 в Linux

()

Во многих моделях ноутбуков используются недорогие карт-ридеры на чипах от Realtek. Очень широко распространены чипы rts5129 и rts5139, которые используются например в недорогих моделях Dell Inspiron/Vostro и Lenovo Yoga. В Linux для старых ядер (3.13 и ранее) для этих чипов предлагался модуль "rts5139", для более новых ядер предлагается модуль "rtsx", который должен поддерживать все карт-ридеры от Realtek, включая семейство rts51XX.

Однако на самом деле всё не так радужно и у модуля "rtsx" есть некоторые проблемы из-за которых карт-ридеры на чипах rts5129 и rts5139 начинают работать нестабильно или вовсе переставать работать до перезагрузки системы. Проблема как минимум касается Ubuntu 16.04, а так же Ubuntu 14.04 с обвновлёнными ядрами. Далее будет показано как можно решить эту проблему в дистрибутивах Ubuntu.

Карт-ридер ноутбука с картами памяти

Всё описанное далее проверено на ноутбуках Dell Vostro 3558 и Dell Inspiron 3542 с дистрибутивами Ubuntu 14.04 (с ядром 4.4), и Ubuntu 16.04 (так же с ядром 4.4). Скорее всего инструкция подойдёт и для других ноутбуков с картридерами на чипах rts5129 и rts5139, а так же для других дистрибутивов с ядрами 3.16 и новее и поддержкой dkms.

Для начала уточним модель карт-ридера чтобы быть уверенными что это действительно наш случай. Для этого нужно выполнить команду:

lsusb |grep "Card Reader"

Вывод должен выглядеть примерно так:

Bus 002 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller

В данном примере у нас как раз карт-ридер на чипе RTS5129 и можно приступать к решению проблемы. Основная идея заключается в отключении модули "rtsx" и сборке порта модуля "rts5139" из старых ядер. На github сразу несколько энтузиастов поддерживают свои порты. Автор этих строк использовал порт от пользователя github с ником "asymingt".

Клонируем репозиторий:

git clone https://github.com/asymingt/rts5139.git /usr/src/rts5139-1

Далее создаём файл "/usr/src/rts5139-1/dkms.conf" следующего содержания:

PACKAGE_NAME="rts5139"
PACKAGE_VERSION="1"
BUILT_MODULE_NAME[0]="rts5139"
#MAKE="'make'"
#CLEAN="'make' clean"
DEST_MODULE_LOCATION[0]="/updates/dkms""
AUTOINSTALL="YES"

Собираем модуль с помощью dkms:

for action in add build install; do dkms ${action} -m rts5139 -v 1; done

На следующем шаге нам нужно запретить загрузку модуля "rtsx" и его компонентов. Для этого нужно создать файл "/etc/modprobe.d/blacklist-rtsx.conf" содержащий всего три строки:

blacklist rtsx_usb_sdmmc
blacklist rtsx_usb_ms
blacklist rtsx_usb

Теперь нужно перезагрузить компьютер и после этого проблемы с карт-ридером должны решиться.

На этом пока всё. Приятной работы!

Ключевые слова: dkms, rts5129, rts5139, dell vostro, dell inspiron, lenovo yoga.

Подписаться на обновления: RSS-лента Telegram канал Twitter

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

Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2018 Вадим Калинников aka MooSE