Форум русскоязычного сообщества Ubuntu


Автор Тема: Тормоза при чтении\записи с SD card  (Прочитано 1843 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн majesty

  • Автор темы
  • Участник
  • *
  • Сообщений: 118
    • Просмотр профиля
    • Наше Місто Івано-Франківськ
Тормоза при чтении\записи с SD card
« : 10 Январь 2009, 05:14:26 »
Ubuntu 8.10 x64 Dell inspiron 1501 -  Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)

MMC карты без шаманства не монтируются - ну ладно, нашел в Сети решение  :)

Но часто возникает необходимость переписать с SD флешки на винт информацию (2 цифровых фотокамеры). При чтении и\или записи на карту, начинаются жуткие тормоза системы, даже курсор рывками двигается. При построении эскизов, очень быстро забивается оперативка  :( до ужасающих размеров, не исключая записи в своп  :( Ну и, соответственно, скорость записи никакая  :-\

В чем может быть проблема?
Ubuntu 11.04, Dell inspiron 1501 (Turion TL60, 2GB RAM, Radeon X1150, 64 SSD)
Наше Місто Івано-Франківськ

Оффлайн asashnov

  • Участник
  • *
  • Сообщений: 114
    • Просмотр профиля
Re: Тормоза при чтении\записи с SD card
« Ответ #1 : 10 Январь 2009, 09:51:48 »
Нужно больше подробностей ;)

В каком формате фото, для которых создается превью? (размер, команда file что про них говорит)

Посмотреть top  (нажать Shift+M чтобы упорядочить по занимаемой памяти)

А если скопировать их (скажем, с помощью mc) и зайти наутилусом в папку с фото уже на винте, а не на карте, будет подвисать?
(также посмотреть top)

Что было за шаманство с MМС картами?  Какое решение? (если какой-нибудь плохо написаный модуль fuse то виновником может быть он).
Talk is cheap. Show me the code. (c) Linux Torvalds.

Оффлайн majesty

  • Автор темы
  • Участник
  • *
  • Сообщений: 118
    • Просмотр профиля
    • Наше Місто Івано-Франківськ
Re: Тормоза при чтении\записи с SD card
« Ответ #2 : 10 Январь 2009, 17:22:50 »
Спасибо за вопрос, по порядку:

Цитировать
В каком формате фото, для которых создается превью? (размер, команда file что про них говорит)
Формат JPEG, очень редко RAW. Хотя, от формата не зависит. Тормозит при работе с любым типом файлов. Переписывать фотки - просто причина, почему неудобен данный глюк. Причем заметил, при записи тормозов почти нет, работа, как с обычной флешкой. А при чтении -ууу...

Карты форматированы в ФС FAT32. Производители - Gingston 2Gb, Transcend 1Gb.

Цитировать
Посмотреть top  (нажать Shift+M чтобы упорядочить по занимаемой памяти)

100% загрузка процессора - программой, которая копирует, mc или nautilus. Так же резко возрастает потребление ими памяти  :-\

Цитировать
А если скопировать их (скажем, с помощью mc) и зайти наутилусом в папку с фото уже на винте, а не на карте, будет подвисать?
(также посмотреть top)
Нет, после тормозного копирования, с винта можно нормально работать с файлами.

Цитировать
Что было за шаманство с MМС картами?  Какое решение? (если какой-нибудь плохо написаный модуль fuse то виновником может быть он).

Цитировать
I was having a hard time finding a solution to the the Ricoh Co Ltd R5C592 to work on my Lenovo Laptop. From what I gathered, SD cards worked out of the box with the reader. However, it absolutely refused to recognize MMC cards. Today while searching around, I landed onto this Polish(?) blog which mentions the fix for the problem: http://osnews.pl/ricoh-r5c822-i-linux-obsluga-mmc
This is what I could understand

1. Make sure you have this card reader
Code:

lspci | grep Ricoh

Code:

05:06.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
05:06.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
05:06.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
05:06.3 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)

I'm not too sure, but the 05:06.2 line read differently (something with a 'MMC' in it before the fix)

2. modprobe the required modules in case they arent already loaded
Code:

sudo modprobe mmc_core mmc_block sdhci

I'm not sure if the hdhci is required for MMC cards

3. Here's the crucial part. You need to configure the PCI device using setpci.
Note that the MMC controller in the lspci is preceeded by 05:06.2 . It may be xx:yy.2 on your machine.
Assuming it is 05:06.2 on your machine too, run
Code:

sudo setpci -s 05:06.2 0xCA=57
sudo setpci -s 05:06.2 0xCB=02
sudo setpci -s 05:06.2 0xCA=00

I already had the card in the reader when I was trying the fix. As soon as I executed the second setpci, the card mounted right up. I'm not too sure what exactly is happening here, maybe someone wiser can fill me in, but I sure am glad the reader is finally working

Не помню, откуда скопировал. Вроде, с http://ubuntuforums.org

Оно то ничего, если бы не необходимость быстро переписывать эти вещи на коленях  :(
Ubuntu 11.04, Dell inspiron 1501 (Turion TL60, 2GB RAM, Radeon X1150, 64 SSD)
Наше Місто Івано-Франківськ

Оффлайн asashnov

  • Участник
  • *
  • Сообщений: 114
    • Просмотр профиля
Re: Тормоза при чтении\записи с SD card
« Ответ #3 : 11 Январь 2009, 13:45:52 »
Как извесно, у PCI устройств есть прошитый при изготовлении код (ID) производителя и модели:

$ lspci -n

При загрузке ядро генерирует "события" о каждом из найденых PCI устройств (а потом еще по USB, ISA...)

$ ps aux | grep hal
111       5893  0.0  0.4   6080  4192 ?        Ss   14:13   0:01 /usr/sbin/hald
- вот этот процесс ловит события от ядра, смотрит (для PCI устройств)
в /lib/modules/2.6.24-22-generic/modules.pcimap  и загружает модуль, если найдено совпадение.

Модули, занесеные в черный список, им загружены не будут:
$ cat /etc/modprobe.d/* | grep ^blacklist | head
cat: /etc/modprobe.d/arch: Is a directory
blacklist evbug
blacklist usbmouse
blacklist usbkbd
blacklist eepro100
blacklist de4x5
........


Попытаемся понять, что в нашем случае происходит.

> 05:06.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)

ID производителя и модели я посмотрел в /usr/share/misc/pci.ids:

1180  Ricoh Co Ltd
......
        0592  R5C592 Memory Stick Bus Host Adapter
                103c 30b7  Presario V6133CL
                1043 1967  V6800V
                144d c018  X20 IV

Т.е. у меня получилось 1180:0592, и я не понял куда девать (rev 0a) в конце.
Надо уточнить- запусти у себя сначала lspci просто, запомни номер вначале строки, типа 05:06.2  и потом в lspci -n  найди нужную строку по этому номеру.

В /lib/modules/2.6.24-22-generic/modules.pcimap  продукта с ID 0592 я у себя вообще не нашел:

sdhci                0x00001180 0x00000822 0x00001014 0xffffffff 0x00000000 0x00000000 0x0
sdhci                0x00001180 0x00000822 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0
ricoh_mmc            0x00001180 0x00000843 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0
yenta_socket         0x00001180 0x00000465 0xffffffff 0xffffffff 0x00060700 0xffffffff 0x0
yenta_socket         0x00001180 0x00000466 0xffffffff 0xffffffff 0x00060700 0xffffffff 0x0
yenta_socket         0x00001180 0x00000475 0xffffffff 0xffffffff 0x00060700 0xffffffff 0x0
yenta_socket         0x00001180 0x00000476 0xffffffff 0xffffffff 0x00060700 0xffffffff 0x0
yenta_socket         0x00001180 0x00000478 0xffffffff 0xffffffff 0x00060700 0xffffffff 0x0


Это говорит о том, что драйвера в точности для этой железки разработчиками сделано не было.

setpci вероятно подменяет какой-то ID чтобы обманом загрузить модуль для похожего устройства.

Надеюсь что в новой версии или даже в апдейтах появиться поддержка именно твоего контроллера.
Talk is cheap. Show me the code. (c) Linux Torvalds.

 

Страница сгенерирована за 0.054 секунд. Запросов: 22.