Автор Тема: Cardreader Realtek Semiconductor Corp. RTS5129 не работает  (Прочитано 4934 раз)

Оффлайн ProfessorNavigator

  • Давно тут
  • **
  • Сообщений: 201
Дано: Альт p10 starterkit, обновлённый до Сизифа, ядро 5.16.1 un-def и указанный в теме кардридер. С предыдущими ядрами (все из ветки un-def, другие не проверял) тоже не работал. Модуль, упомянутый в этой теме, установлен. До сего дня использовал вот это решение (через автоматическую сборку с помощью dkms, инструкция взята отсюда). Но после обновления ядра до 5.16.1 модуль перестал собираться (ошибки компиляции). Собственно вопрос - есть ли варианты "завести" кардридер?

P.S. Был до этого опыт использования Arch Linux на данном железе - в нём кардридер работал, но через раз. С "перетыканием" мыши и прочими танцами с бубном. Вывод dmesg к сожалению не смотрел, поэтому, что и как происходило там, сказать не могу.

Онлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Просите апстрим исправить сборку на новом ядре.
Андрей Черепанов (cas@)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Дано: Альт p10 starterkit, обновлённый до Сизифа, ядро 5.16.1 un-def и указанный в теме кардридер. С предыдущими ядрами (все из ветки un-def, другие не проверял) тоже не работал.
...

$ cat /image/.disk/info
ALT alt-p10-xfce-sysv/x86_64 build 2021-12-11
$ lsusb -d 0bda:0129
Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
$ lsusb -t | sed -n '2p; 5p'
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
    |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
# modinfo rtsx_usb | head -n 9
filename:       /lib/modules/5.10.82-std-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
description:    Realtek USB Card Reader Driver
author:         Roger Tseng <rogerable@realtek.com>
license:        GPL v2
srcversion:     EE1790C29B3327F96C31101
alias:          usb:v0BDAp0140d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0139d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0129d*dc*dsc*dp*ic*isc*ip*in*
depends:       
# rpm -qf /lib/modules/5.10.82-std-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
kernel-image-std-def-5.10.82-alt1.x86_64

# modinfo rtsx_usb | sed -n '1,2p; 8p'
filename:       /lib/modules/5.10.82-std-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
description:    Realtek USB Card Reader Driver
alias:          usb:v0BDAp0129d*dc*dsc*dp*ic*isc*ip*in*

$ lsmod | grep rtsx
rtsx_usb_sdmmc         24576  0
rtsx_usb_ms            20480  0
mmc_core              176128  1 rtsx_usb_sdmmc
memstick               20480  1 rtsx_usb_ms
rtsx_usb               20480  2 rtsx_usb_sdmmc,rtsx_usb_ms
« Последнее редактирование: 21.01.2022 03:30:17 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
$ rpm2cpio ../kernel-image-un-def-5.16.1-alt1.x86_64.rpm | cpio -idm
$ /sbin/modinfo ./lib/modules/5.16.1-un-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko | head -n 9
filename:       /home/altlinux/5.16.1-un-def-alt1/./lib/modules/5.16.1-un-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
description:    Realtek USB Card Reader Driver
author:         Roger Tseng <rogerable@realtek.com>
license:        GPL v2
srcversion:     EE1790C29B3327F96C31101
alias:          usb:v0BDAp0140d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0139d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0129d*dc*dsc*dp*ic*isc*ip*in*
depends:       

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
$ cat /image/.disk/info
ALT alt-p10-xfce-sysv/x86_64 build 2021-12-11
# rpm -qf /lib/modules/5.10.82-std-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
kernel-image-std-def-5.10.82-alt1.x86_64
$ lsmod | grep rtsx
rtsx_usb_sdmmc         24576  0
rtsx_usb_ms            20480  0
mmc_core              176128  1 rtsx_usb_sdmmc
memstick               20480  1 rtsx_usb_ms
rtsx_usb               20480  2 rtsx_usb_sdmmc,rtsx_usb_ms

$ cat /image/.disk/info
ALT p9 xfce-sysv/x86_64 build 2021-06-12
$ uname -r
5.4.124-std-def-alt1
$ lsmod | grep 'rtsx\|mmc'
mmc_block              49152  0
rtsx_usb_sdmmc         24576  0
mmc_core              163840  2 rtsx_usb_sdmmc,mmc_block
rtsx_usb_ms            20480  0
memstick               16384  1 rtsx_usb_ms
rtsx_usb               20480  2 rtsx_usb_sdmmc,rtsx_usb_ms
usbcore               266240  7 xhci_hcd,rtsx_usb,usb_storage,uvcvideo,btusb,xhci_pci,uas
$ lsusb -d :0129
Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
$ lsusb -t | sed -n '2p; 4p'
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
    |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
$ udisksctl info -b /dev/mmcblk0 | tail -n8
    Symlinks:                   /dev/disk/by-id/mmc-SU08G_0x0334b05d
                                /dev/disk/by-label/LIVESLAK
                                /dev/disk/by-path/pci-0000:00:14.0-usb-0:4:1.0-platform-rtsx_usb_sdmmc.2.auto
                                /dev/disk/by-uuid/2021-02-15-14-43-06-00
    UserspaceMountOptions:     
  org.freedesktop.UDisks2.PartitionTable:
    Partitions:         ['/org/freedesktop/UDisks2/block_devices/mmcblk0p1']
    Type:               dos

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
В ядрах 5.10 и выше, апстрим сломал создание блочных устройств /dev/mmcblk*
Контроллер rts5129. Встроенный в ноутбуки кардридер, апстрим сломал.
Хрена толку что контроллер виден. Блочных устройств mmcblk* нет. Кардридером пользоваться невозможно.
В alt-p9-xfce-sysv ядро 5.4.124-std-def.
Кардридер будет работать.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
/dev/mmcblk*
$ uname -r
5.10.83-un-def-alt1
$ lspci -kk -nn
...
04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
        Subsystem: Lenovo Device [17aa:3852]
        Kernel driver in use: rtsx_pci
$ lsblk /dev/mmcblk0
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 952,5M  0 disk
└─mmcblk0p1 179:1    0 952,4M  0 part /var/run/media/user/disk
Сноси Винду, переходи на Линукс ! :)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
/dev/mmcblk*
$ uname -r
5.10.83-un-def-alt1
$ lspci -kk -nn
...
04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
        Subsystem: Lenovo Device [17aa:3852]
        Kernel driver in use: rtsx_pci
$ lsblk /dev/mmcblk0
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 952,5M  0 disk
└─mmcblk0p1 179:1    0 952,4M  0 part /var/run/media/user/disk

В ядрах 5.4.154 и 5.10+ у драйвера rtsx_usb.ko различается srcversion:
# head -n 2 /etc/os-release
NAME="starter kit"
VERSION="p9 (Hypericum)"
# lsusb -d :0129
Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
# lsusb -t | sed -n '2p; 5p'
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
    |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M

# modinfo rtsx_usb | head -n9
filename:       /lib/modules/5.4.154-std-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
description:    Realtek USB Card Reader Driver
author:         Roger Tseng <rogerable@realtek.com>
license:        GPL v2
srcversion:     4D2F80F1666258F27272DE6
alias:          usb:v0BDAp0140d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0139d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0129d*dc*dsc*dp*ic*isc*ip*in*
depends:       
# lsblk /dev/mmcblk0
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0  7,4G  0 disk
└─mmcblk0p1 179:1    0  7,4G  0 part

# reboot

# modinfo rtsx_usb | head -n 9
filename:       /lib/modules/5.10.92-un-def-alt1/kernel/drivers/misc/cardreader/rtsx_usb.ko
description:    Realtek USB Card Reader Driver
author:         Roger Tseng <rogerable@realtek.com>
license:        GPL v2
srcversion:     EE1790C29B3327F96C31101
alias:          usb:v0BDAp0140d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0139d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp0129d*dc*dsc*dp*ic*isc*ip*in*
depends:       
# lsblk /dev/mmcblk0
lsblk: /dev/mmcblk0: не блочное устройство
# ll /dev/mmcblk*
ls: невозможно получить доступ к '/dev/mmcblk*': Нет такого файла или каталога


После ислючительно стабильно работавших ядер 4.1-4.4, началась какая-то невероятная феерия. Сначала сломали rtc, потом сломали адаптер. А сейчас сломали кардридер. Профессионалы, вы когда вносите изменения в код, вы этот код б*ь тестируете?! Или отправляете его в апстрим от балды? Или на тестирование своих изменений вы поклали болт? Разлом за разломом. В конце-концов терпению тоже есть пределы.
« Последнее редактирование: 24.01.2022 08:04:55 от Speccyfighter »

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Но после обновления ядра до 5.16.1 модуль перестал собираться (ошибки компиляции). Собственно вопрос - есть ли варианты "завести" кардридер?
В репозитории по Вашей ссылке нажал ссылку 17 forks, вывело список, это клоны. Просмотрел их.
Вот этот https://github.com/Hydr8gon/rts5139 содержит отправленное 18 часов назад исправление "Update for the latest kernel", что значит "обновлено для последнего ядра". Скорее всего, имеется ввиду как раз 5.16, т.к. оно последнее. Попробуйте из него собрать. У меня пока нет 5.16, что бы проверить.

В ядрах 5.10 и выше, апстрим сломал создание блочных устройств /dev/mmcblk*
Я опять не умею читать?
[root@z1 ~]# mount|grep mmc
/dev/mmcblk2p2 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=5,subvol=/)
/dev/mmcblk2p3 on /boot/efi type vfat (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=866,iocharset=utf8,shortname=mixed,quiet,showexec,utf8,errors=remount-ro)
[root@z1 ~]# uname -a
Linux z1 5.10.90-std-def-alt1 #1 SMP Mon Jan 10 08:05:38 UTC 2022 x86_64 GNU/Linux

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
В ядрах 5.10 и выше, апстрим сломал создание блочных устройств /dev/mmcblk*
Я опять не умею читать?
[root@z1 ~]# mount|grep mmc
/dev/mmcblk2p2 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=5,subvol=/)
/dev/mmcblk2p3 on /boot/efi type vfat (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=866,iocharset=utf8,shortname=mixed,quiet,showexec,utf8,errors=remount-ro)
[root@z1 ~]# uname -a
Linux z1 5.10.90-std-def-alt1 #1 SMP Mon Jan 10 08:05:38 UTC 2022 x86_64 GNU/Linux

Фу ты ёлки-палки. Ты уже и сюда припёрся.
У тебя какой контроллер? Какой драйвер? Какой srcversion?
Ты что не видишь, что с rtsx_usb для RTS5129, карта в системе видна, только если перед загрузкой она вставлена в кардридер:
# fdisk -l /dev/mmcblk0
Диск /dev/mmcblk0: 7,4 GiB, 7948206080 байт, 15523840 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x7d3b7cda

Устр-во        Загрузочный начало    Конец  Секторы Размер Идентификатор Тип
/dev/mmcblk0p1 *             2048 15523839 15521792   7,4G             b W95 FAT32

Но стоит сделать ей реплаг или не вставить её в кардридер перед загрузкой, на ядрах 5.10+ её уже не обнаружить:
# fdisk -l /dev/mmcblk0
fdisk: невозможно открыть /dev/mmcblk0: Нет такого файла или каталога
# ll /dev/mmcblk*
ls: невозможно получить доступ к '/dev/mmcblk*': Нет такого файла или каталога

Не знаешь или сомневаешься?, - спроси. Ничего зазорного в этом нет. Но не неси бред. На ядерный трекер сходи. Ах да... Что я тут бредятину понёс. Ты же с "простынями" не в ладах.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Что есть по делу:

Загружено с ядром 5.10.92 со вставленной картой в кардридер
# dmesg | grep mmc | grep -v sr0
[   16.095407] mmc0: new high speed SDHC card at address e624
[   16.164735] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[   16.183545]  mmcblk0: p1
# cat /sys/block/mmcblk0/device/uevent
DRIVER=mmcblk
MMC_TYPE=SD
MMC_NAME=SU08G
MODALIAS=mmc:block

Карта извлечена
# dmesg | grep mmc | grep -v sr0
[   16.095407] mmc0: new high speed SDHC card at address e624
[   16.164735] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[   16.183545]  mmcblk0: p1
[  986.459653] mmc0: card e624 removed
# cat /sys/block/mmcblk0/device/uevent
cat: /sys/block/mmcblk0/device/uevent: Нет такого файла или каталога

Больше ядро вставленную карту не увидит
# dmesg | grep mmc | grep -v sr0
[   16.095407] mmc0: new high speed SDHC card at address e624
[   16.164735] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[   16.183545]  mmcblk0: p1
[  986.459653] mmc0: card e624 removed
# cat /sys/block/mmcblk0/device/uevent
cat: /sys/block/mmcblk0/device/uevent: Нет такого файла или каталога

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Как это выглядит с ядром 5.4.154:

Перед загрузкой карта в кардридер не вставлена
# dmesg | grep mmc | grep -v sr0 | wc -l
0
# cat /sys/block/mmcblk0/device/uevent
cat: /sys/block/mmcblk0/device/uevent: Нет такого файла или каталога

Карта вставлена
# dmesg | grep mmc | grep -v sr0
[  182.977236] mmc0: new high speed SDHC card at address e624
[  183.021242] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[  183.039679]  mmcblk0: p1
# cat /sys/block/mmcblk0/device/uevent
DRIVER=mmcblk
MMC_TYPE=SD
MMC_NAME=SU08G
MODALIAS=mmc:block

Карта извлечена
# dmesg | grep mmc | grep -v sr0
[  182.977236] mmc0: new high speed SDHC card at address e624
[  183.021242] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[  183.039679]  mmcblk0: p1
[  227.671309] mmc0: card e624 removed
# cat /sys/block/mmcblk0/device/uevent
cat: /sys/block/mmcblk0/device/uevent: Нет такого файла или каталога

Карта вставлена
# dmesg | grep mmc | grep -v sr0
[  182.977236] mmc0: new high speed SDHC card at address e624
[  183.021242] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[  183.039679]  mmcblk0: p1
[  227.671309] mmc0: card e624 removed
[  253.236983] mmc0: new high speed SDHC card at address e624
[  253.237528] mmcblk0: mmc0:e624 SU08G 7.40 GiB
[  253.256613]  mmcblk0: p1
# cat /sys/block/mmcblk0/device/uevent
DRIVER=mmcblk
MMC_TYPE=SD
MMC_NAME=SU08G
MODALIAS=mmc:block

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Как и сказал Андрей, нужно вешать багрепорт в апстрим.
Свести выбросы в простыню сравнения версий ядер с указанием srcvesion, контроллера и драйвера. И повесить в апстрим багрепорт. В ядре он висит (#208557). Можно дополнить его с простынёй подробностей выбросов или написать новый. Со ссылкой на этот же. Пьер созданным багрепортом подсказывает, что сломано это было уже в ядре 5.7.7.
Если апстрм это исправит, это исправлено будет во всех альтовых образах с ядрами 5.7+. А заодно и в alt-p10-xfce-sysv.
« Последнее редактирование: 24.01.2022 22:09:00 от Speccyfighter »

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Что есть по делу:

Загружено с ядром 5.10.92 со вставленной картой в кардридер

Фу ты ёлки-палки. Ты уже и здесь принялся мусорить портянками шлака.
Ты что не видишь, что https://github.com/Hydr8gon/rts5139/commit/1acc07d756a76e7ea1806b395b46fd965c51a018 содержит исправления? У автора какой контроллер? Какой драйвер? Может он от нечего делать завёл на github репозиторий и размешает там что попало?

Оффлайн ProfessorNavigator

  • Давно тут
  • **
  • Сообщений: 201
В репозитории по Вашей ссылке нажал ссылку 17 forks, вывело список, это клоны. Просмотрел их.
Вот этот https://github.com/Hydr8gon/rts5139 содержит отправленное 18 часов назад исправление "Update for the latest kernel", что значит "обновлено для последнего ядра". Скорее всего, имеется ввиду как раз 5.16, т.к. оно последнее. Попробуйте из него собрать. У меня пока нет 5.16, что бы проверить.
Спасибо, но уже не актуально (для меня) - ушёл назад на Arch Linux (не только и не столько из-за кардридера). Альт пока подержу на виртуалке.
PS На одном из форумов Gentoo видел такую же проблему с кардридером. Там вроде как решилось добавлением/исправлением опции при сборке ядра. Какой именно, увы не помню, а ссылки пропали после переустановки системы. Что-то связанное с RTSX.