SD Card Utility

Сабжи короче

Postby TS-Labs » Fri, 22.02.2019 00:51:09

Напилил тулзу для тестирования 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 стирал инфу и разлочивал карту, но забывал стереть регистр пароля. Такая карта после разлочивания работает нормально, но только, пока на нее подают питание. При следующем включении она снова залочивается, ее снова можно стереть и так по кругу. Если попадется такая, надо просто снять пароль утилитой.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby WBC » Fri, 22.02.2019 17:51:45

найс :) только не говори что тулзу замариновал :D
--wbcbz7
User avatar
WBC
 
Posts: 270
Joined: Fri, 19.09.2014 10:23:23
Location: Omsk \ Russia

Postby VBI » Fri, 22.02.2019 17:55:08

интересная штука.
а под винду вообще подобное есть? или только у нас :)
User avatar
VBI
 
Posts: 1911
Joined: Mon, 03.06.2013 09:20:29

Postby TS-Labs » Fri, 22.02.2019 20:56:56

WBC wrote:олько не говори что тулзу замариновал :D

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

Под винду нужен девайс специальный, юсб картридеры работать не будут.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby LessNick » Fri, 22.02.2019 23:41:29

Интересная софтина, даже скажу нужная :vodka:

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


А те SD-девайсы что встроены в ноут или планшет? тоже как usb reader устроены?
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 894
Joined: Thu, 26.07.2012 15:00:53

Postby Rusazar » Sat, 23.02.2019 05:51:10

Штукенция интересная и можно сказать уникальная и эксклюзивная ;), заюзаю обязательно.
User avatar
Rusazar
 
Posts: 17
Joined: Sun, 18.09.2016 12:56:03
Location: Ставрополь

Postby TS-Labs » Sat, 23.02.2019 15:28:09

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

Обычно - да.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby idxi » Sun, 24.02.2019 22:47:41

Нужная toolsa.

tsl - огонь ! )
User avatar
idxi
 
Posts: 126
Joined: Mon, 03.07.2017 16:54:54

Postby TS-Labs » Mon, 25.02.2019 06:28:43

Немножко обновилась, некоторые фиксы.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby Mor-Da » Mon, 25.02.2019 08:30:31

Еще не юзал, но TSL - гигант.
User avatar
Mor-Da
 
Posts: 302
Joined: Fri, 12.02.2016 07:20:43
Location: Воткинск (родина П.И.Чайковского)

Postby Den1982 » Tue, 26.02.2019 22:20:52

Только что восстановил "сдохнувшую" флэшку из регика! PC sux! :ok2:
Den1982
 
Posts: 75
Joined: Sat, 23.11.2013 20:57:07

Postby Rusazar » Wed, 27.02.2019 10:44:14

Итак, первое преимущество перед ZX Next мы имеем, это возможность восстановления флешек, благодаря монстру TS-Labs (в хорошем смысле этого слова) ;)
User avatar
Rusazar
 
Posts: 17
Joined: Sun, 18.09.2016 12:56:03
Location: Ставрополь

Postby idxi » Wed, 27.02.2019 13:28:58

zxevo-ts-conf как средство восстановления флешек - это охуенно! Это слоган ! )
Вот продажи платформы как нужно поднимать ! )
User avatar
idxi
 
Posts: 126
Joined: Mon, 03.07.2017 16:54:54

Postby Rusazar » Wed, 27.02.2019 14:48:32

Безспорно! ))) Но только не стоит это хайпить свидетелям пришествия Next'a, а то срач подымется до небес :lol: :lol: :lol:
User avatar
Rusazar
 
Posts: 17
Joined: Sun, 18.09.2016 12:56:03
Location: Ставрополь

Postby TS-Labs » Sun, 10.03.2019 00:11:23

После долгого задротского тестирования сдшек нашел один лайфхак.
Если дать карте Force Erase и после этого записать на ней лишь небольшой объем, например в начале, то все незаписанные блоки будут считаться контроллером карты "пустыми", и нагрузка записи, при условии, что запись будет производиться в те же сектора в начале диска, будет распределяться равномерно среди скрытых блоков (коих обычно 6-8%) и среди "пустых".
Допустим ситуацию, когда у нас стоит девайс, линукс на котором занимает от силы 2ГБ. При этом он ведет активное кэширование в своей файловой системе (постоянно создает файлы и их удаляет). Каждый блок флэша может быть перезаписан 2-3 тысячи раз, после чего доходит до состояния, когда коррекция при чтении уже не срабатывает. Карты хватает, допустим, на год и всё. Теперь берем карту на 16ГБ, делаем ей волшебный Force Erase, записываем в первые 2ГБ имедж линукса. Профит! Время жизни карты ВНЕЗАПНО увеличивается в 8 раз.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby idxi » Sun, 10.03.2019 16:05:24

Оу ! )
Такое только можно было лайвхакнуть пользуя zx-evo-ts-conf :)
Так что, пиарим платформу - всем ! ) еще одна фишка в пользу и в копилку ts-conf )
User avatar
idxi
 
Posts: 126
Joined: Mon, 03.07.2017 16:54:54

Postby idxi » Tue, 19.03.2019 23:29:38

делаем ей волшебный Force Erase, записываем в первые 2ГБ имедж линукса. Профит!

Данный демо-код можно приложить для познавания ? )
User avatar
idxi
 
Posts: 126
Joined: Mon, 03.07.2017 16:54:54

Postby TS-Labs » Wed, 20.03.2019 03:56:49

Что?
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby idxi » Wed, 20.03.2019 10:59:45

Последний вопрос про "демокод" можно почикать ) вот что )
User avatar
idxi
 
Posts: 126
Joined: Mon, 03.07.2017 16:54:54

Postby TS-Labs » Wed, 24.04.2019 20:04:22

UPDATE
+ Стирание секторов для незалоченных карт.
+ Добавил описание.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby azesmbog » Sun, 05.05.2019 21:05:28

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

Postby TS-Labs » Sun, 05.05.2019 23:59:06

azesmbog wrote: DE1 и Speccy2010, это тоже работает

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

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

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

Все утилита нормально кажет - MID не обманешь )). И самсунг еще не самый плохой вариант, флэшки годные.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby azesmbog » Mon, 06.05.2019 01:37:46

тогда странно, зачем трансценду делать SD и идент самса ставить)))
Image

эмм, а предпросмотра нету?))
azesmbog
 
Posts: 20
Joined: Tue, 14.04.2015 13:27:40

Postby TS-Labs » Mon, 06.05.2019 03:15:20

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

Да щас можно лить пикчи прямо сюда, только размеры не делать конские. 500кБ примерно.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Mon, 06.05.2019 03:16:42

azesmbog wrote:тогда странно, зачем трансценду делать SD и идент самса ставить)))

Они ставят самсунг и продают под маркой трансенд. Все продают всё, как всё )) У меня половина карт раскрашены совершенно левыми вендорами.
Рискну предположить, что не хватает собственных мощностей, а продавать хочется.
User avatar
TS-Labs
 
Posts: 5112
Joined: Thu, 26.07.2012 01:29:56

Next

Return to Utilities

Who is online

Users browsing this forum: No registered users and 1 guest

cron

x