пытаюсь запустить под ARM
пытаюсь запустить под ARM
С тех пор, как обнаружилось существование эмуляторов ARM (они появились недавно), снова появилась надежда запустит ЯОС в эмуляторе. Также выяснилось, что в ядре есть модуль Trace, т.е. оно может всё же показать что-то большее, чем чёрный экран.
Скачал SDK для Xilinx, но это кажется слишком сложным. У нас есть сборка под RPI неизвестного статуса, хочу попробовать её пнуть. Выяснилось, что есть -M versatilepb и -M raspi2, это разные эмуляторы. Ядра, собранные под одно, не работают под другое, и наоборот:
https://stackoverflow.com/questions/497 ... pi-2-image
Действую согласно этому с versatilepb (как я понял, он старше и менее точный, так что не факт что подойдёт для нас), чтобы запустить для начала хоть линукс:
https://dominoc925.blogspot.com/2019/09 ... mu-on.html
Скачал SDK для Xilinx, но это кажется слишком сложным. У нас есть сборка под RPI неизвестного статуса, хочу попробовать её пнуть. Выяснилось, что есть -M versatilepb и -M raspi2, это разные эмуляторы. Ядра, собранные под одно, не работают под другое, и наоборот:
https://stackoverflow.com/questions/497 ... pi-2-image
Действую согласно этому с versatilepb (как я понял, он старше и менее точный, так что не факт что подойдёт для нас), чтобы запустить для начала хоть линукс:
https://dominoc925.blogspot.com/2019/09 ... mu-on.html
Последний раз редактировалось БудДен 15.12.20 23:18, всего редактировалось 1 раз.
Re: пытаюсь запустить под ARM
логин/пароль pi/raspberry,
войти в систему можно, но графика не загрузилась. Да и пёс с ней. Зато сеть работает. Эту часть считаем успешной. Теперь надо понять, под какую же версию работают (или не работают) сборки RPi для A2...
войти в систему можно, но графика не загрузилась. Да и пёс с ней. Зато сеть работает. Эту часть считаем успешной. Теперь надо понять, под какую же версию работают (или не работают) сборки RPi для A2...
Re: пытаюсь запустить под ARM
Вроде под RPI2 должно работать, судя по чтению чата в телеграм.
Для запуска Linux с -M raspi2 пытаюсь использовать этот ответ:
https://stackoverflow.com/questions/288 ... -2-on-qemu
команда получилась такая:
Но заканчивается оно тем, что при попытке смонтировать корневую файловую систему облом-с.
Для запуска Linux с -M raspi2 пытаюсь использовать этот ответ:
https://stackoverflow.com/questions/288 ... -2-on-qemu
команда получилась такая:
Код: Выделить всё
c:\prf\qemu-20200221\qemu-system-arm.exe -M raspi2 -append "rw earlyprintk loglevel=8 console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2" -cpu arm1176 -dtb bcm2709-rpi-2-b.dtb -sd 2020-08-20-raspios-buster-armhf.img -kernel kernel7.img -m 1G -smp 4 -serial stdio
Последний раз редактировалось БудДен 16.12.20 01:07, всего редактировалось 1 раз.
Re: пытаюсь запустить под ARM
Но там и на это есть ответ (вся команда должна быть в одной строке).
(это я запускаю под Windows, там строка под linux, разницы видимо нет).
Забыл упомянуть о том, что нужные файлы из образа я достал под Windows, открыв файл образа с помощью 7zip - там внутри два архива, из них меньший содержит то, что нужно.
Код: Выделить всё
c:\prf\qemu-20200221\qemu-system-arm.exe -M raspi2 -append "rw earlyprintk loglevel=8
console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootdelay=1" -cpu arm1176 -dtb bcm2709-rpi-2-b.dtb
-sd 2020-08-20-raspios-buster-armhf.img -kernel kernel7.img -m 1G -smp 4 -serial stdio
Забыл упомянуть о том, что нужные файлы из образа я достал под Windows, открыв файл образа с помощью 7zip - там внутри два архива, из них меньший содержит то, что нужно.
Последний раз редактировалось БудДен 16.12.20 01:06, всего редактировалось 1 раз.
Re: пытаюсь запустить под ARM
Как и было обещано, клавиатура и мышь не работает, но консоль (через последовательный порт, т.е. через консоль qemu) позволяет залогиниться.
Более чем достаточно. Если бы A2 так заработала, было бы прекрасно!
Более чем достаточно. Если бы A2 так заработала, было бы прекрасно!
Re: пытаюсь запустить под ARM
КонечнО, не удержался и попробовал, но ничего не вышло. А надо было давно спать уже.
Re: пытаюсь запустить под ARM
Разобрался, как в A2 создаются img файлы, а также прочитал, что нужно подложить свой kernel.img к файлам ядра (возможно, тут пока неправда).
Создаю с помощью такого скрипта https://gitlab.com/budden/ja-o-s/-/blob ... iCHDD.Tool
Создаю с помощью такого скрипта https://gitlab.com/budden/ja-o-s/-/blob ... iCHDD.Tool
Re: пытаюсь запустить под ARM
https://habr.com/ru/post/208726/ - написано, что нужно FAT16, посмотрим.
Re: пытаюсь запустить под ARM
Последняя версия кирпича выглядит так:
Код: Выделить всё
c:\prf\qemu-20200221\qemu-system-arm.exe -M raspi2 -cpu arm1176 -dtb bcm2709-rpi-2-b.dtb -drive file=jaos-rpi.img,format=raw -m 256 -smp 4 -serial stdio
Re: пытаюсь запустить под ARM
Попытался скачать какое-то чужое ядро, оно тоже в эмуляторе не сработало. В общем, как-то туго идёт с платформой ARM пока что. Заказал физическую Raspberry Pi 2, они есть только у частных продавцов. Остаётся пока что только ждать.
Re: пытаюсь запустить под ARM
Оказывается, уже была тема про ARM: http://вече.программирование-по-русски. ... ?f=5&t=297
Re: пытаюсь запустить под ARM
Pi приехала, пока и линукс не могу запустить. Судя по миганию светодиодов, она загружается, но монитор показывает только черноту. Наверное, завтра попробую с другим кабелем и на другом мониторе. Ещё выяснилось, что оказывается, версия 1.2 отличается от 1.1 РАЗРЯДНОСТЬЮ ПРОЦЕССОРА И ВЕРСИЕЙ ЕГО АРХИТЕКТУРЫ. Совсем небольшое такое отличие, чтобы выражать его минорным (как это будет по-русски?) номером версии. Если я купил не то, что можно и не тратить время на попытку установки линукса (знать бы ещё, что есть "то").
- Лис [Вежливый]
- Сообщения: 563
- Зарегистрирован: 08.10.18 13:32
Re: пытаюсь запустить под ARM
«Судя по миганию светодиодов, она загружается, но монитор показывает только черноту.»
Ты raspbian устанавливаешь?
Если нет, то список модулей в ядре проверь.
«как это будет по-русски?»
младшим?
Ты raspbian устанавливаешь?
Если нет, то список модулей в ядре проверь.
«как это будет по-русски?»
младшим?
Re: пытаюсь запустить под ARM
С другим монитором и после подключения клавиатуры распбиан запустился. Что сыграло решающую роль - не знаю. Если ещё будет сегодня время, попробую подключить через UART (боюсь спалить не тем напряжением, надо точно быть уверенным, что купленный UART на базе CP1202 подходит - там указано два напряжения питания).
Re: пытаюсь запустить под ARM
Если настроить на gitlab автосборку то там можно выбрать тестовый компьютер на АРМ.
А вообще брал себе NanoPi M4. Там детских болезний нету и стоит защита. UART комплектный, но с переключателем для смены напряжения.
Спалить напряжением задача крайне трудная. Это надо что бы из-за взаимо влияния открылась цепь по питанию. Процессоры проходят тест на электромагнитную совместимость. Достаточно жестоким, что не дает им сгореть. А вот на плате вторичные цепи питания и блок питания могут быть не защищенны.
Из всех прошивок мне понрави https://www.armbian.com/download/
А вообще брал себе NanoPi M4. Там детских болезний нету и стоит защита. UART комплектный, но с переключателем для смены напряжения.
Спалить напряжением задача крайне трудная. Это надо что бы из-за взаимо влияния открылась цепь по питанию. Процессоры проходят тест на электромагнитную совместимость. Достаточно жестоким, что не дает им сгореть. А вот на плате вторичные цепи питания и блок питания могут быть не защищенны.
Из всех прошивок мне понрави https://www.armbian.com/download/
Re: пытаюсь запустить под ARM
Да всё, что угодно. Поэтому я брал плату с Debug-портом на uart. И ещё на всякий случай с портом JTAG - аппаратная отладка.С другим монитором и после подключения клавиатуры распбиан запустился. Что сыграло решающую роль - не знаю.
Re: пытаюсь запустить под ARM
Я то горькмм опытом научен. Поэтому брал плату с SOC у которой максимально открытая документация на RK3399. И вам советовал дороже, а проблем меньше.БудДен писал(а): ↑22.12.20 00:27Pi приехала, пока и линукс не могу запустить. Судя по миганию светодиодов, она загружается, но монитор показывает только черноту. Наверное, завтра попробую с другим кабелем и на другом мониторе. Ещё выяснилось, что оказывается, версия 1.2 отличается от 1.1 РАЗРЯДНОСТЬЮ ПРОЦЕССОРА И ВЕРСИЕЙ ЕГО АРХИТЕКТУРЫ. Совсем небольшое такое отличие, чтобы выражать его минорным (как это будет по-русски?) номером версии. Если я купил не то, что можно и не тратить время на попытку установки линукса (знать бы ещё, что есть "то").
Re: пытаюсь запустить под ARM
Я исхожу из принципа наименьшей ширины пропасти. На данный момент - запустил распбиан с терминалом под UART.
Вот это устройство: https://www.chipdip.ru/product/cp2102
Загрузив ядро от A2, пока получаю полукирпич. Т.е. что-то происходит, но что - неведомо. Также нужно вот это:
https://arduinoplus.ru/ustanovka-drivera-cp210x/
И вот это:
https://orangepi.su/content.php?p=201&c ... 20i%20UART.
Вот это устройство: https://www.chipdip.ru/product/cp2102
Загрузив ядро от A2, пока получаю полукирпич. Т.е. что-то происходит, но что - неведомо. Также нужно вот это:
https://arduinoplus.ru/ustanovka-drivera-cp210x/
И вот это:
https://orangepi.su/content.php?p=201&c ... 20i%20UART.
Re: пытаюсь запустить под ARM
Вероятно, что дальше понадобится вот это: https://sysprogs.com/VisualKernel/tutor ... jtagsetup/ , хотя этого бы не хотелось. ХОтелось бы фьюить - и всё сразу заработало.
Re: пытаюсь запустить под ARM
Переключаюсь на оптимистичный fcede71ca024ef9856f095b7db3b3fecfa370655
Re: пытаюсь запустить под ARM
Ничего особого не заработало. Неужели и правда для отладки через JTAG нужна страшная штука за 46 тыр? https://www.chipdip.ru/product/j-link-usb-jtag-adapter
Драйвер для переходника тут: https://micro-pi.ru/cp2102-преобразователь-usb-uart/
У переходника мерял напряжение на проводе, отвечающем за отправку, получилось 3.3 в - не страшно стало втыкать.
С линуксом UART заработал.
В уроках из eth, упоминается, что их сборка основана на https://openelec.tv/get-openelec - это не помогло.
Наконец, начал читать это: https://www.raspberrypi.org/documentati ... iguration/
остаётся слабая надежда, что ядро работает, просто не настроен вывод.
Драйвер для переходника тут: https://micro-pi.ru/cp2102-преобразователь-usb-uart/
У переходника мерял напряжение на проводе, отвечающем за отправку, получилось 3.3 в - не страшно стало втыкать.
С линуксом UART заработал.
В уроках из eth, упоминается, что их сборка основана на https://openelec.tv/get-openelec - это не помогло.
Наконец, начал читать это: https://www.raspberrypi.org/documentati ... iguration/
остаётся слабая надежда, что ядро работает, просто не настроен вывод.
Re: пытаюсь запустить под ARM
Короче пёс его знает. Меньше чем за 46 тыр отладочного устройства не нашлось (хотя оно наверняка существует), в итоге за полдня при удаче во всех промежуточных пунктах (удачная малина, удачный адаптер, удачный монитор) ничего не вышло. Пора спать. Надо подумать, что с этим делать. В принципе, ARM это не основная цель и можно на это вообще забить.
Re: пытаюсь запустить под ARM
Вот всего за 1 тысячу рублей.
J-link aliexpress
Спрос определяет цену. Себястоимость такого отладчика в раёне 2 баксов. JTAG отладчик/эмулятор это просто преобразователь сигналов принцип такой же как у cp1202 все остальные возможности определяет софт.
Кто хочет с экономить, тот пишет stub для gdb сервера и отлаживает по UART. Что имеет ряд минусов по сравнению с JTAG. Невозможно отлаживать загрузчик и обработку прерываний. Хотя последнее можно делать двух стадийным.
Но вообще отладка ядра ОС это ещё тот вопрос и решается юнит-тестами на все функции
J-link aliexpress
Спрос определяет цену. Себястоимость такого отладчика в раёне 2 баксов. JTAG отладчик/эмулятор это просто преобразователь сигналов принцип такой же как у cp1202 все остальные возможности определяет софт.
Кто хочет с экономить, тот пишет stub для gdb сервера и отлаживает по UART. Что имеет ряд минусов по сравнению с JTAG. Невозможно отлаживать загрузчик и обработку прерываний. Хотя последнее можно делать двух стадийным.
Но вообще отладка ядра ОС это ещё тот вопрос и решается юнит-тестами на все функции
Re: пытаюсь запустить под ARM
Спасибо, это похоже на реальный вариант. Он даже в Москве продаётся (от слова алиэкспресс я икаю, хотя карточка Zybo в конце концов таможню прошла, но в руках у меня её до сих пор нет). Я сейчас хочу попробовать другой вариант - https://github.com/PeterLemon/RaspberryPi , а дальше методом аналогии. Пока ещё не полностью раскрыта тема конфигурационного файла, возможно, дело просто в какой-то глупости.
Re: пытаюсь запустить под ARM
И об этом PeterLemon есть отдельная тема: http://вече.программирование-по-русски. ... ?f=5&t=332
Дальше там ещё один репозиторий с примерами.
Теперь возвращаемся к A2 - переключаемся на "fcede71ca024ef9856f095b7db3b3fecfa370655 - Some patches -- Coop A2 on RPI works again", собираем RPiC под именем kernel7.img и делаем такой config.txt:
Остальные файлы - от 2017-07-05-raspbian-jessie-lite.zip
Я это пишу до запуска, потому что после запуска уже мотива не будет :(
Дальше там ещё один репозиторий с примерами.
Теперь возвращаемся к A2 - переключаемся на "fcede71ca024ef9856f095b7db3b3fecfa370655 - Some patches -- Coop A2 on RPI works again", собираем RPiC под именем kernel7.img и делаем такой config.txt:
Код: Выделить всё
# kernel_old=1
disable_commandline_tags=1
disable_overscan=1
framebuffer_swap=0
Я это пишу до запуска, потому что после запуска уже мотива не будет :(
Re: пытаюсь запустить под ARM
Радужный экран, на UART - тишина. Попробуем теперь побольше помигать.
Re: пытаюсь запустить под ARM
Списал код мигания с работающего примера и поместил его в стартовую функцию, но всё равно не мигает. Видимо, что-то не так с форматом img файла? Попытался погуглить, что это за формат, но так и не понял. Короче говоря, принимаем за аксиому, что A2 на RPiC не работает и её надо портировать заново с нуля.
Re: пытаюсь запустить под ARM
Нашёл ошибку при переписывании кода, но и её исправление не помогло. Также сгенерировал elf-файл из A2, вместо img файла, но arm-none-eabi-objdump говорит, что файл неправильный. Также пытался минимизировать объём собираемого образа, но это не получилось - там много взаимозависимых вещей. Короче, тут дело ясное, что дело тёмное. Не уверен, что стоит продолжать этим заниматься. Отключил все проводки, засунул RPi обратно в корпус и винтики завернул.
Re: пытаюсь запустить под ARM
Сергей Дурманов предположил, что может быть это должен быть Raspberry Pi Model A.
https://www.raspberrypi.org/forums/view ... p?t=142531
После НГ можно будет купить и ещё раз попробовать, а также нашёл форум
с конфигурациями QEMU, где UART работает.
https://www.raspberrypi.org/forums/view ... p?t=142531
https://www.raspberrypi.org/forums/view ... p?t=142531
После НГ можно будет купить и ещё раз попробовать, а также нашёл форум
с конфигурациями QEMU, где UART работает.
https://www.raspberrypi.org/forums/view ... p?t=142531
Re: пытаюсь запустить под ARM
Только это модель 2, а не 1. Так что извините.