Сейчас на форуме: vsv1, NIKOLA, r0lka, johnniewalker (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Как создавать arm машину на qemu технологии с возможностью расширения ее ?
Посл.ответ Сообщение

Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 08 июля 2018 20:53
· Личное сообщение · #1

Интересует тема создания арм машин для запуска прошивок арм в них, чтобы динамически их можно было дебажить в ида.
Сделал арм машину по этой статьей https://balau82.wordpress.com/2010/08/17/debugging-arm-programs-inside-qemu/
Но эта машина имеет недостатки:
1. Нет apt-get
2. Не запоминает изменения, после перезапуска все теряется
Так как делал файловую систему через busybox, то у меня есть структура ее и могу все что надо закинуть туда и потом запаковать так:
Code:
  1. find . | cpio ---format=newc | gzip > ../../rootfs.img.gz

Потом запускаю так:
Code:
  1. qemu-system-arm -M versatilepb -m 128M -kernel ./linux-2.6.35/arch/arm/boot/zImage -initrd ./rootfs.img.gz -append "root=/dev/ram rdinit=/sbin/init" -redir tcp:1234::1234

Но вот как сделать, чтобы изменения сохранялись.
И если нету apt-get, то как вручную ставить пакеты или лучше все-таки доставить туда apt-get как-то надо.




Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 08 июля 2018 21:21 · Поправил: sefkrd
· Личное сообщение · #2

mazaxaker пишет:
И если нету apt-get

sudo dpkg -i *.deb

Добавлено спустя 13 минут
..и мануал бы, найти по свежее..
Может на Хабре чё есть..



Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 08 июля 2018 21:55
· Личное сообщение · #3

sefkrd пишет:
sudo dpkg -i *.deb

Да, но тут можно замучаться, если там зависимости у пакета.




Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 08 июля 2018 22:48
· Личное сообщение · #4

Без, апта иначе никак..
Напиши скрипт для dpkg(не знаю как оно будет.., может пол системы затянет)



Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 08 июля 2018 23:14
· Личное сообщение · #5

sefkrd, ага, со скриптом в принципе можно. Но еще надо как-то чтобы изменения сохранялись. Вроде надо hda опцию типа виртуальный диск делать, я так пробовал, система грузилась, но не запоминала.



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2018 07:04 · Поправил: HandMill
· Личное сообщение · #6

mazaxaker:
возьми какой-нибудь готовый livecd, создай образ жёсткого диска и перестань передавать в qemu параметры ядра(kernel + initrd), этим должен заниматься загрузочный раздел жёсткого диска(после первой загрузки с livecd накати систему на жёсткий диск, с этого момента livecd больше не будет нужен), заодно все твои файловые изменения будут сохраняться.

-----
все багрепорты - в личные сообщения




Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 09 июля 2018 08:15
· Личное сообщение · #7

HandMill, я пробовал готовые образы дебиана на платформах armel и armhf, но там архитектура системных файлов EABI, а у меня прошивка скомпилена по старой OABI. А со старой OABI я не находил готовых образов.
Нашел кросс-компилер, который под OABI компилит, с его помощью удавалось busybox собирать под OABI, хотел также попробовать в buildroot сунуть этот компилятор, но походу buildroot просто не поддерживает их и при сборке рухает с ошибками.



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2018 13:22
· Личное сообщение · #8

mazaxaker тогда вариант накатывать всё равно образ с EABI(по сути оттуда тебе нужен только готовый загрузчик, либо устанавливать grub ручками) и затем закинуть внутрь необходимые файлы для старта ядра + busybox.

-----
все багрепорты - в личные сообщения




Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 09 июля 2018 16:29
· Личное сообщение · #9

HandMill, скачал buildroot какой-то старую версию 2013 года, там еще есть эта OABI, получилось там собрать машину такую с возможностью сейвов. Вот как бы туда еще apt-get прикрутить, сложно ли его собирать, потому что я так понимаю, там тока из сорцов его собирать.



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 09 июля 2018 17:01 · Поправил: HandMill
· Личное сообщение · #10

mazaxaker скорее всего, нужно действовать по манам linux from scratch или искать лучше. По ссылке сказано:
Code:
  1. All debian releases upto and including Lenny were OABI

исходя из этого стоит поискать старенький дебиан, находим что-то здесь.. Теперь Вам остаётся проверить OABI там или нет, иначе ещё гуглинг или LFS. Про установку apt-get покаместь лучше забыть ввиду некоторых вопросов: где брать репы c OABI бинарниками? Где брать репы с исходниками под ваше ядро? Допустим найдёте репы с исходниками под ваше ядро, фокус в том что они могут не собраться ввиду отсутствия рабочего тулчейна. Утилиты могут не устанавливаться, могут возникнуть проблемы с их работой. Если идти по пути apt-get - нужно начинать со сборки рабочего тулчейна: gcc, perl, python, make, cmake, autotools, autoinstall, и ещё кучи всего с сопутствующими библиотеками.

-----
все багрепорты - в личные сообщения




Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 09 июля 2018 19:46
· Личное сообщение · #11

HandMill пишет:
Про установку apt-get покаместь лучше забыть ввиду некоторых вопросов

Ну да, я его хотел поставить только чтобы установить libdirectfb-extra библиотеку, которая используется в прошивке. Почему-то бинарники от сдк прошивки этой либы как-то не работают, в сдк версия 1.4, в процессе дебага убедился, что эта версия хочет, чтобы был модуль fusion по /dev/fusion адресу, которого там не было, а руками с гитхаба собираться он не хотел, а когда я пробовал на дебиан армел машине с apt-get рабочим, но там был EABI, ставить эту либу, apt-get мне выкачивала 1.2 версию и примеры тестовые на ней работали, а модуль fusion она похоже не использовала, так как в /dev не появилась папка fusion после инстала. Поэтому я и думал заинсталить 1.2 версию, а в прошивке подправить имена *.so файлов этой либы, чтобы прошивка пыталась через 1.2 работать.

Добавлено спустя 4 часа 13 минут
HandMill, а как те образы iso инсталировать, скачал по той ссылке, там внутри вроде нет никакой файловой системы, куча каких-то информационных файлов и еще в папке pool/main лежит куча *.deb пакетов под арм. Если я правильно понял это не готовая система, а просто куча собранных *.deb файлов для ручной установки в уже сделанную арм машину.



Ранг: 18.3 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 11 июля 2018 17:20
· Личное сообщение · #12

лучше переточить под себя готовый android эмуль типа avd от гугля или androidx86 + gudini. изменения и так сохраняются если указать в качестве system/data qcow img и замонтировать его в r/w - тупо подрихтуй свой рамдиск.



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 11 июля 2018 18:16
· Личное сообщение · #13

mazaxaker нужно пытаться как-то скрестить бульдога с носорогом. Ссылки на Lenny не забудь заменить. Я не осилил, ввиду того что не понимаю и близко какое оборудование и для чего в ARM можно использовать. Сложна

-----
все багрепорты - в личные сообщения




Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 12 июля 2018 22:16
· Личное сообщение · #14

HandMill, я вот тут http://archive.debian.org/debian/dists/lenny/main/installer-armel/current./images/versatile/netboot/ нашел готовые ядро и кернел под lenny, пробую онлайн-установку как тут делают https://www.opennet.ru/tips/2070_arm_qemu_debian.shtml но чет обламывают с серваком, пишут ошибки типа не удалось скачать Release файл, как я понял они тупо отключили на своем серваке поддержку lenny.
А из iso я пока тока научился выдергивать deb пакеты и руками через ipkg ставить в арм машину, вроде так получается, тока выходит дофига зависимостей у этих apt.

Добавлено спустя 6 минут
RusRus, гугловский эмулятор предлагает armeabi-v7a, там вроде нет возможности создать oabi архитектуру.




Ранг: 77.2 (постоянный), 73thx
Активность: 0.190.15
Статус: Участник

Создано: 12 июля 2018 22:49
· Личное сообщение · #15

https://cdimage.debian.org/mirror/cdimage/archive/5.0.0/



Ранг: 82.5 (постоянный), 1thx
Активность: 0.130.04
Статус: Участник

Создано: 13 июля 2018 00:18 · Поправил: mazaxaker
· Личное сообщение · #16

sefkrd, это я находил эти iso, как их установить не понимаю. Пробую так, создаю виртуальный хард и указываю qemu грущиться с cdrom, указывая там iso.
Code:
  1. qemu-img create -f qcow2 hard.qcow 4G
  2. qemu-system-arm -hda hard.qcow -boot d -cdrom debian-500-arm-netinst.iso -248 -M versatile

Но получаю просто черный экран внутри эмулятора qemu.


 eXeL@B —› Крэки, обсуждения —› Как создавать arm машину на qemu технологии с возможностью расширения ее ?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати