Вопрос или проблема
Обычный ответ в Интернете — прочитать спецификацию (они никогда её не упоминают) или узнать чипсет (трудно узнать до покупки) перед покупкой. Где я могу найти список картридеров SD, которые поддерживают эту функцию и позволяют использовать blkdiscard
?
Если устройство не может работать с blkdiscard, что справедливо для всех моих картридеров на базе USB (их 20), то вы получите следующее:
# blkdiscard /dev/sdb
blkdiscard: /dev/sdb: BLKDISCARD ioctl failed: Operation not supported
blkdiscard
работает с TRIM. Насколько я могу судить, чтобы поддерживать TRIM через USB-мост, USB-мостовой чип ДОЛЖЕН поддерживать команды SCSI / ATA Translation(SAT) ATA PASS THROUGH, чтобы передать команду TRIM на диск, так что это, по сути, вопрос, какой картридер на базе USB поддерживает ATA PASS THROUGH.
Если ничего не помогает, вы можете попробовать изучить документацию и ядро Linux.
Определить ваш чипсет должно быть легко, если вы посмотрите прототипы функций или вызовы функций в исходном коде драйвера Linux для указанных вами спецификаций sd, или, возможно, найдете кучу макросов с чипсетами, которые вы можете использовать, этот метод больше основан на пробах и ошибках.
Если и это не удастся, вы можете попробовать скачать драйвер стороннего картридера и поработать с ним, возможно, даже получить помощь на IRC.
Ответ или решение
Найти список картридеров, поддерживающих команду blkdiscard
, задача не из легких. blkdiscard
работает с функцией TRIM, которая обычно поддерживается твердотельными накопителями (SSD) для удаления блоков данных и освобождения пространства, что помогает поддерживать производительность диска. Для того чтобы эта команда корректно сработала через USB-картридер, ему нужно поддерживать механизм передачи команд ATA, известный как ATA PASS THROUGH. Это позволяет передавать команды ATA, такие как TRIM, к устройству хранения данных через интерфейс, например USB.
Теория
Почему это важно?
Поддержка TRIM через blkdiscard
позволяет эффективно управлять памятью, улучшая долговечность и производительность SD-карт. Однако, не все USB-картридеры поддерживают эту функцию. Проблема заключается в USB bridge chip, который должен поддерживать SAT (SCSI / ATA Translation) и ATA PASS THROUGH для передачи команды TRIM на карту памяти. Поддержка этих функций может значительно варьироваться между устройствами, особенно в случае более дешевых или устаревших моделей.
Как работает blkdiscard
?
Команда blkdiscard
отправляет сигнал на поддерживаемое устройство для физического удаления данных в указанных блоках. Для SSD это важно, так как позволяет эффективно управлять пространством внутри устройства, запуская механизм TRIM, который подсказывает контроллеру SSD, какие блоки больше не содержат действующие данные.
Влияние на выбор устройств
При выборе картридера, важно учитывать поддержку TRIM, которая критически зависит от используемого чипсета. Некоторые производители могут не указывать эту информацию в своих спецификациях, что создает сложность в выборе подходящего устройства.
Пример
Рассмотрим, как обычный процесс выбора картридера может выглядеть:
-
Исследование спецификаций производителей: Внимательное изучение технических спецификаций, особенно разделов, связанных с поддержкой команд ATA и SCSI, это первый шаг. Однако, производители редко размещают такие детали в открытом доступе.
-
Анализ обратной связи от пользователей: Часто пользователи делятся опытом использования устройств на специализированных форумах и в обзорах, что может стать ценным источником информации. Например, на платформах вроде Stack Overflow специалисты могут обсудить поддержку определенных функций.
Применение
Чтобы эффективно подойти к данной задаче:
-
Проверка документации и форумов: Начните с изучения документации к потенциальным картридерам и форумов, таких как Stack Exchange или Reddit. Пользовательские обзоры могут пролить свет на реальную поддержку TRIM либо через успешные пробы
blkdiscard
, либо через разочарование в его отсутствии. -
Изучение Linux-ядра и драйверов: Как упоминается, изучение сорс-кодов Linux-драйверов может включать изучение прототипов функций или макросов, что позволяет выявлять поддерживаемые чипсеты. Эта задача может оказаться трудозатратной и требующей знаний программирования.
-
Запросы к производителям: Не стесняйтесь обращаться напрямую к производителям за информацией об их продуктах. В исключительных случаях они могут предоставить более полную информацию о поддержке SAT и ATA PASS THROUGH.
-
Анализ внешних драйверов: Использование сторонних драйверов может иногда помочь в разгадке поддержки TRIM. Это подразумевает определенный риск, так как такие решения могут быть нестабильными или небезопасными.
-
Активное участие в сообществах: Участие в дискуссиях на профильных форумах и в IRC-каналах может оказаться полезным. Специалисты нередко делятся новым опытом и находками, которые еще не успели попасть в публикации.
Резюмируя, нахождение подходящего картридера — задача, требующая внимательного подхода, сбора информации из разных источников и иногда небольшой доли везения. Но, вооружившись пониманием ключевых аспектов, вы увеличиваете свои шансы на успешную покупку.