Page 1 of 2

SD Card Utility

PostPosted: Fri, 22.02.2019 00:51:09
by TS-Labs
Напилил тулзу для тестирования SD-карт.
sshot.jpg

Что умеет:
- Инитить карты при помощи волшебного Force Erase, который в некоторых случаях дает картам вторую молодость. (На всякий случай сообщу, что ни в одном USB картридере этот фокус проделать нельзя, хотя бы потому, что SCSI не умеет таких команд.)
- Показывать инфу по регистрам карты.
- Пароль для лока карт пока захардкодан, в дальнейшем будет доступен для ввода. Если нужно разлочить имеющуюся карту с паролем, его можно поменять в сорцах.

Что еще будет уметь:
- Показывать самую подробную инфу про карту, какую только можно из нее вытянуть.
- TBD.

Про Force Erase.
Эта процедура выполняется картой, если юзер не знает установленного на карту пароля, и хочет стереть на карте этот пароль (вместе со всей информацией).
В зависимости от контроллера внутри карты, Force Erase не просто чистит LUT-ы и стирает NAND-чипы, но и может производить тестирование бэд-блоков и их заметание под ковер. Часто это приводит к увеличению скорости чтения/записи карты после длительного предварительного использования. Также, помогает раздуплить не очень живую карту, которая решила, что ей пора на покой.

На скриншотах - карта до стирания и после, скорость чтения.
2.png

3.png

Спойлер: на самом деле, изношенный NAND все равно забывает инфу быстрее, чем неизношенный. И полным стиранием его не восстановить. Однако, см. ниже про "Trim".

Про Sectors Erase.
Функция аналогична Force Erase, но для незалоченных карт. Освобождает блоки для использования в подменном фонде.

Про "Trim".
Термин "Trim" стал известен после появления SSD.
Немного теории. Между пользовательскими LBA и "сырыми" блоками NAND-а существует таблица трансляции (LUT). Когда юзер пишет в LBA, допустим, с номером 0, физически запись происходит в первый блок NAND-а, указанный в LUT-e, как свободный. Повторная запись в LBA 0 будет произведена в совершенно другой блок NAND-а, а предыдущий переместится в подменный фонд и будет ждать своей очереди. Данные от предыдущей записи будут лежать в нем, пока не перезапишутся, когда до него дойдет очередь. Данный метод применяется для уменьшения износа отдельных блоков и называется Wear Levelling. После Force и Sector Erase все стертые LBA помечаются в LUT-е свободными. При чтении из этих LBA возращаются 00 или FF, а физического чтения блоков NAND-а даже не происходит. До первой записи в эти LBA, это важно. Алгоритмы Wear Levelling обычно используют все доступные неиспользуемые блоки LUT, а значит, нагрузка распределяется более равномерно.
На SSD при использовании команды trim LBA освобождаются автоматически после стирания файла. На SD этого не происходит, хотя могло бы. В картридерах это скорее всего невозможно: я думаю, что в той версии SCSI, что ходит вместе с классом Mass Storage, этой команды нет. (Но это неточно.) В Embedded OS-ях, работающих с SD, это вполне реализуемо драйвером ОС-и, но опять же, я думаю, что не реализовано. (И опять же, это неточно.)
Какая практическая польза от всего вышеописанного: ну, например, повысить износоустойчивость карты в отдельном девайсе. Например, берем карту на 2ГБ, она работает 1 год и дохнет от износа. Берем карту на 16ГБ, пишем на нее тот же образ 2ГБ, что работал на предыдущей карте, и она работает 8 лет. При одном условии: перед записью образа 2ГБ ей сделали de-allocate всех LBA при помощи Force/Sector Erase. И только в этом случае.

Спойлер: на китайских поддельных нонеймовых сдшках почти всегда не работает Force/Sector Erase. У всех имеющихся у автора подобных экспонатов MID=00. Пока что это довольно удобный признак их определения. У этих дефектов подменный фонд примерно равен разнице между размером нанда (степень двойки) и размером LBA, и обычно составляет 6-8%. Но пользоваться такими флэшами в народном хозяйстве можно только тем, кому важна только запись на карту, а чтение не важно. Потому что эта подпихня либо косячит с лутом, либо читает изношенные блоки без коррекции (да-да, с плавающими битами).

Что может пойти не так.
Некоторые старые карты (у автора имеется такая на 2ГБ) имели ошибку в своем фирмваре, из-за которой Force Erase стирал инфу и разлочивал карту, но забывал стереть регистр пароля. Такая карта после разлочивания работает нормально, но только, пока на нее подают питание. При следующем включении она снова залочивается, ее снова можно стереть и так по кругу. Если попадется такая, надо просто снять пароль утилитой.

Re: SD Card Utility

PostPosted: Fri, 22.02.2019 17:51:45
by WBC
найс :) только не говори что тулзу замариновал :D

Re: SD Card Utility

PostPosted: Fri, 22.02.2019 17:55:08
by VBI
интересная штука.
а под винду вообще подобное есть? или только у нас :)

Re: SD Card Utility

PostPosted: Fri, 22.02.2019 20:56:56
by TS-Labs
WBC wrote:олько не говори что тулзу замариновал :D

Сцылка на гитхаб жеж.
VBI wrote:а под винду вообще подобное есть?

Под винду нужен девайс специальный, юсб картридеры работать не будут.

Re: SD Card Utility

PostPosted: Fri, 22.02.2019 23:41:29
by LessNick
Интересная софтина, даже скажу нужная :vodka:

TS-Labs wrote:Под винду нужен девайс специальный, юсб картридеры работать не будут.


А те SD-девайсы что встроены в ноут или планшет? тоже как usb reader устроены?

Re: SD Card Utility

PostPosted: Sat, 23.02.2019 05:51:10
by Rusazar
Штукенция интересная и можно сказать уникальная и эксклюзивная ;), заюзаю обязательно.

Re: SD Card Utility

PostPosted: Sat, 23.02.2019 15:28:09
by TS-Labs
LessNick wrote:А те SD-девайсы что встроены в ноут или планшет? тоже как usb reader устроены?

Обычно - да.

Re: SD Card Utility

PostPosted: Sun, 24.02.2019 22:47:41
by idxi
Нужная toolsa.

tsl - огонь ! )

Re: SD Card Utility

PostPosted: Mon, 25.02.2019 06:28:43
by TS-Labs
Немножко обновилась, некоторые фиксы.

Re: SD Card Utility

PostPosted: Mon, 25.02.2019 08:30:31
by Mor-Da
Еще не юзал, но TSL - гигант.

Re: SD Card Utility

PostPosted: Tue, 26.02.2019 22:20:52
by Den1982
Только что восстановил "сдохнувшую" флэшку из регика! PC sux! :ok2:

Re: SD Card Utility

PostPosted: Wed, 27.02.2019 10:44:14
by Rusazar
Итак, первое преимущество перед ZX Next мы имеем, это возможность восстановления флешек, благодаря монстру TS-Labs (в хорошем смысле этого слова) ;)

Re: SD Card Utility

PostPosted: Wed, 27.02.2019 13:28:58
by idxi
zxevo-ts-conf как средство восстановления флешек - это охуенно! Это слоган ! )
Вот продажи платформы как нужно поднимать ! )

Re: SD Card Utility

PostPosted: Wed, 27.02.2019 14:48:32
by Rusazar
Безспорно! ))) Но только не стоит это хайпить свидетелям пришествия Next'a, а то срач подымется до небес :lol: :lol: :lol:

Re: SD Card Utility

PostPosted: Sun, 10.03.2019 00:11:23
by TS-Labs
После долгого задротского тестирования сдшек нашел один лайфхак.
Если дать карте Force Erase и после этого записать на ней лишь небольшой объем, например в начале, то все незаписанные блоки будут считаться контроллером карты "пустыми", и нагрузка записи, при условии, что запись будет производиться в те же сектора в начале диска, будет распределяться равномерно среди скрытых блоков (коих обычно 6-8%) и среди "пустых".
Допустим ситуацию, когда у нас стоит девайс, линукс на котором занимает от силы 2ГБ. При этом он ведет активное кэширование в своей файловой системе (постоянно создает файлы и их удаляет). Каждый блок флэша может быть перезаписан 2-3 тысячи раз, после чего доходит до состояния, когда коррекция при чтении уже не срабатывает. Карты хватает, допустим, на год и всё. Теперь берем карту на 16ГБ, делаем ей волшебный Force Erase, записываем в первые 2ГБ имедж линукса. Профит! Время жизни карты ВНЕЗАПНО увеличивается в 8 раз.

Re: SD Card Utility

PostPosted: Sun, 10.03.2019 16:05:24
by idxi
Оу ! )
Такое только можно было лайвхакнуть пользуя zx-evo-ts-conf :)
Так что, пиарим платформу - всем ! ) еще одна фишка в пользу и в копилку ts-conf )

Re: SD Card Utility

PostPosted: Tue, 19.03.2019 23:29:38
by idxi
делаем ей волшебный Force Erase, записываем в первые 2ГБ имедж линукса. Профит!

Данный демо-код можно приложить для познавания ? )

Re: SD Card Utility

PostPosted: Wed, 20.03.2019 03:56:49
by TS-Labs
Что?

Re: SD Card Utility

PostPosted: Wed, 20.03.2019 10:59:45
by idxi
Последний вопрос про "демокод" можно почикать ) вот что )

Re: SD Card Utility

PostPosted: Wed, 24.04.2019 20:04:22
by TS-Labs
UPDATE
+ Стирание секторов для незалоченных карт.
+ Добавил описание.

Re: SD Card Utility

PostPosted: Sun, 05.05.2019 21:05:28
by azesmbog
Благодарствую! Во-первых.
во-вторых, для нищих, у которых нет Эвы, но есть DE1 и Speccy2010, это тоже работает. Проверенно именно на Speccy2010 со старинной прошивкой. На MiSTer-e, хоть там ts-conf как таковая работает отлично, вряд ли эта утилита заработает :)
Перепробовал свои sd-карты, в т.ч. неисправные. одна на 32Гб определяется, стирается, но так и не работает. Отваливается впоследствии.
Так же ММС карта была в подопытных. Инфа с нее читается, но при попытке Lock\Erase сразу отваливается)
ну и еще.
Три карты, на которых явно написано Trancend (одну гиговую восстановил, лок показывала), так вот, утилита их Samsung-ами детектит, (1B). Может так и должно быть, но на скорость, как говорится, не влияет.
Еще раз спасибо за интересную утилиту.

Re: SD Card Utility

PostPosted: Sun, 05.05.2019 23:59:06
by TS-Labs
azesmbog wrote: DE1 и Speccy2010, это тоже работает

Прикольно!
azesmbog wrote: одна на 32Гб определяется, стирается, но так и не работает

А сфоткай пожалуйста ее инфу.
azesmbog wrote:Так же ММС карта была в подопытных

ММС несколько отличаются от СД, я их пока не поддерживал.
azesmbog wrote:Три карты, на которых явно написано Trancend (одну гиговую восстановил, лок показывала), так вот, утилита их Samsung-ами детектит, (1B).

Все утилита нормально кажет - MID не обманешь )). И самсунг еще не самый плохой вариант, флэшки годные.

Re: SD Card Utility

PostPosted: Mon, 06.05.2019 01:37:46
by azesmbog
тогда странно, зачем трансценду делать SD и идент самса ставить)))
Image

эмм, а предпросмотра нету?))

Re: SD Card Utility

PostPosted: Mon, 06.05.2019 03:15:20
by TS-Labs
azesmbog wrote:эмм, а предпросмотра нету?))

Да щас можно лить пикчи прямо сюда, только размеры не делать конские. 500кБ примерно.

Re: SD Card Utility

PostPosted: Mon, 06.05.2019 03:16:42
by TS-Labs
azesmbog wrote:тогда странно, зачем трансценду делать SD и идент самса ставить)))

Они ставят самсунг и продают под маркой трансенд. Все продают всё, как всё )) У меня половина карт раскрашены совершенно левыми вендорами.
Рискну предположить, что не хватает собственных мощностей, а продавать хочется.