Решение проблем с карт-ридерами на чипах 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-лента Канал в TamTam Telegram канал Канал в ICQ

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

Anonymous 2019-08-20 16:24:04 (#)

На 18.04 эта проблема есть. Лечение проблемы приводит к нерабочему Suspend https://github.com/asymingt/rts5139/issues/15

Anonymous 2021-01-23 01:39:08 (#)

У вас лишняя кавычка в предпоследней строке файла dkms.conf
И второе, после всех описанных манипуляций необходимо выполнить команду: depmod -a

MooSE 2021-02-22 20:23:52 (#)

У вас лишняя кавычка в предпоследней строке файла dkms.conf
Спасибо, поправил.

И второе, после всех описанных манипуляций необходимо выполнить команду: depmod -a

С этим вроде как DKMS сам справляется.

Anonymous 2021-10-05 09:03:23 (#)

Спасибо за материал! Все завелось!
Новый комментарий

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




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности