devf-ram

Моделирование файловой системы флэш-памяти с использованием оперативной памяти

Примечание. Для запуска этого драйвера необходимо войти в систему с учетной записью root.

Синтаксис:

devf-ram

[-a] [-b приоритет]

[-E] [-f уровень_проверки] [-i индекс_массива[,индекс_раздела]]

[-l] [-m перемонтирование]

[-p фоновый_процент[,сверхлимит]] [-R] [-r]

[-s базовый_адрес[,размер_окна[,смещение_массива[,размер_массива

[,размер_блока[,ширина_шины[,коэф_чередования]]]]]]]

[-t потоки] [-u обновление] [-V] [-v]

[-w размер_буфера]

Поддерживаемые платформы:

Neutrino

Целевые платформы:

MIPS, PowerPC, x86, SH и ARM

Опции:

-a

Не выполнять автоматическое монтирование разделов файловой системы, имеющихся на носителе. Если указаны обе опции - a и -R, опция -R драйвером игнорируется.

-b приоритет

Активация фонового восстановления с указанным значением приоритет. По умолчанию фоновое восстановление деактивировано.

-E

Не переходить в режим сервиса. При обнаружении драйвером поврежденной файловой системы статус завершения будет на 1 больше номера раздела файловой системы.

-f уровень_проверки

Выполнить моделирование проверки флэш-памяти; предоставляется только для совместимости синтаксиса с реальным флэш-устройством (по умолчанию – 0, 0 – без проверки, проверка записи – 1, проверка удаления – 2, все – 3).

-i индекс_массива[,индекс_раздела]

Индексы начального сокета и первого раздела; 0 ≥ индекс ≥15. Значением по умолчанию является 0,0. Используется для присвоения нескольким драйверам уникальных идентификаторов. Опция -i является просто указанием для менеджера ресурсной базы данных. Выбранные индексы могут иметь большие значения.

-l

Вывести список всех доступных баз данных флэш-памяти и завершить работу.

-m перемонтирование

Перезаписать точки монтирования, присвоенные файловой системе, отформатированной с пустой точкой монтирования (т.е. flashctl -p/dev/fs0p0 -e -f -n ""). Аргумент перемонтирование может включать два спецификатора формата %X (аналогичных спецификаторам для printf()), которые заменяются индексом сокета и индексом раздела.

Примечание
. Опция -m не используется для перезаписи точки монтирования, указанной посредством утилиты mkefs.

-p фоновый_процент[,сверхлимит]

Установка процентного триггера фонового восстановления (устаревшее пространство поверх свободного пространства) и (дополнительно) лимита перекрываемого экстента перед восстановлением. Значение по умолчанию – 100,16.

-R

Монтировать все файловые системы с автоматическим монтированием в режиме "только чтение". Эта опция не влияет на монтирование неформатированных разделов. Она имеет значение только при запуске и инициализации. При всех последующих операциях монтирования (с использованием flashctl или mount) опция -R игнорируется. Если указана опция -a, опция -R драйвером игнорируется.

-r

Активировать устранение неисправностей для экстентов без поддержки 8-разрядных символов, зависших экстентов и при частичном восстановлении.

Примечание. Значение опции -r не указывается только в случае выполнения попытки устранения проблемы, связанной с повреждением флэш-устройства.

Если не указана опция -r, то при сбое питания возможны следующие ситуации:

-s базовый_адрес[,размер_окна[,смещение_массиваt[,размер_массива

[,размер_блока[,ширина_шины[,коэф_чередования]]]]]]


Установить опции сокета: как правило, базовый физический адрес, размер окна, смещение массива, размер массива, ширина шины и коэффициент чередования. Для служб сокета со специализированными драйверами формат остается гибким.

Аргументы:

базовый_адрес

Физический базовый адрес раздела флэш-памяти. Значение зависит от используемой платы.

Примечание. При использовании утилиты devf-ram аргумент базовый_адрес имеет особое значение:

0

Выделить системную память.

Ненулевое значение

Использовать точный физический адрес. Необходимо действовать внимательно. См. предупреждения ниже.

размер_окна

Размер физически непрерывного раздела флэш-памяти.

смещение_массива

Для памяти типа SRAM аргумент задает смещение относительно базового адреса к началу массива флэш-памяти.

размер_массива

Для памяти типа SRAM аргумент задает размер массива флэш-памяти. Значение по умолчанию соответствует значению размер_окна.

размер_блока

Размер физического сектора для стирания. Для памяти типа SRAM это число может являться любым числом в степени 2. По причинам производительности минимальное значение должно быть равно 64 Кб.

ширина_шины

Общая ширина шины данных с точки зрения микропроцессора. Это значение соответствует произведению размера шины для одной смоделированной микросхемы флэш-памяти и коэффициента чередования. Значение должно представлять собой степень числа 2 (1, 2, 4 или 8).

коэф_чередования

Число смоделированных микросхем флэш-памяти на шине данных. Это значение должно представлять собой степень числа 2 (1, 2, 4 или 8).

Базовый физический адрес, размеры и смещение можно указать в восьмеричном (0777), шестнадцатеричном (0x1ff) или десятичном (511) формате. Размеры должны являться степенью числа 2. Эти значения устанавливаются с любым из следующих суффиксов:
Примечание. В целевых системах ARM изменение размера разделяемого объекта /dev/shmem/fs* посредством devf-ram невозможно. Для перезапуска devf-ram с новым размером сначала необходимо удалить ссылку на прежний разделяемый объект:

rm /dev/shmem/fs*

-t потоки

Число потоков. Минимальное значение равно 1, значение по умолчанию – 2, а максимальное значение – 100. Дополнительное число потоков увеличивает производительность при активации фонового восстановления (опция -b) и использовании нескольких микросхем и/или резервных блоков.

-u обновление

Уровень обновления для меток времени: 0 – без обновления, 1 –только обновление файлов, 2 – обновление файлов и каталогов. Значением аргумента обновление по умолчанию является 0.

-V

Вывести информацию о версии файловой системы и MTD и завершить работу.

-v

Вывести расширенную информацию.

-w размер_буфера

Размера буфера записи (добавление) в байтах. Значением аргумента размер_буфера по умолчанию является 512. Использование больших размеров буфера при записи предотвращает создание слишком мелких экстентов, что сокращает затраты. Если значение размер_буфера равно 0, добавление деактивируется.

Описание:

Менеджер devf-ram предназначен для моделирования файловой системы флэш-памяти в RAM со следующими именами файлов по умолчанию (для изменения идентификатора n, добавляемого к /dev/fs, используется опция -i):

/dev/fsn

Точка монтирования по умолчанию для сокета n.

/dev/fsnp0

Доступ к неформатированным данным для сокета n, раздел 0.

точка_монтирования

Точка монтирования файловой системы флэш-памяти для сокета n, раздел 0 с прозрачной распаковкой данных.

Значение описанного выше аргумента точка_монтирования можно определить с помощью атрибута mount команды mkefs и перезаписать его с использованием опции -n для flashctl. Значение по умолчанию – /fsnp0.

Примеры:

Запуск devf-ram с разделом в 16 Mб.

devf-ram -s0,16m

Запуск devf-ram и автоматическое монтирование разделов файловой системы флэш-памяти с процессом начального устранения неисправностей, активацией семантики POSIX и фоновым восстановлением с приоритетом 5 (размер по умолчанию: 1 Mб):

devf-ram -r -u2 -b5 &

Создание раздела флэш-памяти размером 32 Мб с выделением из системной оперативной памяти с размером блока (сектора) 64 Кб:

devf-ram -s0,32m,,,64k -v -r

Создание в системном оперативной памяти раздела флэш-памяти размером 128 Мб с большими размерами блоков (для ускорения форматирования):

devf-ram -s0,128m,,,512k -v -r

Создание в системной оперативной памяти раздела размером 4 Mб:

devf-ram -s0,4m,,,64k -v -r


Примечание. Перед монтированием файловой системы флэш-памяти необходимо выполнить форматирование и очистку раздела devf-ram. См. предупреждения ниже.

Примечание. При определении размера блока в файле построения образа для файловых систем флэш-памяти на базе DRAM необходимо ограничить этот размер значением по умолчанию (64 Кб).

Предупреждения:

Несмотря на то, что в файловой системе флэш-памяти поддерживается большая часть семантики POSIX, некоторые функции не реализованы в целях сохранения простоты использования и эффективности работы данного драйвера. Не поддерживается следующая семантика POSIX:
В файловой системе флэш-памяти QNX Neutrino версии 3 встроенная распаковка больше не поддерживается. Функции распаковки файловой системы флэш-памяти перенесены в менеджер ресурсов inflator. Для сжатия файлов используется утилита deflate.

Во время записи из нескольких источников в произвольном порядке в разделяемый файл или каталог (например, посредством unlink или rename) может наблюдаться снижение производительности. В таких случаях необходимо отдельно определять указатели смещения для каждого случая доступа. При добавлении к файлу или создании файлов с помощью open(O_CREAT), mkdir, mknod или link штрафы за отсутсвуют потери производительности.

Не пытайтесь создать раздел devf-ram по адресу реальной флэш-памяти. В этом случае может быть создано сообщение об ошибке: Unable to properly identify any flash devices (не удалось корректно определить флэш-устройства).

Не пытайтесь создать раздел devf-ram (например, с помощью выбора ненулевого значения аргумента базовый_адрес) по адресу используемой физической памяти. Это может привести к разрушению приложения и аварийному отказу операционной системы. Выбор ненулевого значения для аргумента базовый_адрес возможен только в целях создания файловой системы флэш-памяти для памяти, предназначенной для платы (например, SRAM).

Перед монтированием файловой системы флэш-памяти необходимо форматировать и очистить раздел devf-ram.

devf-ram -s0,16m

flashctl -p /dev/fs0p0 -e -f -m

Если при попытке создания раздела размером n Мб с помощью опции -s0 недостаточно оперативной памяти, драйвер devf-ram завершает работу без сообщения об ошибке. Раздел не создается.