Просмотр полной версии : Платы Эмулятора дисков MFM (MFM Hard Disk Emulator) && Reader MFM Disk / Сборка /
Kinder5912
07.10.2018, 20:06
Тема посвящена сборке Платы эмуляции дисков MFM и контроллера чтения дисков MFM.
Тема в Барахолке тут: http://zx-pk.com/forum/viewtopic.php?f=40&t=10563
Kinder5912
14.10.2018, 15:08
1. Согласно методике тестирования автора сначала (до подключения платы BBG / BBB) нужно проверить "блок суперконденсаторов".
Для этого берем БП ATX. Чтобы он заработал без компьютера нужно установить 1 перемычку. См картинку:
http://masakra.ru/foto/kak-podklyuchit-avtomagnitolu-doma-cherez-blok-pitaniya-i-bez-ot-zaryadnogo-ustroystva-10.jpg
Далее, не подключая BBG, подключаем блок питания к собранной плате и измеряем напряжение на конденсаторах (на каждом в отдельности, и на всей линейке в целом):
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/20181014_143551_3723b.970.jpg
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/20181014_143543_3723b.970.jpg
Такие изменения делаем на каждом конденсаторе. (Тут не стал выкладывать все фото - так как что и где мерить очевидно).
Теперь на всей линейке:
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/20181014_145713_71645.970.jpg
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/20181014_143627_71645.970.jpg
Ну и конечно должен гореть сигнальный светодиод на лицевой стороне платы:
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/20181014_143704_89135.970.jpg
Теперь несколько замечаний:
-Сразу после включения напряжение на конденсаторах у меня было меньше чем 2.30V. Но оно постепенно росло с 1.7V (конденсаторы заряжались) и где-то примерно через минуту стало равным 2.3V (как и пишет автор устройства).
-Я проверил также напряжения на контрольных точках. 5V и 12V присутствуют, а вот напряжения 3.3V нет (и не будет :-) ), так как оно идет с платы BBG/BBB и до её подключения взяться ему неоткуда.
-После отключения блока питания от платы, сигнальный (контрольный) светодиод будет продолжать гореть (так как конденсаторы заряжены). Это правильно. Тут важный момент - НЕЛЬЗЯ ПОДКЛЮЧАТЬ ПЛАТУ BBB/BBG ПОКА ЭТОТ СВЕТОДИОД ХОТЬ КАК-ТО СВЕТИТЬСЯ - можно повредить подключаемую плату. Автор пишет, что после отключения питания полная разрядка конденсаторов через светодиод происходит примерно за 1 час. У нас конденсаторы по емкости в 1.5 раза больше (если у вас стоит 15 Фарад) - время разрядки будет дольше. (У меня почти 4 часа 15 минут). В любом случае, перед подключением BBG/BBB проверьте вольтметром остаточное напряжение на линейке конденсаторов, ну или подождите с запасом - оставьте на ночь :-), чтобы уж точно всё разрядилось до конца.
...продолжение следует...
Kinder5912
14.10.2018, 23:04
2. Теперь берем плату BBG / BBB.
Исходя из своей ОС выбираем и устанавливаем пакет драйверов. Вот ссылки:
Windows (64-bit): https://beagleboard.org/static/Drivers/Windows/BONE_D64.exe
Windows (32-bit): https://beagleboard.org/static/Drivers/Windows/BONE_DRV.exe
Mac OS X: https://beagleboard.org/static/Drivers/MacOSX/RNDIS/HoRNDIS.pkg
Linux: https://beagleboard.org/static/Drivers/Linux/FTDI/mkudevrule.sh
После того, как установили пакет драйверов, подключаем BBG/BBB по USB к компьютеру. Плата определяется системой, устанавливаются необходимые драйверы.
Проверяем, что все драйверы успешно установлены.
Системный софт на BBG/BBB, разумеется старый. Сейчас мы его заменим. Нам потребуется программа PuTTY. Скачать ее можно тут:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Эта программа нам нужна для того, чтобы подключиться к плате BBG/BBB через SSH.
После того, как вы подключите плату по USB к компьютеру у вас появиться виртуальное сетевое подключение, а сама плата BBB/BBG будет иметь адрес 192.168.7.2
3. Запускаем PuTTY.
Заполните необходимые поля:
- Host Name (or IP address): 192.168.7.2
- Port: 22
- Connection type: SSH
Всё остальное оставляем по умолчанию. Нажимаем Open.
Выскочит предупреждение безопасности - проигнорируйте его. Откроется окно:
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/LoginSSH_edc96.970.jpg
Вводим login: debian
Вводим password: temppwd
И входим в командную строку операционной системы. (Обращаю внимание, что при вводе пароля он не отображается на экране - это нормально.)
Теперь нужно включить возможность обновления системы со встроенной MicroSD карты. Для этого нужно отредактировать файл /boot/uEnv.txt. Мы сделаем это с помощью встроенного редактора nano.
В командной строке набираем: sudo nano /boot/uEnv.txt
В открывшемся файле (/boot/uEnv.txt) ищем примерно следующий текст:
##enable BBB: eMMC Flasher:
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
И меняем его на:
##enable BBB: eMMC Flasher:
cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
- то есть убираем # перед командой cmdline во второй строке. Эти строки расположены ближе к концу файла.
Удаляем "#", нажимаем Crtl + X, далее жмем Y, и напоследок Enter. Всё, файл отредактирован.
Теперь, если вставить MicroSD карту со специально записанным образом ОС, то при включении BBB/BBG произойдет перезапись информации с этой MicroSD карты
во встроенную память на плате BBG/BBB и платформа обновится.
4. Теперь подготовим нашу карту памяти.
- Скачиваем по ссылке http://www.pdp8online.com/mfm/revb/BBB-mfm-emu_v1.32.img.xz текущий релиз платформы.
Сохраняем его на диск (лучше создать отдельную директорию) и распаковываем его. Я использовал обычный Win-RAR. Получаем образ: BBB-mfm-emu_v1.32.img размером около 1,67 Gb.
- Теперь нужно установить еще одну программу -Etcher. Ссылка тут: https://etcher.io/
- Пришло время найти чистую MicroSD карту. Нужна размером не менее 4 Gb и не более 32 Gb. Вставляете её в свой компьютер, ФОРМАТИРОВАТЬ НЕ НУЖНО (!), выясните только какую букву ей присвоила
ваша операционная система.
- Запускаем Etcher. Выбираем образ, который будем записывать на карту (BBB-mfm-emu_v1.32.img), выбираем MicroSD карту, на которую будем записывать и записываем! После записи программа сама проведет верификацию, и если все Ок сообщит об этом.
- Теперь нужно дать команду вашему компьютеру "Безопасно отключить карту памяти". После этого карту памяти можно извлечь из компьютера. Всё, у нас есть подготовленный образ ОС.
5. Отключаем BBG/BBB от питания!!! Вставляем только что подготовленную карту памяти в разъем на плате BBG/BBB. Снова подключаем BBG/BBB по USB и НИЧЕГО НЕ ДЕЛАМ - ПРОСТО ЖДЕМ!. Через некоторое время четыре светодиода над разъемом "локальная сеть" мигнут, немного поморгают по отдельности и далее вы будете видеть "бегущий огонь" (то вверх, то вниз).
Расслабьтесь и ожидайте завершения процесса копирования данных с MicroSD карты во встроенную память платы. По окончании процесса все 4 светодиода будут одновременно гореть. Ждите.
Через некоторое время все они погаснут. И вот только теперь нужно отключить плату - выдерните шнур USB из вашего компьютера. После этого ВЫТАЩИТЕ КАРТУ ПАМЯТИ MicroSD ИЗ РАЗЪЕМА НА ПЛАТЕ BBB/BBG..
Заново подключите плату BBG/BBB к компьютеру.
50% сделано :-)
6. Теперь нужно обновить прикладное ПО.
Последний релиз на сегодня лежит тут: http://www.pdp8online.com/mfm/code/
На 14.10.2018 это версия 1.33 (mfm_emu_powerfail_v1.33.tgz, релиз от 13.10.2018). Скачиваем этот файл на свой компьютер. Теперь нам нужно передать его на BBG/BBB.
Для этой цели используем программу pscp.exe, которую скачиваем тут: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
pscp.exe - программа для передачи файлов. Работает она в командной строке. По этому запускаем программу CMD (Пуск -> Выполнить -> CMD). Переходим в папку, в которую вы сохранили программу pscp.exe.
Надеюсь, что команду DOS "CD" все знают :-) по этому подробно расписывать не буду. В ту же директорию, где лежит pscp.exe скопируйте mfm_emu_powerfail_v1.33.tgz и далее вводим:
pscp.exe mfm_emu_powerfail_v1.33.tgz root@192.168.7.2:/root/
На вопрос отвечаем "Y" и наш файл скопируется на BBB/BBG. Выглядит это так:
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/CopyPSCP_fea26.512.jpg
7. Теперь нам снова нужно подключиться к BBG/BBB используя программу PuTTY. Но теперь логин и пароль другие.
Нужно ввести:
Login: root
... а пароля не будет вообще :-).
Дальше вводим такие команды:
tar -xzf mfm_emu_powerfail_*.tgz
cd mfm
make
cd ../emu
make
cd ../powerfail
make
exit
На предупреждения внимания не обращаем - всё так и должно быть. Ну что же - на этом обновление ПО завершено.
Теперь самое время время попробовать что-нибудь.
Снова подключитесь к плате BBB/BBG программой PuTTY (Login: root, без пароля) и введите:
poweroff -f
через некоторое время плата BBG/BBB выключиться - все светодиоды погаснут. Теперь ее можно отключить от кабеля USB и установить на
собранную вами плату эмулятора / ридера MFM дисков.
СУПЕР ВАЖНО:
Как только вы установите плату BBB/BBG на плату эмулятора, питания по USB будет недостаточно для двух плат !
По этому подключите к разъему питания платы эмулятора блок питания (например ATX вполне подойдет). Сначала включайте его, и лишь затем подключайте
кабель USB от платы BBB/BBG к вашему компьютеру.
...продолжение следует...
Kinder5912
07.11.2018, 19:23
Сегодня у < Denkixot > заработал первый эмулятор диска MFM.
Эмулировался ST225 на реальной машине Э-85.
Подробности будут позже, в этой теме.
Возможно < Denkixot > сам напишут тут пару слов о своем опыте :-).
Но в общем, плата работает!
Denkixot
09.11.2018, 19:25
Сегодня у < Denkixot > заработал первый эмулятор диска MFM.
Эмулировался ST225 на реальной машине Э-85.
Подробности будут позже, в этой теме.
Возможно < Denkixot > сам напишет тут пару слов о своем опыте :-).
Но в общем, плата работает!
Всем добра. В пару слов здесь не уложиться)) Ну, начнём неспешно.
Сразу оговорюсь, что техническую информацию (последовательность ввода команд, расстановка перемычек и т.п.) вам предоставит здесь же ТС.
Мне MFM эмулятор нужен был только с единственной целью- замена ST-225/МС 5405 в ПВК Электроника 0585. И он с этим прекрасно справляется!
То, что Э85 в обращении машина не простая, думается, в курсе уже все. Однако, с MFM эмулятором она подружилась практически сразу.
Далее опишу как процесс "сдружения" происходил.
MFM эмулятор был запитан от отдельного БП AT обычным молексом. Общии линии (земля) были соединены с БП Э85. К эмулятору USB кабелем был подключен ноутбук.
Небольшие неприятности начались на старте. Выяснилось, что драйверам Win XP SP2 категорически не нравится и пришлось на ноут накатывать Win 7 Ul-t. Тут я сразу понял, что день у меня пройдёт "интересно", за час другой управиться хотелки были развеяны. А с учётом полного отсутствия представления о Linux.... Ну да ладно)).
Старт БП АТ...
Старт Э85...
Машина пишет ошибку, даже не пытается установить ОС ПРОС- "В вашей системе не хватает оборудования для успешной установки ОС"
Далее в терминальной программе на ноутбуке конфигурируем MFM эмулятор, задаём параметры желаемого диска. Достаточно ввести только число цилиндров[615] и головок[4].
Перезагружаем Э85 но оставляем включенной плату эмулятора. Машина так же рисует ошибку, но уже другую и начинает видеть винчестер.
Устанавливаем ОС ПРОС, Э85 выключаем, эмулятор перезагружаем и немного доконфигурируем.
Запитываем эмулятор от самой Э85.
Вуаля! Можно пользоваться.
Эмулятор ведёт себя как обычный винчестер, уже без всяких ноутбуков можно переустанавливать ОС и т.п.
При попытке эмуляции винчестера на 64Мб [1024 цилиндров, до 8 поверхностей], на стадии низкоуровнего форматирования при установке ОС ПРОС, Э85 упала в программый сбой. Возможно моя машина этому причиной, возможно неподдерживание такой ёмкости операционной системой... Будем экспериментировать.
Увеличения скорости работы: нет [либо минимальное].
Компактность. В корпусе Э85 улучшается циркуляция воздуха за счёт освобождения пространства по сравнению с обычным винчестером.
Ещё один шаг по нелёгкому пути в войне с децибелами. (Смазывание дисководов/замена HDD на MFM эмулятор/ замена вентилятора БП).
Надёжность.
Гибкость (можно понаделать файлов образов ОЧЕНЬ много с любыми операционными системами и только выбирать в терминальной программе нужный).
Сплошные плюсы! Минус только один- цена.
Большое спасибо господину Киндер за отличный девайс, работу, тех. поддержку! Считаю данный девайс вторым фундаментальным изобретением, улучшающим жизнь пользователей Электроники 85.
Kinder5912
10.11.2018, 16:46
Сегодня мы поговорим о настройке Эмулятора для работы в качестве MFM-диска.
Предполагается, что вы успешно проделали всё то, что было написано мной раньше, у вас уже есть собранная плата самого Эмулятора и несколько часов времени - потому как это не очень быстрый процесс :-).
Вот Denkixot уже прочувствовал на себе :-))). Еще вам потребуется любой компьютерный БП (с молексом), ноутбук (или отдельный комп) с Win7 или выше. Пока вы всё это готовите, я напишу что и как делать.
1. Подключаем Эмулятор на место диска, который будем эмулировать. Подключаем к нему шлейфы контроллера. Проверяем перемычки на плате эмулятора. МЫ ЭМУЛИРУЕМ СЕЙЧАС ТОЛЬКО ОДИН ДИСК.
/но устройство позволяет эмулировать одновременно 2 диска/
ОБЩИЙ ПРОВОД ВНЕШНЕГО БЛОКА ПИТАНИЯ И ОБЩИЙ ПРОВОД БЛОКА ПИТАНИЯ ВАШЕЙ МАШИНЫ (для которой эмулируется диск) ДОЛЖНЫ БЫТЬ СОЕДИНЕНЫ МЕЖДУ СОБОЙ!
Вот что написано по этому поводу у разработчика девайса:
- To disk emulation attach cables from controller to J1 and J2.
- Для эмуляции диска подключите кабели от контроллера к разъемам J1 и J2.
- Set the P7 jumper to the drive number you wish to emulate. Leave P8 open.
- Установите перемычку P7 на номер диска, который вы хотите эмулировать. Оставьте перемычку P8 не установленной.
Я рекомендую Р7 поставить в положение "1" - эмуляция первого диска, так как если у вас до этого в машине был только один жесткий диск, то он и был номером "1".
RN1 should be installed unless you are trying to use it with another drive that is terminated at the end of the cable.
RN1 следует установить, если вы не пытаетесь использовать эмулятор одновременно с другим приводом, на котором уже установлен этот терминатор, который заканчивается в конце кабеля.
Make sure RN1 is installed with the dot on the resistor at the pin 1 of the socket marked with dot and square pad.
Убедитесь, что RN1 установлен с точкой на резисторе на контакте 1 разъема, обозначенного точкой и квадратной контактной площадкой.
Для тех кто покупал готовые эмуляторы у меня - я уже правильно установил эту резисторную сборку ;-) так что если вы ее не вытаскивали этот пункт нужно пропустить
Эта резисторная сборка - обычный терминатор, похожий на те, что стоят на флопах. Когда в системе несколько устройств, подключенных параллельно на один и тот же кабель,
терминатор должен стоять только у одного, самого последнего (по шлейфу) устройства - у всех устройств до него терминатор должен быть снят.
Power up board and run the following. Note that setup_emu only needs to be run once per boot.
Включите питание и выполните следующее. Обратите внимание, что setup_emu нужно запускать только один раз при загрузке.
Включаем питание у вашей машины и питание внешнего БП. Сначала питание БП, затем питание вашей машины. (Но можно и наоборот :-) ).
If you didn't read a disk to emulate you will need to start with an unformatted drive:
Если у вас нет файла-образа диска, который вы считали раньше для эмуляции, вам нужно начать с неформатированного диска:
Терминалом подключаемся к нашей плате. Заходим в Debian. Напомню, что Login: root, пароля нет (просто жмете Enter).
(как подключаться к плате эмулятора "терминалом", какой для этого нужен софт и т.д. и т.п. написано несколькими постами выше)
Теперь в терминале вводим команды (каждая строка это команда - в конце строки жмем Enter):
cd ~/emu
./setup_emu
./mfm_emu --drive 1 --file ../emu_file --initialize --cylinders # --heads #
Replace # with the proper numbers for the drive you wish to emulate (you don't need number of sectors).
Замените # соответствующими цифрами для вашего диска, который вы хотите эмулировать (вам не нужно знать или указывать количество секторов).
ПРИМЕР:
./mfm_emu --drive 1 --file ../emu_disk_c --initialize --cylinders 615 --heads 4
"emu_disk_c" - имя файла-образа диска, который будет создан. Старайтесь давать какие-то осмысленные названия образам своих дисков, так как их можно будет создать МНОГО.
Перезагрузите ваш компьютер (внутри которого установлен эмулятор) НЕ ВЫКЛЮЧАЯ питания платы-эмулятора!
Then run the low level format command on the computer attached to the drive emulator. The mfm emulator should print messages like shown in the documentation and the format should complete without errors.
Затем запустите команду формата низкого уровня на компьютере, подключенном к эмулятору накопителя. Эмулятор mfm должен печатать сообщения, как показано в документации, и форматирование должно заканчиваться без ошибок.
Ну то есть нужно будет как-то загрузиться и запустить форматирование диска (штатными средствами для вашей машины).
Для продвинутых пользователей вот ссылка на параметры программы-эмулятора (mfm_emu): http://www.pdp8online.com/mfm/code/emu/mfm_emu_doc.html
Форматируете диск, перезагружате свою машину, перезагружаете плату эмулятора (выключаете у нее питание, ждете пока полностью погаснут синие светодиоды, затем снова подаете на нее питание).
Но это еще не всё )). Теперь нам нужно сделать так, чтобы эмуляция диска автозапускалась сама при подаче питания на плату эмулятора и старте системы.
Для этого нам нужно отредактировать конфигурационный файл. Для этого:
Включаем внешний БП, входим на плату эмулятора через терминал. Далее вводим:
sudo nano /etc/mfm_emu.conf
Попадаем в редактор. В нем ищем строку EmuFN1=...
и вместо emufile _a пишем там emu_disk_c (если вы именно так назвали ваш создаваемый диск, ну или указываете то имя, которое файлу-образу дали вы)
Это файл образ для первого диска. Соответственно строка EmuFN2= - это имя файла-образа для второго диска. У нас его нет по этому строка пустая.
Как закончили редактировать нажимаем Ctrl+X и записываем изменения.
Последнее что нужно сделать - активировать автозапуск. Для этого вводим:
systemctl enable mfm_emu.service
// чтобы выключить автозапуск - команда: systemctl disable mfm_emu.service
Выключаем везде питание.
Разбираем всю нашу конструкцию - снимаем внешний БП, запитываем эмулятор от питания машины, в которой он будет стоять.
Всё! Поздравляю, вы успешно справились с эмуляцией вашего первого диска :-)
Если захотите создавать еще диски - сервис сначала нужно отключить !!! После этого перегрузить BBB и только после этого можно создавать новый образ нового диска.
Некоторые команды Linux, которые могут вам пригодиться:
ls - вывод информации о файлах / директориях
ls --help - справка по ключам команды ls
ls -1 -s - вывести информацию в формате: один файл/директория на одной строке
cd - сменить директорию. cd .. - подняться на 1 уровень вверх
mv file_name1 file_name2 - перенести / переименовать файл
... о том, как настроить READER MFM поговорим позже (как только я найду / или куплю / кабели MFM ;-) (если у кого-то есть комплект "на продажу" - напишите плиз)
Denkixot
10.11.2018, 19:41
Пока нет времени спокойно поиграться в конфигурировании, спрошу мнения господина Киндер.
Каждый раз подключать ноутбук довольно хлопотно. Как вы думаете, прокатит ли такой фокус:
Есть 2 файла образа. Обзовём их PROS и RT-11.
В конфигурационном файле прописываем
EmuFN1= PROS
EmuFN2=RT-11
Перемычками на эмуляторе P7 (первый диск) в положение 1, P8 (второй диск) свободна. Машина грузит ПРОС.
Перемычками на эмуляторе P7 (первый диск) свободна, P8 (второй диск) в положение 1. Машина загрузит RT-11?
Kinder5912
10.11.2018, 19:57
Можно попробовать. Думаю, что прокатит :-) Стоит попробовать и написать! Испортить вы ничего не испортите, а опыт и новые знания мы все получим :-)
Я на барахолке публиковал картинки нескольких вариантов крепежа для девайса, распечатанных на 3d принтере. В одном из них предусмотрено (как я понимаю)
отверстие для подключения usb-кабеля к плате bbb/bbg эмулятора (ну чтобы не разбирать машину каждый раз, когда захочется поконфигурить :-) )
- - - Добавлено - - -
Вот тут был ответ про максимальную емкость диска для ОС RT-11: https://zx-pk.ru/threads/29092-replika-pk-11-16.html?p=985918&viewfull=1#post985918
Denkixot
10.11.2018, 20:26
Ок
/32 Mb это хорошо. Можно и для ПРОСа попробовать. Ещё бы знать сколько это голов и цилиндров)) Господин Патрон на форуме давал таблицу с поддерживаемыми Э85 характеристиками винчестеров (другие она принципиально не принимает), да найти этот пост не могу...
В иных машинах строгих ограничений по характеристикам MFM HDD возможно нет.
Denkixot
12.11.2018, 12:24
Не прокатило =(
В конфигурационном файле прописано:
EmuFN1= PROS01
EmuFN2=PROS02
Перемычками на эмуляторе: P7 (первый диск) свободна, P8 (второй диск) в положение 1. Машина ошибку не выдаёт, появляется надпись "ЭЛЕКТРОНИКА", начальный загрузчик схватывается, даже в левом верхнем углу начинает моргать курсор и всё. Загрузка останавливается.
Были проделаны разные комбинации с перемычками P7 и P8- эффект тот же. Из интересного: если перемычки в одинаковом положении 1 и на P7 и на P8, грузится первый образ EmuFN1= PROS01.
Попытка уже на Э85 без терминала поставить ПРОС (на второй незагружаемый образ)- приводит с "вечному" форматированию.
Вывод: переконфигурация образов только через терминальную программу. (Акткуально строго для ОС ПРОС 2.03 и Электроники 85).
/
Другой эксперимент. Был создан образ HDD с характеристиками не ST-225 [4 головы, 615 цилиндров], а более ёмкий [4 головы, 1024 цилиндра].
ПРОС 2.03 стала без ошибок. Но ёмкости ОС не прибавилось (всё те же 20Мб- 40 000 блоков).
И этого можно сделать вывод, что ПРОС 2.03 более 20Мб диски не поддерживает.
Kinder5912
13.11.2018, 23:09
Почитал я еще раз документацию. Повнимательнее. Нашел вот что:
У программы ./mfm_emu есть ключи запуска. Один из которых drive. Так вот, возможно стоит попробовать при начальном создании (ключ запуска --initialize) сразу указывать 2 диска.
Вот что автор пишет по этому поводу:
--drive -d #[,#]
Drive number to emulate. For revision B boards specify 0 or 1 or 1,2. Use 0 for drive to always be selected (radial select). 1 and 2 select the first and second jumper block to use for drive select. One or two drive numbers may be specified to emulate one or two drives. Only one may be specified if drive number is 0. For revision A boards specify the drive number to emulate 1-4.
Номер диска для эмуляции. Для плат версии В укажите 0 или 1 или 1,2. Используйте 0 для постоянного выбора диска (радиальный выбор). 1 и 2 выбирают первый и второй блок перемычек для выбора диска. Один или два номера дисков могут быть указаны для эмуляции одного или двух дисков. Только один может быть указан, если номер диска равен 0.
Kinder5912
18.11.2018, 13:53
Аппаратные новости :-)
Как выяснилось (экспериментальным, блин путем, :-( ) предохранитель, указанный в BOM на 3А (Littelfuse / 0251003.MXL), нифига не является самовосстанавливающимся ;-) - он просто перегорает внутри и всё.
По сему, хорошо бы иметь их в запасе (ну или рискнуть и поставить самовосстанавливающийся). В Москве их нет - поставка под заказ 3-4 недели...
Denkixot
18.11.2018, 17:50
"экспериментальным, блин путем, :-("
Это значит перегорел? Из-за чего?
Kinder5912
18.11.2018, 18:08
"экспериментальным, блин путем, :-("
Это значит перегорел? Из-за чего?
По причине моей глупости, разумеется.
Не по злому умыслу, но замкнул я случайно +5В на землю (+5В цепь питания микросхем, уже после DC/DC конвертера). Предохранитель свое дело сделал - он сгорел.
DC/DC конвертер не поврежден, а вот предохранителю капец... У меня была надежда на то, что он "самовосстанавливающийся", но нет - он одноразовый.
Заказал десяток новых - через 3 недели будут у меня.
Так что, если кто-то тоже сожжет - пишите, поделюсь :-)
Интересное сообщение.
Waiting, seek time 3.9 ms max 3.9
IARM is waiting for PRU. The values are the last and maximum time from PRU requesting the next cylinder to the data being returned. If other than first seek time printed is zero you are using a buggy version of am335x_pru_package and data is likely to be corrupted.
Ожидание, время поиска 3,9 мс максимум 3,9
IARM ждет PRU. Значения представляют собой последнее и максимальное время от PRU, запрашивающего следующий цилиндр, к возвращаемым данным. Если значение, отличное от первого времени поиска, равно нулю, вы используете багги-версию am335x_pru_package, и данные могут быть повреждены.
Kinder5912
25.11.2018, 23:03
А это вы к чему ? :-)
Можете поподробнее написать что вы делаете ? Что привело к такому сообщению ?
Я только изучаю этот девайс и, разумеется, любая информация о его работе мне интересна.
Я сегодня считал свой ST225. Подробности тут: https://zx-pk.ru/threads/29092-replika-pk-11-16.html?p=988464&viewfull=1#post988464
А это вы к чему ? :-)
Это я к тому что похоже среди BBG есть бажные чипы. Как их определить фиг его знает, пока не купишь.
Можете поподробнее написать что вы делаете ?
Подключил эмулятор к ДВК и запустил программу ТЕSТDW. Программа выдаёт ошибки и тесты не проходят.
Что привело к такому сообщению ?
Это описание сообщения. Само сообщение выглядит примерно (на нормальном чипе) так :
Waiting, seek time 3.9 ms max 3.9
Я сегодня считал свой ST225.
А дальше что? Где дамп? Можно ли дамп присоединить к эмулятору компьютера? Можно ли его использовать образ (дамп) винта на эмуляторе МФМ?
Какие настройки применяются в эмуляторе МФМ при переводе его в ридер?
Kinder5912
26.11.2018, 00:20
Где дамп?
Вам нужен дам МОЕГО винта ? Если нужен - пишите - вышлю :-)
Можно ли дамп присоединить к эмулятору компьютера?
Без дополнительной программной обработки, полагаю, что нет. Вы получаете в текстовом или RAW файле просто поток байтов (как это выглядит, вы можете видеть
на скриншоте, который я разместил в теме НЕОНа). Правда, у разработчика MFM эмулятора есть кой-какой софт: http://www.pdp8online.com/mfm/code/mfm/ext2emu_doc.html - но что это такое я пока не знаю.
Фактически, есть только данные (байты), и информация о том откуда они были считаны (головка, трек, сектор, номер байта) - там и полезные данные и служебная информация - всё вместе.
Полагаю, что нужно будет писать какой-то софт, который будет разбирать эту информацию и компилировать во что-то другое.
Можно ли его использовать образ (дамп) винта на эмуляторе МФМ?
Да. У меня теперь есть образ моего диска ST225. В любой момент, используя эмулятор, я могу эмулировать точную копию моего винта.
Какие настройки применяются в эмуляторе МФМ при переводе его в ридер?
Это очень просто:
cd ~/mfm
./setup_mfm_read
./mfm_read --analyze --emulation_file ../emu_file --extracted_data_file filename
or
./mfm_read --emulation_file ../emu_file --cylinders # --heads # --drive #
emu_file = это имя файла-образа диска. Именно его нужно указывать как образ диска при эмуляции (когда эмулятор настроен на эмуляцию диска, ему нужно указывать это имя файла-образа)
filename = это имя файла - RAW данных со считанного ридером реального диска
Программа ext2emu создает файл-образ диска из файла с RAW данными. Вот как-то так.
Информация по всем ключам программы mfm_read дана вот тут: http://www.pdp8online.com/mfm/code/mfm/mfm_read_util_doc.html
Да, еще одно - программа setup_mfm_read запускается один раз. Она переводит девайс в режим ридера. Чтобы вернуть девайс в режим эмулятора нужно запустить setup_emu тоже только один раз.
cd ~/emu
./setup_emu
Это работает как триггер - два состояния.
Ну и если включали сервис для автозапуска эмулятора в режиме эмуляции
systemctl enable mfm_emu.service
то его нужно выключить командой
systemctl disable mfm_emu.service
иначе после перезагрузки девайс работать правильно не будет. Он был сконфигурирован в режим ридера, а от него требуют автозапуститься и работать в режиме эмулятора...
Вам нужен дам МОЕГО винта ? Если нужен - пишите - вышлю :-)
Мне не именно Вашего, а как образец. Типа что получилось. В теории если этот дамп записать на другой винт то должен получится клон.
там и полезные данные и служебная информация - всё вместе.
Если настроить эмулятор на захват сектора, то можно получить дамп данных.
Пример: --header_crc 0x2605fb9c,0x104c981,32,0 --data_crc 0xd4d7ca20,0x104c981,32,0 --format OMTI_5510”
Данный пример касается формата контроллера OMTI_5510
Kinder5912
26.11.2018, 01:07
Мне не именно Вашего, а как образец. Типа что получилось. В теории если этот дамп записать на другой винт то должен получится клон.
Хорошо, завтра скачаю с BBG оба файла и выложу их здесь.
Да, если вы возьмете файл, который у меня называется st225, и запустите девайс в режиме эмуляции, указывая в качестве файла-образа диска этот мой файл, то вы получите точный клон моего диска у себя.
Хорошо, завтра скачаю с BBG оба файла и выложу их здесь.
Какие оба? Один дамп, второй лог считки?
Да, если вы возьмете файл, который у меня называется st225, и запустите девайс в режиме эмуляции, указывая в качестве файла-образа диска этот мой файл, то вы получите точный клон моего диска у себя.
А на каком компе винт работал? Какой контроллер в нем был?
Kinder5912
26.11.2018, 01:25
Какие оба? Один дамп, второй лог считки?
Первый - это файл образ-диска
Второй - это то, что автор девайса называет RAW-Data
Чтобы получить лог нужно перенаправлять вывод сообщений с консоли в файл (в линуксе это как-то делается, на память не помню - нужно погуглить)
А на каком компе винт работал? Какой контроллер в нем был?
А вот этого не знаю. Я купил этот винт по случаю, примерно 3 месяца назад. Я даже не знаю, есть ли на нем что-то или он был отформатирован перед продажей...
...и продавца уже не найти :( //я сегодня был приятно удивлен, когда эмулятор мне написал, что бед блоков на нем нет ни одного...//
Что привело к такому сообщению ?
Вот примерно такие сообщение будут сыпаться при баговом чипе.
Waiting, seek time 0.0 ms max 92.5 min free buffers 63
Denkixot
26.11.2018, 08:27
"Хорошо, завтра скачаю с BBG оба файла и выложу их здесь."
Можно поподробнее, как с BBB переносить файлы на PC(ноут)?
Чтобы получить лог нужно перенаправлять вывод сообщений с консоли в файл (в линуксе это как-то делается, на память не помню - нужно погуглить)
В смысле не помните? ./prog >log1.txt 2>log2.txt
Можно поподробнее, как с BBB переносить файлы на PC(ноут)?
На ноуте Виндоус? Ставите программу WinSCP, там выбираете протокол SCP, вводите IP адрес платы, логин и пароль, ну а дальше должно быть всё понятно...
Kinder5912
26.11.2018, 11:20
На ноуте Виндоус? Ставите программу WinSCP, там выбираете протокол SCP, вводите IP адрес платы, логин и пароль, ну а дальше должно быть всё понятно...
Качать тут: https://winscp.net/download/WinSCP-5.13.5-Setup.exe
// для Denkixot = логин - root, пароля нет //
- - - Добавлено - - -
Итак, файл st225 - образ моего тестового диска.
Тут: http://portal.kinderland.ru/published/DD/2.0/file_link.php?sl=1114cb90a9cf5532d82d54b1bddfd725&DB_KEY=S0lOREVSTEFQT1JUQUw%3D
Дополнительный (второй) файл, который был создан эмулятором (ридером), при указании ему опции --analyze, st225_ext
Тут: http://portal.kinderland.ru/published/DD/2.0/file_link.php?sl=a5c62ca7d856d73546c21e5f7a327576&DB_KEY=S0lOREVSTEFQT1JUQUw%3D
Первый примерно 49Мб, второй 20Мб. Формат файлов мне не известен.
Лог чтения read_log.rar лежит тут (архив RAR, так как сам файл очень большой ~119 Mb) - http://portal.kinderland.ru/published/DD/2.0/file_link.php?sl=1637a788974053268bdd47814279b865&DB_KEY=S0lOREVSTEFQT1JUQUw%3D
Это самый интересный файл, разумеется. Лог ошибок оказался пустым - нет смысла его выкладывать.
В этом логе есть такая строка:
Command line to read disk:
--sectors 17,1 --heads 4 --cylinders 615 --header_crc 0xffff,0x1021,16,0 --data_crc 0xffffffff,0x140a0445,32,5 --format WD_1006 --sector_length 512 --retries 50,4 --drive 1
но это именно для моего диска, как я понимаю, по результатам его анализа. Для ваших дисков может быть будет что-то иное.
Команда была такая:
http://portal.kinderland.ru/published/publicdata/KINDERLAPORTAL/attachments/pd/34/read3_89e69.512.jpg
Дополнительный (второй) файл, который был создан эмулятором (ридером), при указании ему опции --analyze, st225_ext
Тут: http://portal.kinderland.ru/published/DD/2.0/file_link.php?sl=a5c62ca7d856d73546c21e5f7a327576&DB_KEY=S0lOREVSTEFQT1JUQUw%3D
Забавно, но там одни нули:
$hexdump st225ext | head
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
146b800
Первый примерно 49Мб, второй 20Мб. Формат файлов мне не известен.
Да, нужно видимо смотреть исходники...
Лог чтения read_log.rar лежит тут (архив RAR, так как сам файл очень большой ~119 Mb) - http://portal.kinderland.ru/published/DD/2.0/file_link.php?sl=1637a788974053268bdd47814279b865&DB_KEY=S0lOREVSTEFQT1JUQUw%3D
Это самый интересный файл, разумеется. Лог ошибок оказался пустым - нет смысла его выкладывать.
Лучше использовать 7z, тогда даже с настройками по умолчанию 119М сжались в 523К, а не в 800К.
В этом логе есть такая строка:
Command line to read disk:
--sectors 17,1 --heads 4 --cylinders 615 --header_crc 0xffff,0x1021,16,0 --data_crc 0xffffffff,0x140a0445,32,5 --format WD_1006 --sector_length 512 --retries 50,4 --drive 1
но это именно для моего диска, как я понимаю, по результатам его анализа. Для ваших дисков может быть будет что-то иное.
Выглядит так, что по некоторой базе производится подбор параметров, чтобы распознать использованный для диска контроллер. Возможно неон-овских данных там просто нет и софт этот не распознает диск...
Дополнительный (второй) файл, который был создан эмулятором (ридером), при указании ему опции --analyze, st225_ext
Тут: http://portal.kinderland.ru/publishe...TEFQT1JUQUw%3D
Второй файл по размеру соответствует диску, и содержит одни 0x00. Это дамп HDD в чистом виде (а'ля .dsk)
То есть у Вас был совсем непонятный диск (даже не форматированный какой-либо ОС), то есть кто-то ему сделал LLF или он совсем новый, ни разу ни надёванный.
Я в своё время так и не разобрался в софте этого анализатора, поэтому делал свой ридер.
Сразу скажу что анализатор не ошибся (про нули), так как по логам он скушал и CRC заголовков, сами заголовкиm и CRC самих секторов. Так что вероятность что он ошибся = 0.
- - - Добавлено - - -
Вот примерно такие сообщение будут сыпаться при баговом чипе.
Waiting, seek time 0.0 ms max 92.5 min free buffers 63
Нет. На сайте автора эмулятора написано "If other than first seek time printed is zero you are using a buggy version of am335x_pru_package and data is likely to be corrupted."
Если я правильно распарсил это витиеватое выражение то Ж в том случае если _не_ первое значение равно 0.
И то в случае Ж речь идёт о битой версии "am335x_pru_package", то есть какой-то библиотеки. А никак не чипа. Не обижайте уважаемую TI ;-)
Kinder5912
26.11.2018, 18:40
То есть у Вас был совсем непонятный диск (даже не форматированный какой-либо ОС), то есть кто-то ему сделал LLF или он совсем новый, ни разу ни надёванный.
Человек, который мне его продавал, сказал, что диск "очень хороший", не использовался и лежал. Я тогда подумал, что он поработал какое-то время, был снят, и после
этого "лежал", но поскольку на нем нет ни одного бед блока, сам диск чистый, есть вероятность что он лежал "с рождения" :-), но точно мы это уже не установим.
Возможно неон-овских данных там просто нет и софт этот не распознает диск...
Но RAW то он запишет. Формат для Неона по идеи должен подойти от WD1010.
то есть какой-то библиотеки
Точно! Вот что значит не Линуксойд (я про себя).
Спасибо!
Не обижайте уважаемую TI ;-)
К TI никаких претензий нет, было подозрение на левый китайский чип.
Вот что значит не Линуксойд (я про себя).
Типа я линуксоид??!?!?! Опять обозвали...... ;-)
Типа я линуксоид??!?!?! Опять обозвали...... ;-)
Я об этом не говорил. В любом случае не хотел Вас обидеть.
>В любом случае не хотел Вас обидеть.
Я там смайлик поставил. Это была шутка.
И кстати, если про HDD от Неона речь. Разве его Рита не дампила?
И кстати, если про HDD от Неона речь. Разве его Рита не дампила?
Нет.
- - - Добавлено - - -
На мой взгляд, для правильной считки Неоновского винта нужно подобрать формат разметки.
perestoronin
26.11.2018, 23:35
Типа я линуксоид??!?!?! Опять обозвали...... ;-)
Вы только что оскорбили всех линуксоидов!? А заодно и счастливых обладателей айфонов макбуков и андроидов!?
PS. За флуд вне тем флейма я могу "обидеть" всех без разрабора :)
нет ни одного бед блока
Удивительное рядом. Я уже думал что до 2018 не дожил ни один MFM диск без бедов.
точно мы это уже не установим.
На старых MFM дисках не хранится никакой "smart" диагностики ?
По поводу am335x_pru_package.
The Makefile assumes am335x_pru_package-master is in the parent directory
of the source. This provides libprussdrv.a for accessing the PRUs, the
PRU assembler, and necessary include files. The version I used to build it
is at https://github.com/beagleboard/am335x_pru_package. The Debian
distribution includes a version of this package with bugs so for now you
still need to download the current version.
Makefile предполагает, что am335x_pru_package-master находится в родительском каталоге
источника. Это обеспечивает libprussdrv.a для доступа к PRU,
PRU, а также необходимые файлы. Версия, которую я использовал для ее создания
находится на странице https://github.com/beagleboard/am335x_pru_package. Debian
дистрибутив включает версию этого пакета с ошибками, так что теперь вы
все равно необходимо загрузить текущую версию.
Там же готовые бинарники есть "в комплекте" с этим эмулятором. Зачем перекомпилировать? Вы что-то в сорцах меняли?
>Я уже думал что до 2018 не дожил ни один MFM диск без бедов.
Думали неправильно. Их очень даже много.
>На старых MFM дисках не хранится никакой "smart" диагностики ?
Это разве не оффтоп?
Там же готовые бинарники есть "в комплекте" с этим эмулятором. Зачем перекомпилировать? Вы что-то в сорцах меняли?
В том и дело что использовал готовые бинарники, но что то пошло не так.
На старых MFM дисках не хранится никакой "smart" диагностики ?
Вся "smart" диагностика печаталась на бумажке и приклеивалась на поверхность корпуса MFM HDD.
но что то пошло не так.
Так я уже спрашивал: почему решили что не так? В приведенном Вами сообщении кроме первого нулевых значений нет. А по приведённой мной цитате это нормально и грешить на библиотеку пока смысла нет.
Но RAW то он запишет. Формат для Неона по идеи должен подойти от WD1010.
Только там именно такого контроллера нет:
mfm_emu_powerfail_v1.34/mfm/inc/mfm_decoder.h
...
// Track format
// Update mfm_controller_info list below if enum changed.
// ORDER IN THE TWO LISTS MUST MATCH
// TODO, replace this with pointer to CONTROLLER entry
enum {CONTROLLER_NONE,
CONTROLLER_NEWBURYDATA,
CONTROLLER_ALTOS,
CONTROLLER_WD_1006,.
CONTROLLER_TANDY_8MEG,.
CONTROLLER_WD_3B1,
CONTROLLER_MOTOROLA_VME10,.
CONTROLLER_DTC,.
CONTROLLER_DTC_256B,.
CONTROLLER_DTC_520_256B,.
CONTROLLER_DTC_520_512B,.
CONTROLLER_MACBOTTOM,.
CONTROLLER_ELEKTRONIKA_85,
CONTROLLER_ALTOS_586,
CONTROLLER_ATT_3B2,
CONTROLLER_CONVERGENT_AWS,
CONTROLLER_CONVERGENT_AWS_SA1000,
CONTROLLER_WANG_2275,
CONTROLLER_WANG_2275_B,
CONTROLLER_IBM_5288,
CONTROLLER_EDAX_PV9900,
CONTROLLER_OMTI_5510,.
CONTROLLER_XEROX_6085,.
CONTROLLER_TELENEX_AUTOSCOPE,.
CONTROLLER_MORROW_MD11,
CONTROLLER_UNKNOWN1,
CONTROLLER_DEC_RQDX3,.
CONTROLLER_IBM_3174,
CONTROLLER_SEAGATE_ST11M,
CONTROLLER_ISBC_215,
CONTROLLER_XEROX_8010,
CONTROLLER_ROHM_PBX,
CONTROLLER_ADAPTEC,.
CONTROLLER_MVME320,
CONTROLLER_SYMBOLICS_3620, CONTROLLER_SYMBOLICS_3640,.
CONTROLLER_MIGHTYFRAME,.
CONTROLLER_DG_MV2000,.
CONTROLLER_SOLOSYSTEMS,.
CONTROLLER_DILOG_DQ614,
CONTROLLER_DILOG_DQ604,
CONTROLLER_XEBEC_104786,.
CONTROLLER_XEBEC_S1420,.
CONTROLLER_EC1841,.
CONTROLLER_CORVUS_H, CONTROLLER_NORTHSTAR_ADVANTAGE,
CONTROLLER_CROMEMCO,
CONTROLLER_VECTOR4,
CONTROLLER_VECTOR4_ST506
} controller;
Причем не все контроллеры полноценно поддерживаются: собрал что мог без TI-шной железки (только mfm_util и софт линк ext2emu) и наверняка делаю что-то не так, но вот получаю такое сообщение:
./ext2emu --heads 4 --cylinders 615 --extracted_data_file st225ext --format WD_1006 --emulation_file st225.emulation
Not yet able to process format WD_1006
Там так:
if (mfm_controller_info[drive_params.controller].track_layout == NULL) {
msg(MSG_FATAL, "Not yet able to process format %s\n",
mfm_controller_info[drive_params.controller].name);
exit(1);
}
А не нулевой указатель там у "WD_3B1" "DTC" "DTC_256B" "DTC_520_256B" "DTC_520_512B" "OMTI_5510" "Seagate_ST11M" "MVME320" "Symbolics_3640" "NorthStar_Advantage" "Cromemco"... Ну указываем другой формат:
./ext2emu --heads 4 --cylinders 615 --extracted_data_file st225ext --format WD_3B1 --emulation_file st225.emulation
At cyl 0
At cyl 1
...
At cyl 610
На выходе получился практически такого же размера файл st225.emulation как и st225 (51286301 против 51286213)
В общем нужно или искать подходящий из имеющихся контроллеров, либо дописывать описание неоновского контроллера.
Что касается предоставленного образа st225, то там чаще всего выбирался контроллер Elektronika_85 (но это не помогает - bad crc сплошные):
grep "Trying controller " read_log.txt | cut -c-35 | sort | uniq -c | sort -n
2 Trying controller NorthStar_Advanta
4 Trying controller WANG_2275 Polynom
105 Trying controller Adaptec Polynomia
105 Trying controller Cromemco Polynomi
105 Trying controller DEC_RQDX3 Polynom
105 Trying controller DILOG_DQ614 Polyn
105 Trying controller EC1841 Polynomial
105 Trying controller Intel_iSBC_215 Po
105 Trying controller Morrow_MD11 Polyn
105 Trying controller MVME320 Polynomia
105 Trying controller OMTI_5510 Polynom
105 Trying controller Seagate_ST11M Pol
105 Trying controller SOLOsystems Polyn
105 Trying controller Symbolics_3620 Po
105 Trying controller Telenex_Autoscope
105 Trying controller Unknown1 Polynomi
105 Trying controller Xebec_104786 Poly
105 Trying controller Xebec_S1420 Polyn
105 Trying controller Xerox_6085 Polyno
188 Trying controller Altos_586 Polynom
188 Trying controller ATT_3B2 Polynomia
188 Trying controller CONVERGENT_AWS Po
188 Trying controller Corvus_H Polynomi
188 Trying controller EDAX_PV9900 Polyn
188 Trying controller Elektronika_85 Po
188 Trying controller MacBottom Polynom
188 Trying controller Motorola_VME10 Po
188 Trying controller NewburyData Polyn
188 Trying controller Vector4 Polynomia
188 Trying controller Vector4_ST506 Pol
188 Trying controller WD_1006 Polynomia
474 Trying controller data WD_1006 len
1034 Trying controller data Elektronika_
Вся "smart" диагностика печаталась на бумажке и приклеивалась на поверхность корпуса MFM HDD.
Smartом такую бумажку назвать сложно. Ведь smart обновляет информацию по мере износа винта. А бумажка это выходной контроль с завода. В случае появления нового дефекта, бумажку никто не дополнит.
Так я уже спрашивал: почему решили что не так? В приведенном Вами сообщении кроме первого нулевых значений нет. А по приведённой мной цитате это нормально и грешить на библиотеку пока смысла нет.
Тем не менее нормальной работы эмулятора нет.
Только там именно такого контроллера нет:
Смотрите здесь - http://www.pdp8online.com/mfm/status.shtml
Elektronika_85 (но это не помогает - bad crc сплошные):
Разумеется.
Только там именно такого контроллера нет:
Вы путаете Божий дар с яичницей: WD1006 - плата адаптера HDD производства WD, а WD1010 - микросхема HDC, которая использовалась в очень многих платах.
>там чаще всего выбирался контроллер Elektronika_85
Вообще-то контроллер Э85 собран на аналоге серии WD1100, которую WD потом "собрал" в одном чипе WD1010.
- - - Добавлено - - -
Тем не менее нормальной работы эмулятора нет.
Так я и намекаю что причину отсутствия "нормальной работы" Вы ищете совсем не там.....
А можно попросить сделать обзорную фотку платки эмулятора с одним любым, подключенным в режиме сдампливания, винтом со шлейфами.
p.s. Кстати, у HDD-шек из комплекта Э-85 разъём питания преимущественно не molex, а синенький с очень невнятными ключами, особенно если они обломаны.
Так я и намекаю что причину отсутствия "нормальной работы" Вы ищете совсем не там.....
dk_spb, Вы если намекаете, то намекайте до конца...
...
В поиске результата обновил пакеты, работа эмулятора стала намного лучше. Пропали ошибки в программе TESTDW (не всё). Однако для полного функционала этого не достаточно.
Похоже что программа TESTDW не делает низкоуровнего форматирования.
При обновлении пакетов делал так:
Подключил инет к BBG через сетевой модуль. Далее дал команды:
apt-get update
apt-get upgrade
На вопрос установить пакеты, ответил -Y.
MiX, Я так и не понял чем Вас не устраивает сделанный автором бинарник.
Если у Вас какие-то проблемы даже с авторским бинарником - надо с ними разбираться, а не плодить дополнительные проблемы.
Но это я так, рассуждаю вслух. Как поступать - дело сугубо Ваше.
MiX, Я так и не понял чем Вас не устраивает сделанный автором бинарник.
О каком бинарнике идет речь? Я залил образ на карту SD и всё.
Так в образе разве не было уже скомпилированных файлов? Зачем заново компилировать да еще и с другими библиотеками.
Если автор устройства выложил образ именно с такими библиотеками - наверное он проверял их работоспособность?
Так в образе разве не было уже скомпилированных файлов?
Что касается mfm_emu_powerfail то там нужно компилировать судя по описанию.
Зачем заново компилировать да еще и с другими библиотеками.
Команды update/upgrade обновляют пакеты Debian не трогая авторские программы.
Если автор устройства выложил образ именно с такими библиотеками - наверное он проверял их работоспособность?
Работоспособность на чём? Есть две версии плат эмулятора (rev A , rev B) , и две версии плат BBG (BBG1 и BBG2).
MiX,
Автор пишет "The easiest way to get stuff setup is to copy This prebuilt image BBB-mfm-emu_v1.32.img.xz (last modified Monday, 01-Oct-2018 07:48:08 EDT ) "
Ключевое слово prebuilt.
На вопрос "Зачем заново компилировать да еще и с другими библиотеками" если у Вас с авторской версией не работает Вы упорно не отвечаете. Версия 2-х месячной давности для Вас слишком стара? Тогда ку, тут я ничего посоветовать не могу.
Меня всегда забавляло когда кто-то сначала спрашивает совет, а потом с завидным упорством либо совета в упор не слышит, либо в ответ на совет начинает пересказывать целый спект разнообразных прописных истин (чего стоит одна "Команды update/upgrade обновляют пакеты Debian не трогая авторские программы"). Вам не нужны мои советы? Ок, слова против не услышите. Мой вопрос "Зачем тогда было звонить и спрашивать?", я полагаю, в таком случае восхитительно неуместен.
- - - Добавлено - - -
Mix, я попробую объяснить еще раз.
У Вас есть пара слагаемых: soft и hard. В Вашем случае результат получается не такой как у автора, то есть что-то работает не так.
Изначально Вы взяли софт скомпилированный и проверенный автором. То есть первое слагаемое у Вас было гарантированно правильное. Логично что надо разбираться со вторым слагаемым, то есть с Вашим железом.
Вы же вместо логичного пути начинаете перекомпилировать софтовую часть, получая в результате софт неизвестной работоспособности. Теперь у Вас оба слагаемых требуют проверки.
При этом на наводящие вопросы "зачем Вы это делаете" Вы ответить не хотите или не можете.
Более того, изначально я Вас спросил "что именно у Вас не работает", то есть почему Вы решили что результат работы проверенного автором софта и Вашего железа неправилен. Вы тоже так и не ответили.
Как говорят знатоки, а теперь внимание вопрос: "Что мы с Вами уже не одну страницу обсуждаем"?
Можно так попробовать отсеять контроллеры явно неподходящие для дампа винта от НЕОНа:
1) Поток данных 10 Мбит/сек.
2) размер сектора 512 байт
Смотрим mfm_emu_powerfail_v1.34/mfm/inc/mfm_decoder.h - по этому критерию подходят:
WD_3B1
DTC_520_512B
3) Согласно описанию WD1010-5 там используется CRC16 с полиномом X16+X12+X5+1 (CRC-16-CCITT (https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D 0%BA%D0%B8%D0%B9_%D0%B8%D0%B7%D0%B1%D1%8B%D1%82%D0 %BE%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4#%D0 %9F%D0%BE%D0%BF%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8 B%D0%B5_%D0%B8_%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B 0%D1%80%D1%82%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD% D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D0%B8%D0%BD%D 0%BE%D0%BC%D1%8B)), который может быть представлен таким константами: 0x1021 / 0x8408 / 0x8810.
А значит контроллер DTC_520_512B вычеркиваем, по причине 24-х битного CRC24.
Какое там начальное значение CRC не понятно, может у нас ноль в отличие от WD_3B1?..
Ещё у WD_3B1 расписан формат дорожки - структура trk_3B1, можно сравнить с чипом W1010, там есть рисунок..
Очень похоже, но там 17 секторов на треке (в ПК11/16 - 18) и GAP3=38...
Хм, у того же DTC_520_512B такие 18 секторов на трек - его бы клонировать и взять CRC16 от WD_3B1...
1) Поток данных 10 Мбит/сек.
8-0 Откуда??????
Вы всё перепутали. В mfm_decoder.h "256" - это не размер сектора в байтах, а "10000000" - не скорость потока данных
:v2_dizzy_facepalm:
Пойду-ка я из этой темы пока совсем не разочаровался в людях......
8-0 Откуда??????
Вы всё перепутали. В mfm_decoder.h "256" - это не размер сектора в байтах, а "10000000" - не скорость потока данных
:v2_dizzy_facepalm:
// Format for AT&T 3B1 computer
DEF_EXTERN TRK_L trk_3B1[]
#ifdef DEF_DATA
=
{ { 45, TRK_FILL, 0x4e, NULL },
...
{512, FIELD_SECTOR_DATA, 0x00, OP_SET, 2, NULL},
...
typedef struct {
char *name;
// Sector size needs to be smallest value to prevent missing next header
// for most formats. Some controller formats need the correct value.
int analyze_sector_size;
// Rate of MFM clock & data bit cells
uint32_t clk_rate_hz;
...
} CONTROLLER;
DEF_EXTERN CONTROLLER mfm_controller_info[]
// Keep sorted by header length. MUST MATCH order of controller enum
#ifdef DEF_DATA
= {
...
{"WD_3B1", 512, 10000000, 0,
Пойду-ка я из этой темы пока совсем не разочаровался в людях......
Удачи!
> int analyze_sector_size; // Rate of MFM clock & data bit cells
Rate != size То есть не размер сектора никак.
И в данном случае это не sector_size, а analyze_sector_size. в комментарии (который Вы, кстати, привели) написано чем они отличаются. и только для "Some controller" нужно указывать "the correct value"
Более того
> {"DEC_RQDX3", 256, 10000000, 0,
У этого контроллера размер сектора 512, как и у WD_1006
Про фантазию "Поток данных 10 Мбит/сек" Вы вообще скромно умолчали, потому как:
> uint32_t clk_rate_hz; // Delay from index pulse to we should start capturing data in
У MFMников не бывает 10 Мбит/сек, 7-10 Мбит/сек - это уже RLL, а это явно не случай Неона
>Удачи!
Спасибо!
Не буду мешать Вам блуждать в Ваших фантазиях. ;-)
О боже, понял - я вместо МГц написал Мбит/c и столько боли...
Удачи!
Спасибо!
Не буду мешать Вам блуждать в Ваших фантазиях. ;-)
Давайте, давайте не задерживайтесь! Как-нибудь и без вас справимся, опыт есть.
>я вместо МГц написал Мбит/c и столько боли...
Это как это?!?! "Поток данных 10 Мгц" - такого там тоже нет.
Это у Вас не боль получается, а бред.
>Как-нибудь и без вас справимся
Вот-вот. И результат, как обычно у Вас, будет "как-нибудь"
То delay с rate перепутаете, то size не тот возьмёте....
То delay с rate перепутаете, то size не тот возьмёте....
Эх, вашу бы энергию, да в мирных целях :rolleyes:
mfm_emu_powerfail_v1.34/mfm$ gdb mfm_util
...
(gdb) p mfm_controller_info
$1 = {{name = 0x574c0 "CONTROLLER_NONE", analyze_sector_size = 0, clk_rate_hz = 10000000, ...}, {
name = 0x57500 "WD_3B1", analyze_sector_size = 512, clk_rate_hz = 10000000, start_time_ns = 0, header_start_poly = 4, header_end_poly = 15,
data_start_poly = 4, data_end_poly = 15, start_init = 0, end_init = 19, analyze_type = CINFO_CHS, header_bytes = 5, data_header_bytes = 2,
header_crc_ignore = 0, data_crc_ignore = 0, header_check = CHECK_CRC, data_check = CHECK_CRC, data_trailer_bytes = 0, separate_data = 1,
track_layout = 0x5eb90 <trk_3B1>, write_sector_size = 512, write_num_sectors = 17, write_first_sector_number = 0, track_words = 5209,
metadata_bytes = 0, copy_extra = 0, write_header_crc = {init_value = 65535, poly = 4129, length = 16, ecc_max_span = 0}, write_data_crc = {
init_value = 65535, poly = 4129, length = 16, ecc_max_span = 0}, analyze_search = CONT_MODEL, header_min_delta_bits = 0, data_min_delta_bits = 0,
first_header_min_bits = 0}, ...
Вы, видимо, ни меня, ни сорцы, о которых говорите, не читаете.
Еще раз специально для Вас:
clk_rate_hz = 10000000
> uint32_t clk_rate_hz; // Delay from index pulse to we should start capturing data in
- - - Добавлено - - -
Эх, вашу бы энергию, да в мирных целях
Просто не люблю когда кто-то свои фантазии выдает за истину, да еще и упирается.
И вот еще:
Описание 82062 (https://www.datasheet.live/index.php?title=Special:PdfViewer&url=https%3A%2F%2Fpdf.datasheet.live%2Fa693bb51%2F intel.com%2F82062.pdf)
На первой же странице, выделили жирным шрифтом, тоже специально для Вас: "5 Mbit/s "
- - - Добавлено - - -
>"WD_3B1", analyze_sector_size = 512
Вы написали что сектор 512 только у двух контроллеров, я Вам сообщил что Вы ошибаетесь, так как смотрите не те данные.
Что не так?
Вы, видимо, ни меня, ни сорцы, о которых говорите, не читаете.
Еще раз специально для Вас:
> uint32_t clk_rate_hz; // Delay from index pulse to we should start capturing data in
Ну зачем же натягивать комментарий от следующего поля струкутры к предыдущему?
char *name;
// Sector size needs to be smallest value to prevent missing next header
// for most formats. Some controller formats need the correct value.
int analyze_sector_size;
// Rate of MFM clock & data bit cells
uint32_t clk_rate_hz;
// Delay from index pulse to we should start capturing data in
// nanoseconds. Needed to ensure we start reading with the first
// physical sector
uint32_t start_time_ns;
Про опечатку Mbits/s -> MHz я уже писал, постите великодушно - лёг после 4-х утра.
Да, про комментации мог и ошибится. Был неправ. Тоже вечером было много дел.
Но по существу:
1) про опечатку про 10 Мгц - разобрались. Не уверен что всё-таки там 10 МГц, а не 5, но разбираться сейчас лень.
2) c секторами 512 байт там работают не два указанных Вами контроллера, а гораздо больше. analyze_sector_size - это некий минимум для анализа, чтобы не потерять следующий заголовок.
И значение "256" в этой структуре не означает что размер сектора на диске 256 байт.
Ну как Вы могли не заметить "{"Elektronika_85", 256" - у Э85 явно 512-ти байтный сектор. Как и у "{"EC1841", 256"
При этом, как написано в комментариях, с какой-то непонятной для автора надобности для некоторых контроллеров нужно указывать не минимум, а реальное значение, что и привело к появлению значения "512" для двух контроллеров.
То есть по существу Вы напутали в обоих пунктах: и с опечаткой МГц, и с выбором двух контроллеров, теоретически пригодных под Ваши задачи.
- - - Добавлено - - -
Да, и по поводу опечатки, сейчас посмотрел даташит от WD, там нет разницы Mbit/s и MHz, то есть одинаково употребляется как "5 Mbit/sec data rate" так и "Data rate 5 Mhz".
То есть Вы описались ни с Mbis/s-Mhz, а с 10-5.
Да, действительно, если поискать "512, FIELD_SECTOR_DATA", то можно найти ещё такие структуры: trk_omti_5510 (но там CRC32), trk_northstar (странная какая-то геометрия), trk_seagate_ST11M (CRC32), trk_dtc_pc_512b (CRC24)... Иначе говоря, это всё равно нас не приводит к решению "из коробки" для дампа дисков ПК11/16, - тут нужно делать доработки, раз данных софт не смог на освнове имеющейся БД сдампить диск.
У автора софта какое-то своё понимание частоты MFM, во всяком случае 5 МГц мне там не встретилось. Ему видимо виднее, я же с этим софтом от силы час повозился и нет у меня этого чудного дейвайса.
Насчет заметить/не заметить - у меня никогда небыло и сейчас ничего PDP11-го, только дурные мысли в голове (ну нет, 30 назад у нас в школе были БК0010 с мембранной клавиатурой, до сих пор с ужасом вспоминаю, хорошо хоть меня с этих уроков информатики выгоняли). Я смотрел, что подходит по шаблону поиску, а не пытался проверять насколько каждый контроллер корректно описан. Целей выглядить шибко умным среди незнакомых мне людей тоже нет.
Нет у меня никаких задач (видать зря сюда зашел), была идея - я ещё озвучил. Проехали. Баба с возу, голове легче.
>у меня никогда небыло и сейчас ничего PDP11-го
Ну ЕС1841 с MS-DOS. Досовское-то у Вас наверняка что-то было ;-)
512 байт на сектор.....
>к решению "из коробки" для дампа дисков ПК11/16
Очень малопригоден обсуждаемый девайс для "из коробки". Поэтому пришлось отложить его в сторону и клепать свой. Он похуже в плане теоретической широты возможностей, но пока все задачи перекрывает. Но у меня именно для дампа, не эмулятор. И точно не решение для раздачи/тиражирования, так как софт на ходу правлю.
У автора софта какое-то своё понимание частоты MFM, во всяком случае 5 МГц мне там не встретилось. Ему видимо виднее, я же с этим софтом от силы час повозился и нет у меня этого чудного дейвайса.
вполне возможно что оцифровку нужно вести на частоте в 2 раза большей чем оригинальный поток...
да и на сайте у чувака написанно = Note 1: The DEC RQDX1-RQDX3 controller uses mixed format on the tracks. My software doesn't handle it well. When reading an existing disk it will report errors on the alternate format used for most of the disk. The data will be read and the emulation file will have the data though the alternate format not be checked for errors. When creating an extracted data file only the data for the format detected will be extracted. You can use the analyze on a track with the alternate format to extract those areas. You will manually need to put the extracted data files into one good file.
так что сдампить можно якобы даже совсем неизвестный формат (только структуру прийдется потом копать вручную от него) и потом нужно будет добавить этой проге конфиги для этой структуры, в принципе думаю автор вполне может и ответить на вопросы по email и помочь "раскодировать" формат дорожки из реального дампа или из документации на чип контроллера
пару встреченных нюансов по развёртыванию ПО на BeagleBone:
- В моей BBB rev C. в конфиге были вот такие строки, cmdline которого я раскомментировал:
##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
> - Пришло время найти чистую MicroSD карту. Нужна размером не менее 4 Gb и не более 32 Gb. ...
Я купил карточку MicroSDHC 32Gb SanDisk 10UAS класс и Etcher после заливки образа ругался, что верификация провалена, а сам BBG с такой карточкой просто часами бегал туда-сюда огоньками, что делал не знаю, но операцию копирования образа во флеш похоже провернуть не мог.
Тогда я нашел у себя MicroSD 2Gb Samsung, и ей и хватило места для образа (раздел занимает ~ 1.7Gb), и я смог уже пойти дальше штатно по инструкции.
На 03.11.2018 на сайте последняя версия 1.34 (mfm_emu_powerfail_v1.34.tgz, релиз от 03-Nov-2018).
Тогда ку, тут я ничего посоветовать не могу.
Спасибо, сам разобрался.
- - - Добавлено - - -
Тут важный момент - НЕЛЬЗЯ ПОДКЛЮЧАТЬ ПЛАТУ BBB/BBG ПОКА ЭТОТ СВЕТОДИОД ХОТЬ КАК-ТО СВЕТИТЬСЯ - можно повредить подключаемую плату.
Перед подключением питания эмулятора можно вытащить перемычку Р9 чтобы не подавать питание на конденсаторы и не ждать ~5 часов. После отладки платы BBG/BBB перемычку вернуть обратно.
- Теперь нужно установить еще одну программу -Etcher.
Можно использовать программу Win32DiskImager
Спасибо, сам разобрался.
И в чем же дело было? ;-)
В том что заданное количество цилиндров 1:1 давало ошибки при форматировании.
Спасибо. То есть дело было не в библиотеках....
Спасибо. То есть дело было не в библиотеках....
Да.
dk_spb, А полиномом от CМ1425 не поделитесь? Если он конечно есть.
Есть. Но надо искать.
Да не к спеху.
- - - Добавлено - - -
...
По светодиоду MFM винчестера.
Известно что светодиод горит при работе MFM винта независимо от того есть к нему обращение чтения/записи или нет. Но горит он не просто по наличию питания а от совокупности нескольких факторов.
Кто знает какие?
На винте МС5405 при отключении выбора диска (движковыми переключателями), при включении загорается светодиод после раскручивания дисков и позиционировании светодиод гаснет. Есть ещё коды ошибок когда на МС5405 светодиод начинает мигать (какие не в курсе).
Ещё замечено на МС5401 при отклонении скорости от положенных 3600 об/мин. светодиод гаснет.
При каких ещё обстоятельствах светодиод гаснет?
А можно попросить сделать обзорную фотку платки эмулятора с одним любым, подключенным в режиме сдампливания, винтом со шлейфами.
Если устроит альтернативный вариант то - вот. (http://www.pdp11gy.com/sddoneE.html)
p.s. Кстати, у HDD-шек из комплекта Э-85 разъём питания преимущественно не molex, а синенький с очень невнятными ключами, особенно если они обломаны.Они не только на Э-85, а на всех МС540Х кроме МС5410.
На такой случай я сделал переходник Molex(мама) - Cиненький разъём (папа). :)
В случае 40 пинового краевого разъёма, просто откусываю часть платы под 34 пиновый разъём.
- - - Добавлено - - -
Немного не в тему.
Тестер АСЕ РС-2000
О создании тестера - здесь (https://www.acelab.ru/dep.pc/news/newsitem.php?itemid=100#p[0]/2/) и здесь. (https://www.acelaboratory.com/news/newsitem.php?itemid=60)
Более крупное фото (с другого источника)
http://andrey-kireev.narod.ru/repair/jutko/pc2k.jpg
Перезагрузите ваш компьютер (внутри которого установлен эмулятор) НЕ ВЫКЛЮЧАЯ питания платы-эмулятора!
Долго же мне мозг выносила плата эмулятора. Наконец нашёл в чём была причина ошибок форматирования.
Не знаю у кого как, а мне плату эмулятора надо перезагружать в обязательном порядке перед низкоуровневом форматированием!
Иначе будут ошибки!
Для того чтобы плата загрузилась надо заранее сконфигурировать автозагрузку.
Так-же для успешного форматирования нужно в настройках MFM эмулятора превысить число цилиндров на 2.
Пример для HDD 5Мб КЖД ДВК:
./mfm_emu --cylinders 154 ...
При форматировании на компьютере количество цилиндров выставлять 152.
Запись образа на SD карту.
Для записи на SD карту надо сделать автомонтирование и прописать пути.
Открываем редактор.
sudo nano/etc/fstab
И с новой строки пишем
UUID=************ /media/sdcard auto defaults 0 0
Где вместо звёздочки пишем идентификационный номер вашей SD карточки. Для того чтобы узнать номер можно воспользоваться командой blkid.
Путь для SD карты я сделал такой - /media/sdcard Но можете сами выбрать куда будет монтироваться ваша карта.
В конфигурациях эмулятора соответственно нужно прописать именно этот путь (т.е какой вы выбрали для SD карты).
./mfm_emu --file /media/sdcard/***
и
EmuFN1= /media/sdcard/***
Где под звёздочкой- имя файла.
Может быть есть и более удобный способ создания автомонтирования, но мне не известно.
Использовал карту SD 4GB class10 отформатированною в FAT32.
Заказал вот такую дешёвую *****платку с али: https://ru.aliexpress.com/item/32600217090.html
Из явных вещей: не распаян USB (это не должно быть проблемой), нет кварца на RTC (тоже по идее должно быть норм, в случае чего припаять не проблема), также распаян камень AM3352, но по идее это тоже не препятствие.
Китайцы платку так и не отправили, пришлось заказать обычный BBB.
- Скачиваем по ссылке http://www.pdp8online.com/mfm/revb/B...u_v1.32.img.xz текущий релиз платформы.
Пора бы обновить, а то показывает 404. Новая версия - BBB-mfm-emu_v2.09.img.xz (http://www.pdp8online.com/mfm/revb/BBB-mfm-emu_v2.09.img.xz)
Заодно и powerfail - mfm_emu_powerfail_v2.11.tgz (http://www.pdp8online.com/mfm/code/mfm_emu_powerfail_v2.11.tgz)
Китайцы платку так и не отправили, пришлось заказать обычный BBB.
Вот ещё клон - http://www.mentorel.ru/product/usomiq-bonecape/
Правда там двух платное решение, и нет HDMI, как и в BBG.
Платку собрал, успешно прочитал диск от ДВК. Попробовал прочитать диск от ЕС-1851, определило формат как ЕС-1841, при чтении постоянно сыпало различными ошибками, но кое-как прочитало.
Выяснилось, что нельзя из образа диска для ЕС-1841 сделать эмулируемый файл... Буду разбираться...
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot