QEMU с поддержкой BeagleBone

Я хотел бы подражать BeagleBone Black. Похоже, что QEMU - единственный эмулятор, поддерживающий эмуляцию Linux для ARM. Однако мне трудно получить правильный эмулятор.

Я пробовал использовать сборку QEMU с qemu.org, но кажется, что машина "beagle" не поддерживается (также из вывода "qemu-system-arm -machine help" не в последнюю очередь beagle как поддерживаемая машина). Я нашел несколько сообщений, в которых говорилось, что у Linaro есть сборки qemu с поддержкой BeagleBone и что его можно установить с помощью apt-get в Ubuntu. Также есть видео на YouTube с инструкциями:

https://www.youtube.com/watch?v=__6XmxOrL3o

Однако кажется, что инструкции больше не работают. У меня Ubuntu 14.04. Я пробовал следующее:

1) sudo add-apt-repository ppa: linaro-Maintainers / инструменты

Это время истекает и сообщает об ошибке неправильного формата PPA.

2) Затем я выполнил инструкции здесь:

https://wiki.linaro.org/Platform/Systems/Repository

Однако после добавления этих репозиториев qemu не был добавлен, поэтому в моем репозитории apt у меня был только qemu с qemu.org (который не поддерживает beaglebone)

3) Затем я нашел эту страницу:

https://launchpad.net/~linaro-maintainers/+archive/ubuntu/tools

Итак, я попробовал следующее:

sudo add-apt-repository http://ppa.launchpad.net/linaro-maintainers/tools/ubuntu

а затем также загрузил и добавил открытый ключ с помощью команды «sudo apt-key add».

Похоже, это сработало, поскольку после выполнения "sudo apt-get update" и "apt-cache show qemu-system" я вижу следующее:

Пакет: qemu-system Источник: qemu-linaro Версия: 2.2.0 ~ rc3 + git8 + gdb12451-63linaro + trusty Архитектура: amd64 Сопровождающий: Установлено разработчиками Ubuntu-Размер: 133812 Зависит от: qemu-linaro-keymaps, libasound2 (> = 1.0 .16), libbluetooth3 (> = 4.91), libbrlapi0.6, libc6 (> = 2.15), libcurl3-gnutls (> = 7.16.3), libfdt1, libgcc1 (> = 1: 4.7), libgl1-mesa-glx | libgl1, libglib2.0-0 (> = 2.24.0), libgnutls26 (> = 2.12.17-0), libncurses5 (> = 5.5-5 ~), libpixman-1-0 (> = 0.15.16), libpng12 -0 (> = 1.2.13-4), libpulse0 (> = 1: 0.99.1), libsasl2-2 (> = 2.1.24), libsdl1.2debian (> = 1.2.11), libstdc ++ 6 ( > = 4.6), libtinfo5, libuuid1 (> = 2.16), libvdeplug2, libx11-6, zlib1g (> = 1: 1.2.0) Предлагает: samba Breaks: qemu (‹‹ 0.11.0-2), qemu-kvm- extras (‹---------------- 0.13.50-2011.02-0 ~ rc1-0ubuntu1) Заменяет: qemu (‹---------------- 0.11.0-2), qemu-kvm-extras (‹---------------- 0.13.50-2011.02-0 ~ rc1-0ubuntu1) Домашняя страница : https://launchpad.net/qemu-linaro/

(я вставил только первые несколько строк).

Однако после установки qemu-system (sudo apt-get install qemu-system) она все еще не имеет поддержки BeagleBone (qemu-system-arm -machine help не показывает никаких гончих).

Так что мне интересно, знает ли кто-нибудь, где установить QEMU на Ubuntu с поддержкой BeagleBone. Есть ли еще один репозиторий, который я должен добавить? Я новичок в Ubuntu, apt и Linaro, поэтому пока у меня нет идей.


person Yevgeniy P    schedule 17.02.2016    source источник


Ответы (1)


Я наткнулся на ваш вопрос, потому что весь день пытался делать то же самое. Я также использую (X) ubuntu 14.04.

Короткий ответ: нет QEMU, который бы изначально поддерживал Beagle Bone.

Вы правы, говоря, что qemu-linaro имеет некоторую поддержку OMAP3, включая beagle и beaglexm. Это для Beagle Board и Beagle Board xM. Серия Beagle Board использует OMAP 3530, а серия Beagle Bone (обычная и черная, как у меня) использует OMAP 335x.

Кроме того, мне не удалось найти рабочий PPA, содержащий двоичный файл qemu-linaro. Старая версия той, которую вы пытаетесь установить, раньше содержала QEMU, но больше не содержит - даже с надежной (14.04).

Согласно списку пакетов для Saucy (13.10) qemu-linaro был в этом PPA.

Но его уже нет на Trusty (14.04) . Я не знаю, почему ваш apt-cache вообще что-то показывает - я даже не смог это продублировать.

Вы можете создать версию QEMU, поддерживающую OMAP 3 и Beagle Board:

Итак, я клонировал репозиторий git и скомпилировал qemu-linaro. Это было просто, возможно, вам просто нужно добавить несколько пакетов -dev для библиотечных зависимостей. В моей машине уже есть большая часть того, что требовалось.

Эта версия предоставляет опции -M beagle или -M beaglexm.

Затем я весь день пытался выяснить, почему мой Beagle Bone MDL и U-Boot продолжал давать сбой, прежде чем выяснить, что Bone! = Board. Угу ... У них немного разные карты памяти и это не одно и то же.

Так что пока я перестроил свои тестовые изображения для Board Beagle вместо Bone, и он действительно загружается с последней версией qemu-linaro!

К сожалению, OMAP 3 еще не включен в основной QEMU. Год назад был некоторый трафик списков рассылки по этому поводу, но, похоже, это никуда не делось. Не похоже, что было бы очень сложно добавить тип машины Beagle Bone Black, но этого еще не произошло.

person Anders    schedule 22.02.2016
comment
Спасибо за ответ. Я могу попробовать эмулировать BeagleBoard или BeagleBoardXM вместо BeagleBone. Могу ли я установить пакет Saucy qemu в моей версии Ubuntu? Как мне это сделать? (Извините, я новичок в этом). Какой URL-адрес я должен предоставить для apt-add-repository? - person Yevgeniy P; 24.02.2016
comment
Также из вашего ответа кажется, что вы смогли создать изображения. У меня тоже были проблемы с этим. Я разместил их на странице stackoverflow.com / questions / 35447773 /. У вас есть какие-нибудь указания, как это сделать правильно? - person Yevgeniy P; 24.02.2016
comment
Кроме того, что касается сборки qemu вместо его установки, я попытался следовать инструкциям в заголовке stackoverflow.com/questions/28564692/, однако моя машина находится за прокси, и мне не удалось заставить git работать с прокси. То есть я мог бы заставить его работать с протоколом http, но не с протоколом git, а некоторые из этих инструкций требуют протокола git. Можно ли это сделать без git? - person Yevgeniy P; 24.02.2016
comment
Что касается сборки qemu-linaro из исходного кода в Ubuntu 14.04, я сделал в основном то же самое, что и в ответе, который вы связали, за исключением того, что я не выполнил шаги, требующие подмодуля git для pixman и dtc. Мне пришлось запустить configure пару раз, и если это не удалось из-за отсутствия зависимости, я использовал apt-get install, чтобы добавить его. Например, мне пришлось apt-get install libpixman-1-dev и libftd-dev для зависимостей сборки. Если вы загрузите тарбол qemu-linaro, то да, я думаю, что это можно сделать без сетевого протокола git. - person Anders; 26.02.2016
comment
Часто вы также можете изменить адрес git clone для использования протоколов http или ssh. Например, если я застрял за брандмауэром http, вы также можете использовать вместо него URL http://anongit.freedesktop.org/git/pixman.git (см. cgit.freedesktop .org / pixman). Чтобы изменить его, отредактируйте файл .gitmodules и запустите git submodules sync. Затем действуйте как раньше. - person Anders; 26.02.2016
comment
Я увидел материал пакета linaro devpack и пришел к выводу, что я не хотел вдаваться в подробности. Меня больше всего интересовала игра с Yocto (yoctoproject.org) и запуск U-Boot в эмуляторе ( который работает!). Я выполнил шаги, описанные в очень полной документации yocto, и это включает добавление слоя meta-ti, который добавляет поддержку гончих. И очень мало документации о том, как отформатировать образ SD-карты для beagle, не говоря уже о том, чтобы загрузить его в qemu. Это сложнее, чем можно объяснить в комментариях. - person Anders; 26.02.2016
comment
Я бы определенно сказал, что создание и установка работающего Linux на одной из этих встраиваемых плат - сложная задача. Это отличный способ учиться, но ожидайте, что он будет медленным, и убедитесь, что вы понимаете каждый шаг, при необходимости поэкспериментируйте. Если вы действительно застряли, задавайте новые конкретные вопросы и, надеюсь, вы найдете помощь. Если у вас есть новый вопрос, который не привлекает внимания, вы можете ответить на него ссылкой, возможно, я пойму, но у меня ограниченное время на SO. - person Anders; 26.02.2016
comment
Поскольку с момента этого ответа прошло почти 4 года, мне интересно, изменилось ли что-нибудь. Я хотел бы подражать Beagle Bone Black. Кто-нибудь добился успеха в этом? - person Andrew; 10.11.2019
comment
@ Андрей, ты что-нибудь нашел? - person Mumphus; 17.01.2020
comment
К сожалению нет. - person Andrew; 18.01.2020