Ubuntu Trusty не видит картридер Lenovo E555

Posted by

Был обычный вечер, мне в срочном порядке понадобилось на карту памяти MicroSD записать образ Raspbian Jessie (у меня под каждую задачу свои сборки), но я как обычно вставил в ридер SD, а после в картридер на ноутбуке с установленной системой Ubuntu Trusty Desktop. Но увы система не увидела вообще ничего, хотя у меня точно было, что система видела картридер ноутбука и все работало. Начал разбираться, т. к. на моей рабочей/домашней системе все должно работать.

В итоге проблему я все-таки решил, ниже как и что я делал:

ekzorchik@system:~$ uname -a

Linux system 4.4.0-93-generic #116~14.04.1-Ubuntu SMP Mon Aug 14 16:07:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

ekzorchik@system:~$ dmesg -T

[Tue Nov 14 19:57:51 2017] mmc0: cannot verify signal voltage switch

[Tue Nov 14 19:57:52 2017] whilst initialising SD card

Уст-во не видится:

ekzorchik@system:~$ lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 1.8T 0 disk

├─sda1 8:1 0 243M 0 part /boot

├─sda2 8:2 0 1K 0 part

└─sda5 8:5 0 1.8T 0 part

├─ubuntu--vg-root (dm-0) 252:0 0 1.8T 0 lvm /

└─ubuntu--vg-swap_1 (dm-1) 252:1 0 14.8G 0 lvm [SWAP]

sdb 8:16 0 465.8G 0 disk

├─sdb1 8:17 0 500M 0 part

└─sdb2 8:18 0 243.7G 0 part

Вывожу на консоль какое оборудование Trusty распознает моего ноутбука Lenovo E555:

ekzorchik@system:~$ lspci | grep Card

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. PCI Express Card Reader (rev 01)

Иду на официальный сайт Realtek и для моего чипсета скачиваю драйвер: 0001-Realtek_RTS5229_Linux_Driver_v1.07.zip

ekzorchik@system:~/Documents$ unzip 0001-Realtek_RTS5229_Linux_Driver_v1.07.zip

ekzorchik@system:~/Documents$ mv Realtek_RTS5229_Linux_Driver_v1.07/ realtek

ekzorchik@system:~/Documents$ cd realtek/

ekzorchik@system:~/Documents/realtek$ bzip2 -d rts5229.tar.bz2

ekzorchik@system:~/Documents/realtek$ tar xf rts5229.tar

ekzorchik@system:~/Documents/realtek$ cd rts5229/

ekzorchik@system:~/Documents/realtek/rts5229$ sudo make

make[2]: *** Нет правила для сборки цели `arch/x86/entry/syscalls/syscall_32.tbl', требуемой для `arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h'. Останов.

make[1]: *** [archheaders] Ошибка 2

make[1]: Выход из каталога `/usr/src/linux-headers-4.4.0-93-generic'

make: *** [default] Ошибка 2

блин, а как быть мне с amd64 разрядной системой

Отобразить bios и версию bios прошивки:

ekzorchik@system:~$ sudo dmidecode -s bios-version && sudo dmidecode -s bios-release-date

HTET35WW (1.07 )

08/13/2014

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

ekzorchik@system:~$ modprobe -r rtsx_pci

modprobe: FATAL: Module rtsx_pci is in use.

ekzorchik@system:~$ modprobe rtsx_pci

Информация по модулю:

ekzorchik@system:~$ modinfo rtsx_pci

filename: /lib/modules/4.4.0-93-generic/kernel/drivers/mfd/rtsx_pci.ko

description: Realtek PCI-E Card Reader Driver

author: Wei WANG <wei_wang@realsil.com.cn>

license: GPL

srcversion: 669B5B2485DBA1D21B6DB67

alias: pci:v000010ECd0000525Asv*sd*bcFFsc*i*

alias: pci:v000010ECd0000524Asv*sd*bcFFsc*i*

alias: pci:v000010ECd00005286sv*sd*bcFFsc*i*

alias: pci:v000010ECd00005287sv*sd*bcFFsc*i*

alias: pci:v000010ECd00005249sv*sd*bcFFsc*i*

alias: pci:v000010ECd0000522Asv*sd*bcFFsc*i*

alias: pci:v000010ECd00005227sv*sd*bcFFsc*i*

alias: pci:v000010ECd00005289sv*sd*bcFFsc*i*

alias: pci:v000010ECd00005229sv*sd*bcFFsc*i*

alias: pci:v000010ECd00005209sv*sd*bcFFsc*i*

depends:

intree: Y

vermagic: 4.4.0-93-generic SMP mod_unload modversions

parm: msi_en:Enable MSI (bool)

после вытащил карту памяти и вставил снова и система Ubuntu Trusty Desktop amd64 увидела содержимое карты памяти

ekzorchik@system:~$ lsblk | grep mmc

mmcblk0 179:0 0 7.4G 0 disk

├─mmcblk0p1 179:1 0 41.7M 0 part /media/ekzorchik/boot

└─mmcblk0p2 179:2 0 7.4G 0 part /media/ekzorchik/62ca0b6d

Чтобы система после загрузки знала какой модуль подгружать автоматически:

ekzorchik@system:~$ sudo nano /etc/modules

rtsx_pci

После удаляю скачанное и не компилируемое:

ekzorchik@system:~/Documents$ rm -Rf 0001-Realtek_RTS5229_Linux_Driver_v1.07.zip realtek/

Затем отправляю систему в перезагрузку дабы посмотреть, как модуль картридера прогрузится вместе с системой. Если вставить карту MicroSD в адаптер SD, а после в картридер ноутбука Lenovo E555, она успешно распозналась системой. И можно как считывать с нее, записывать, форматировать.

На этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.