Официальный форум СВД Встраиваемые Системы
03 Декабря, 2016, 07:39:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: монтирование CF в QNX 6.4.1  (Прочитано 3013 раз)
Ingko
Пользователь

Сообщений: 16



« : 01 Марта, 2010, 17:41:57 »

Здравствуйте!
У меня возникла небольшая проблема: пытаюсь собрать встроенную систему на базе QNX 6.4.1. При написании .boot файла не выходит смонтировать файловую систему флешки Transcend CompactFlash Ultra 128MB Industrial.
Монтирую следующей командой:

devb-eide blk automount=hd0t177:/ eide &
waitfor /dev/hd0t177
#если здесь задать команду ls /dev/ то она покажет что устройства hd0 и hd0t177 в системе есть.

mount -t qnx6 /dev/hd0t177 /

ну и вот почему-то тут появляется ошибка
mount: Can't mount / (type qnx6)
mount: Possible reason: Read-only file system

где я лопухнулся? Заранее спасибо за ответ.
Записан

Миру служи человеческий гений!
Василий Дмитриев
Опытный пользователь

Сообщений: 293



« Ответ #1 : 01 Марта, 2010, 19:24:26 »

Из опыта работы с CF во многих случаях полезно убирать режим UDMA в биосе. Иногда приходится руками подбирать режим работы в биосе (large,chs и т.п.).Если у Вас есть возможность загрузиться  с другого устройства и посмотреть геометрию карточки с точки зрения qnx (например с помощью fdisk) сравните ее с геометрией с точки зрения биоса. Иногда беды идут отсюда.
Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Ingko
Пользователь

Сообщений: 16



« Ответ #2 : 01 Марта, 2010, 21:06:11 »

так. забыл упомянуть: CF подключен через IDE переходник к мат. плате. Флешку на 128 МБ я записываю из основной системы (флешка на 8 Гб с установленным QNX). Системный блок у флешек общий. Завтра выложу то, что думает о ней fdisk:)
Записан

Миру служи человеческий гений!
Василий Дмитриев
Опытный пользователь

Сообщений: 293



« Ответ #3 : 01 Марта, 2010, 22:17:38 »

Тут главное не то что fdisk думает, а то что бы его мнение совпадало с мнением биоса.
Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 659



WWW
« Ответ #4 : 01 Марта, 2010, 23:39:39 »

Поскольку процесс доходит до запуска драйвера значит загрузчик уже отработал, скопировал образ и передал на него управление, т.е. проблемы с возможным расхождением геометрии позади.


Ошибка которую вам вернул mount, вернее даже не ошибка, а уведомление, значит что файловую систему можно подмонтировать в режиме Read Only, т.е. mount -r -t qnx6 /dev/hd0t177 /
Если вы помимо чтения хотите еще и записывать, то необходимо задать драйверу devb-eide опцию "qnx6 sync=optional" для файловой системы QNX6.

Дело в том, что файловая система QNX 6 (Power-Safe filesystem QNX Neutrino) разрабатывалась для традиционных жестких дисков. Эта файловая система ожидает, что устройство поддерживает команды синхронизации для записи данных на реальный носитель в ключевые моменты времени. Более подробно можно прочитать здесь.
Если устройство синхронизацию не поддерживает то можно использовать опцию sync=optional (вызывать команды синхронизации, но игнорировать ошибки в случае если устройство не поддерживает эту операцию) или даже sync=ignore (вообще не вызывать команды синхронизации).

Для того, чтобы обеспечить логику работу QNX 6 файловой системы необходимо, чтобы устройство отвечало следующим требованиям Required properties of the device.
Если кратко, то драйвер и само устройство должны по вызову WRITE либо сразу честно записать данные на носитель, либо устройство может их где-нибудь у себя закэшировать, но при вызове FLUSH/SYNC драйвера устройство должно честно отработать, записать данные на физический носитель и не возвращаться пока не выполнит эту операцию. Помимо этого, от устройства ожидается надежность в хранении данных, т.е. если данные записаны на носитель, то не должны изменяться со временем до следующей перезаписи, если требуется то необходимо использовать алгоритмы определения битых блоков и контроль за изнашиваемостью (деградацией). Еще, в случае записи в одну область (сектор, регион), устройство ни при каких обстоятельствах не должно портить данные в других регионах.

Кроме этого, для работы с этой файловой системой вместо привычных dinit и chkfsys нужно использовать mkqnx6fs и chkqnx6fs.
Записан

Василий Дмитриев
Опытный пользователь

Сообщений: 293



« Ответ #5 : 02 Марта, 2010, 08:46:35 »

до запуска драйвера значит загрузчик уже отработал, скопировал образ и передал на него управление, т.е. проблемы с возможным расхождением геометрии позади.
Это может быть не совсем так.Связано это с тем что загрузчик и образ находятся в начальных областях диска и при определенной геометрии расхождения начинаются позже. Во всяком случае, у меня через мои руки прошли десятки CF на EIDE и очень часто играла именно проблема расхождения геометрии.
Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Ingko
Пользователь

Сообщений: 16



« Ответ #6 : 02 Марта, 2010, 10:18:53 »

параметры BIOS и fdisk совпадают: 16 головок, 246 цилиндров, 63 сектора
Записан

Миру служи человеческий гений!
Василий Дмитриев
Опытный пользователь

Сообщений: 293



« Ответ #7 : 02 Марта, 2010, 10:40:46 »

А режим ultra DMA с этого ide снять пробовали?
Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Ingko
Пользователь

Сообщений: 16



« Ответ #8 : 02 Марта, 2010, 11:50:46 »

ultra DMA, как оказалось, работает нормально.

Получилось запустить систему, но только с файловой системой, смонтированной для чтения ( mount -r -t qnx6 /dev/hd0t177 /). Но мне необходима еще и запись. Помогите пожалуйста разобраться с параметрами запуска devb-eide.


Записан

Миру служи человеческий гений!
Ingko
Пользователь

Сообщений: 16



« Ответ #9 : 02 Марта, 2010, 12:08:26 »

Я сам разобрался:)))))
команда выглядит так:

devb-eide blk automount=hd0t177:/ qnx6 sync=optional &

вот где, как оказалось, собака порылась. Большое спасибо Вам, Василий и Владимир, за помощь!
Записан

Миру служи человеческий гений!
Al
Пользователь

Сообщений: 87


« Ответ #10 : 02 Марта, 2010, 12:09:35 »

Если вы помимо чтения хотите еще и записывать, то необходимо задать драйверу devb-eide опцию "qnx6 sync=optional" для файловой системы QNX6.
Вообще-то об этом Вам сверху уже говорили, наверное упустили из виду...
Записан

Ingko
Пользователь

Сообщений: 16



« Ответ #11 : 02 Марта, 2010, 12:30:22 »

Нет, не упустил. Наоборот, на этом и базировался. Просто не сразу получилось правильную команду сформировать. Я пока делаю первые шаги в освоении QNX6. Многое, что для Вас очевидное для меня в новинку:)
Записан

Миру служи человеческий гений!
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 659



WWW
« Ответ #12 : 02 Марта, 2010, 13:18:30 »

Я-бы посоветовал проверить насколько корректно в Вашем случае файловая система поведет себя в случаях внезапного выключения питания в самые неподходящие моменты (например редактирования или копирования файлов) и возникновения "битых" блоков (можно попробовать исскуственно испортить данные). На первом отладочном этапе, возможно, не будет лишним включить в образ утилиту chkqnx6fs, чтобы проконтролировать, что всё в порядке и работает и в дальнейшем исключить её из образа.
Записан

Ingko
Пользователь

Сообщений: 16



« Ответ #13 : 02 Марта, 2010, 13:36:25 »

спасибо за совет, попробую. для меня как раз и важно чтобы данные не повреждались при сбоях в питании и программных ошибках
Записан

Миру служи человеческий гений!
Ingko
Пользователь

Сообщений: 16



« Ответ #14 : 02 Марта, 2010, 21:19:33 »

Вопрос: а как искусственно испортить данные? Открыть какой-нибудь файл (не текстовый) в текстовом редакторе и произвольно изменить часть данных?
Записан

Миру служи человеческий гений!
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 18 Ноября, 2016, 01:14:36