Восстановление испорченной карты SmartMedia при помощи Olympus MAUSB-2

Зависает не только Windows


ВНИМАНИЕ! Автор статьи не несет никакой ответственности за любой вред, нанесенный оборудованию вследствие применения описанных здесь действий.

Однажды с автором этой статьи произошла довольно неприятная история: после сьемки очередного кадра его цифровая камера зависла, отказавшись реагировать на любые внешние раздражители, включая кнопку отключения питания. Ситуацию удалось исправить извлечением аккумуляторов из отсека питания и их повторной установкой, но после включения аппарат отобразил на дисплее надпись «Card Error» и отказался работать с картой памяти SmartMedia. Не беда, подумал автор, сейчас мы ее отформатируем, и продолжим работу. Не тут-то было. Камера наотрез отказалась форматировать карточку, выдавая неизменное «Card Error». Попытка прочитать карточку в устройстве для считывания Olympus MAUSB-2 успеха не возымела. Так как физическая порча карточки представлялась маловероятной, оставалось предположить, что причиной ее неработоспособности стало уничтожение содержимого CIS (Card Information Structure).

Подобная ситуация может возникнуть, например, после применения карты SmartMedia в портативных MP3-плеерах типа Diamond Rio, которые производят физический формат карты и изменяют CIS с нарушением спецификации SmartMedia Physycal Format Specification от SSFDC Forum Technical Commitee. Единственным способом восстановить поврежденный формат является разметка карты с помощью утилиты RioDiag. Если карта SmartMedia произодства Olympus, то для восстановления работы режима «Панорама» можно воспользоваться этой программой. Однако для этого требуется наличие упомянутого MP3-плеера, которого у автора статьи не было. Попытка найти иной способ решения проблемы с помощью архивов конференций UseNet потерпела неудачу. Удалось лишь найти упоминания о том, что неприятности с неверным форматированием карт памяти возникают также и у владельцев цифровых камер FujiFilm. О включении программы для форматирования карты памяти в комплект драйверов для Windows 9x Olympus также не позаботился.

Остался лишь один способ попытаться восстановить карточку — предположив, что Olympus не является изготовителем чипсета адаптера MAUSB-2, попытаться найти программу для физического форматирования от истинного производителя. Вскрытие адаптера показало, что в нем применен набор микросхем от компании Shuttletech (SCM Microelectroincs).

К счастью, в состав драйверов от SCM Microelectronics входит программа для логического форматирования, которая также способна восстановить физический формат карты, в случае повреждения структуры CIS. Так как утилита форматирования не работает с драйверами от Olympus (фирма заботливо переименовала имена файлов, этим вся «доработка» от Olympus и ограничилась), то осталось лишь удалить драйверы от MAUSB-2, не забыв после этого стереть файл olyossm.inf в каталоге Windows/INF/Other, перезагрузить компьютер и установить драйверы от SCM Microelectronics.

В случае разрушения информации в полях CIS, программа Smprep обнаруживает эту ситуацию и предлагает восстановить ее в соответствии со спецификацией.

После форматирования карта становится пригодной к эксплуатации и нормально распознается камерой, но незадача — у карты производства Olympus перестал работать режим «Панорама». И, хотя этот режим считается не слишком необходимым, тем не менее, потерять его было несколько обидно. Почему так происходит?

Немного теории

Согласно вышеупомянутой спецификации SSFDC форума, каждая карта Smartmedia форматируется на двух уровнях: физическом и логическом. Логический уровень предполагает запись информации о таблице разделов, загрузочного сектора и таблиц FAT, в то время как физический уровень подразумевает занесение информации для определения типа карты, ее производителя, а также необходимых данных для отклика карты на команду ATA-интерфейса «Identify Drive» (таблицы CIS) На карту записываются две копии CIS. Отметим, что цифровые камеры производства компании Olympus могут выполнять только логическое форматирование карт памяти. Исходя из этого, нетрудно предположить, что при форматировании карты с помощью программы Smprep информация об изготовителе карты была уничтожена.

Эти данные хранятся в нулевом физическом блоке карты и выглядят следующим образом (значения по-умолчанию, разрешенные для изменения производителем карты, выделены серым цветом.):

Для карт SmartMedia производства Olympus эти значения выглядят следующим образом:

Наименование производителя:
«OLYMPUS»
Имя продукта:
(для карт с режимом «Панорама») «PAN « (пробел (20h) после буквы «N»)
Версия продукта:
«1.0»

К счастью, обе копии CIS в программе Smprep лежат в открытом виде и могут быть модифицированы (см. рис. 1, копии CIS выделены желтым цветом). Таким образом, записав нужные нам параметры о производителе, мы сможем восстановить работоспособность режима «Панорама». Для того, чтобы микропрограмма камеры смогла «признать» разрешенный режим «Панорама», достаточно провести модификацию только первой копии CIS, как показано на рис. 2. А если делать это «как положено» — то желательно модифицировать и вторую копию CIS, в соответствии с рис. 3.

рис. 1

Но в данном случае не все так просто. Как мы помним, карта Smartmedia уже была восстановлена, и естественно, что проверив содержимое первых 10 байт (01h, 03h, D9h, 01h, FFh, 18h, 02h, DFh, 01h, 20h) программа считает карту пригодной к употреблению, и отказывается прописывать измененные нами копии CIS. Придется снова ее «испортить». Проще всего сделать это, поменяв первый байт в обеих копиях CIS — например, изменив его значение с 01 на 02. Для текущей версии программы Smprep это адреса 22FE8h и 230E8h, соответственно. Для этой процедуры следует сделать отдельную копию программы Smprep. Если все сделано верно, на рабочей карте программа обнаружит «неверный» CIS и «восстановит» его в неправильном виде — что и требовалось. Затем запускаем предварительно заготовленную версию Smprep с прописанными параметрами изготовителя, и, если все сделано правильно, она предупредит о необходимости восстановления CIS, после чего цифровая камера позволит включить и использовать режим «Панорама»!

рис. 2

рис. 3

В заключение следует сказать, что автор не рекомендует производить вышеописанные эксперименты на рабочих картах SmartMedia, имеющих гарантию продавца, а также включать режим «Панорама» на картах производства третьих фирм. Также следует учесть, что приведенные на рисунках адреса могут изменяться в зависимости от версии программы для форматирования. Стоит отметить, что в среде Windows 2000, в отличие от Windows 9x, вышеописанные процедуры работать не будут, так как из-за ограничений драйвера программа Smprep сможет выполнять только логическое форматирование карты.

Использованные материалы:

  1. SmartMedia Physical Format Specifications, SSFDC Forum Technical Committee
  2. SMCardID v. 0.2 by David M. Pochron, Source code





Дополнительно

Восстановление испорченной карты SmartMedia при помощи Olympus MAUSB-2

Восстановление испорченной карты SmartMedia при помощи Olympus MAUSB-2

Зависает не только Windows

ВНИМАНИЕ! Автор статьи не несет никакой ответственности за любой вред, нанесенный оборудованию вследствие применения описанных здесь действий.

Однажды с автором этой статьи произошла довольно неприятная история: после сьемки очередного кадра его цифровая камера зависла, отказавшись реагировать на любые внешние раздражители, включая кнопку отключения питания. Ситуацию удалось исправить извлечением аккумуляторов из отсека питания и их повторной установкой, но после включения аппарат отобразил на дисплее надпись «Card Error» и отказался работать с картой памяти SmartMedia. Не беда, подумал автор, сейчас мы ее отформатируем, и продолжим работу. Не тут-то было. Камера наотрез отказалась форматировать карточку, выдавая неизменное «Card Error». Попытка прочитать карточку в устройстве для считывания Olympus MAUSB-2 успеха не возымела. Так как физическая порча карточки представлялась маловероятной, оставалось предположить, что причиной ее неработоспособности стало уничтожение содержимого CIS (Card Information Structure).

Подобная ситуация может возникнуть, например, после применения карты SmartMedia в портативных MP3-плеерах типа Diamond Rio, которые производят физический формат карты и изменяют CIS с нарушением спецификации SmartMedia Physycal Format Specification от SSFDC Forum Technical Commitee. Единственным способом восстановить поврежденный формат является разметка карты с помощью утилиты RioDiag. Если карта SmartMedia произодства Olympus, то для восстановления работы режима «Панорама» можно воспользоваться этой программой. Однако для этого требуется наличие упомянутого MP3-плеера, которого у автора статьи не было. Попытка найти иной способ решения проблемы с помощью архивов конференций UseNet потерпела неудачу. Удалось лишь найти упоминания о том, что неприятности с неверным форматированием карт памяти возникают также и у владельцев цифровых камер FujiFilm. О включении программы для форматирования карты памяти в комплект драйверов для Windows 9x Olympus также не позаботился.

Остался лишь один способ попытаться восстановить карточку — предположив, что Olympus не является изготовителем чипсета адаптера MAUSB-2, попытаться найти программу для физического форматирования от истинного производителя. Вскрытие адаптера показало, что в нем применен набор микросхем от компании Shuttletech (SCM Microelectroincs).

К счастью, в состав драйверов от SCM Microelectronics входит программа для логического форматирования, которая также способна восстановить физический формат карты, в случае повреждения структуры CIS. Так как утилита форматирования не работает с драйверами от Olympus (фирма заботливо переименовала имена файлов, этим вся «доработка» от Olympus и ограничилась), то осталось лишь удалить драйверы от MAUSB-2, не забыв после этого стереть файл olyossm.inf в каталоге Windows/INF/Other, перезагрузить компьютер и установить драйверы от SCM Microelectronics.

В случае разрушения информации в полях CIS, программа Smprep обнаруживает эту ситуацию и предлагает восстановить ее в соответствии со спецификацией.

После форматирования карта становится пригодной к эксплуатации и нормально распознается камерой, но незадача — у карты производства Olympus перестал работать режим «Панорама». И, хотя этот режим считается не слишком необходимым, тем не менее, потерять его было несколько обидно. Почему так происходит?

Немного теории

Согласно вышеупомянутой спецификации SSFDC форума, каждая карта Smartmedia форматируется на двух уровнях: физическом и логическом. Логический уровень предполагает запись информации о таблице разделов, загрузочного сектора и таблиц FAT, в то время как физический уровень подразумевает занесение информации для определения типа карты, ее производителя, а также необходимых данных для отклика карты на команду ATA-интерфейса «Identify Drive» (таблицы CIS) На карту записываются две копии CIS. Отметим, что цифровые камеры производства компании Olympus могут выполнять только логическое форматирование карт памяти. Исходя из этого, нетрудно предположить, что при форматировании карты с помощью программы Smprep информация об изготовителе карты была уничтожена.

Эти данные хранятся в нулевом физическом блоке карты и выглядят следующим образом (значения по-умолчанию, разрешенные для изменения производителем карты, выделены серым цветом.):

Для карт SmartMedia производства Olympus эти значения выглядят следующим образом:

Наименование производителя:
«OLYMPUS»
Имя продукта:
(для карт с режимом «Панорама») «PAN « (пробел (20h) после буквы «N»)
Версия продукта:
«1.0»

К счастью, обе копии CIS в программе Smprep лежат в открытом виде и могут быть модифицированы (см. рис. 1, копии CIS выделены желтым цветом). Таким образом, записав нужные нам параметры о производителе, мы сможем восстановить работоспособность режима «Панорама». Для того, чтобы микропрограмма камеры смогла «признать» разрешенный режим «Панорама», достаточно провести модификацию только первой копии CIS, как показано на рис. 2. А если делать это «как положено» — то желательно модифицировать и вторую копию CIS, в соответствии с рис. 3.

рис. 1

Но в данном случае не все так просто. Как мы помним, карта Smartmedia уже была восстановлена, и естественно, что проверив содержимое первых 10 байт (01h, 03h, D9h, 01h, FFh, 18h, 02h, DFh, 01h, 20h) программа считает карту пригодной к употреблению, и отказывается прописывать измененные нами копии CIS. Придется снова ее «испортить». Проще всего сделать это, поменяв первый байт в обеих копиях CIS — например, изменив его значение с 01 на 02. Для текущей версии программы Smprep это адреса 22FE8h и 230E8h, соответственно. Для этой процедуры следует сделать отдельную копию программы Smprep. Если все сделано верно, на рабочей карте программа обнаружит «неверный» CIS и «восстановит» его в неправильном виде — что и требовалось. Затем запускаем предварительно заготовленную версию Smprep с прописанными параметрами изготовителя, и, если все сделано правильно, она предупредит о необходимости восстановления CIS, после чего цифровая камера позволит включить и использовать режим «Панорама»!

рис. 2

рис. 3

В заключение следует сказать, что автор не рекомендует производить вышеописанные эксперименты на рабочих картах SmartMedia, имеющих гарантию продавца, а также включать режим «Панорама» на картах производства третьих фирм. Также следует учесть, что приведенные на рисунках адреса могут изменяться в зависимости от версии программы для форматирования. Стоит отметить, что в среде Windows 2000, в отличие от Windows 9x, вышеописанные процедуры работать не будут, так как из-за ограничений драйвера программа Smprep сможет выполнять только логическое форматирование карты.

Использованные материалы:

  1. SmartMedia Physical Format Specifications, SSFDC Forum Technical Committee
  2. SMCardID v. 0.2 by David M. Pochron, Source code