ЖУРНАЛ «СТА» №1/2007

92 СТА 1/2007 www.cta.ru # cp cAR /usr/photon/config/pterm /fs/uf/usr/photon/config/ # cp cAR /usr/photon/config/wm /fs/uf/usr/photon/config/ # cp cAR /usr/photon/font_repository /fs/uf/usr/photon/ # cp cAR /usr/photon/keyboard /fs/uf/usr/photon/ Не забудьте добавить образ ОС: # cp cpc502alt.ifs /fs/uf/.boot Или собранный из файла bios.build : # cp bios.ifs /fs/uf/.boot Теперь отмонтируем диск и выгрузим из памяти драйвер, чтобы можно было отключить USBустройство чтения карт CompactFlash и вынуть CompactFlash: # umount /fs/uf # umount /dev/hd1 # slay f devbumass # slay f iousb Все то же самое вы можете сделать, воспользовавшись всего тремя специально разработанными для этой цели скриптами: # ufinit cpc502alt.ifs # ufcpfs # umass stop Первый создаёт раздел на диске, инициализирует его и под- ключает в /fs/uf . Если указано имя файла образа ОС, лежаще- го в этом каталоге, утилита копирует его. В противном случае собирает и копирует bios.ifs , используя стандартный образ /boot/build/bios.build . Второй копирует на этот диск файлы. Третий отключает CompactFlash. Эти и другие полезные утилиты вы можете найти на странице технической поддержки OC QNX. На этом пока все. Теперь можно вставить только что создан- ный загрузочный диск с QNX Neutrino в целевой компьютер и приступить к тестированию. Т ЕСТИРОВАНИЕ EIDE- ИНТЕРФЕЙСА Перейдём к тестированию EIDEконтроллера – ключевой части для надёжности работы вашей системы, если планиру- ется использовать CompactFlash или другой диск с EIDEин- терфейсом в качестве системного диска. Запуск драйвера с нужными аргументами Итак, у нас есть готовая загрузочная карта CompactFlash с QNX, которую вставляем в нашу целевую плату и загружаем- ся. Если после меню выбора разделов для загрузки появляется сообщение «Missing Operating System», измените в настройках BIOS тип используемого диска с LBA на Normal или наоборот. После включения, посмотрев содержимое папок в файло- вой системе, убеждаемся, что все файлы на своих местах. Про- веряем, не отрапортовал ли EIDEдрайвер об ошибках при за- пуске в системный журнал. Для этого запускаем sloginfo. В случае если драйвер devbeide не стартовал или стартовал с ошибками, следует попробовать его запустить с другими ар- гументами, например, отключив поддержку DMA: # devbeide eide nobmstr blk automount=hd0t77:/ Для подобных экспериментов необходимо, чтобы в файло- вой системе образа содержались следующие утилиты (необхо- димые драйверы и библиотеки там уже есть): ls , sin или pidin , rm или slay , mount и umount . В противном случае для каждой попытки запуска EIDEдрайвера нужно будет менять файл построения образа, заново собирать его, перезаписывать образ на CompactFlash и снова пробовать запустить. Поэтому рекомендуется использо- вать специально разработанные для подобных случаев образы альтернативной загрузки, те что с обозначением alt. Начальная проверка После того, как EIDEдрайвер запущен и файловая система с CompactFlash подключена, можно приступить к проверке. Для начала воспользуемся стандартными средствами провер- ки диска на наличие сбойных блоков: # dcheck –mrwV / и утилитой проверки файловой системы: # chkfsys / Теперь проверим сохранность файлов в файловой системе диска. Для этого посчитаем контрольную сумму файлов, хра- нящихся в самом большом каталоге, и запишем результат на диск: # cksum `find /usr type f` > /cksum0.res Перезапускаем компьютер по команде shutdown и повторя- ем команду, записывая результат уже в другой файл: # cksum `find /usr type f` > /cksum1.res Перезагрузка – это простой и эффективный способ переза- пустить драйвер, проинициализировать EIDEконтроллер и сбросить кэш диска. Сравниваем результаты: # diff /cksum0.res /cksum1.res Если утилита ничего не вывела на экран, значит, предвари- тельный тест по выявлению явных ошибок прошел успешно. Но расслабляться ещё рано. Удалим уже ненужные файлы с результатами: # rm cksum0.res /cksum1.res Полная проверка Переходим к полной проверке файловой системы EIDEдиска. Для этого нужна утилита, позволяющая цикли- чески выполнять проверку записи и чтения файлов, переза- пуская драйвер devbeide в конце каждого цикла проверки. Такая утилита есть и называется eiderstst . Скачать её вы мо- жете со страницы технической поддержки OC QNX. Рассмотрим её алгоритм работы. 1. Скопировать необходимые файлы и утилиты в /dev/shmem (файловая система, располагающаяся в оперативной па- мяти): # cp /sbin/devbeide /dev/shmem/devbeide # cp /bin/mount /dev/shmem/mount Если используется образ cpc502alt.ifs , то этот пункт мож- но пропустить, поскольку все необходимые утилиты и драйве- ры уже включены в файловую систему образа. 2. Подсчитать контрольную сумму всех (или большей части) файлов файловой системы на диске. Например, возьмем каталог /usr : # cksum `find /usr type f` > /dev/shmem/cksum0.res 3. Переместить эти файлы в архив, расположенный в ОЗУ: # tar –czf /dev/shmem/usr.tgz usr # rm –R /usr 4. Выгрузить из памяти драйвер devbeide : # slay devbeide 5. Запустить EIDEдрайвер: /dev/shmem/devbeide blk cache=256k, automount=/dev/hd0t77:/:qnx4 & 6. Распаковать архив: # tar –xzf /dev/shmem/usr.tgz 7. Пересчитать контрольную сумму файлов этого каталога: # cksum `find /usr type f` > /dev/shmem/cksum1.res 8. Сравнить полученный результат и ответ сохранить в жур- нале на диске: # diff /dev/shmem/cksum0.res /dev/shmem/cksum1.res >> /eidetst.res 9. Перейти к п.3. В З АПИС Н УЮ К НИЖК У ИНЖЕ Н Е РА

RkJQdWJsaXNoZXIy MTQ4NjUy