LINUX.ORG.RU

кто-нибудь запускал plan9 для RPi под QEMU?

 , , ,


0

2

Что-то не гуглится строка запуска. Меня больше всего интересует raspberry pi 2. На железке всё запускается и работает. На QEMU пока только доходит до показа объёма доступной памяти.

★★★★★

Ответ на: комментарий от t184256

Это я от скромности. Но если спрашиваешь, то тебе с особенным удовольствием отвечу:

Строка здесь:

http://вече.программирование-по-русски.рф/viewtopic.php?f=5&t=490&p=3322#p3322

Сама по себе она такая:

cd /y/vb_share/plan9 && /y/qemu0/arm-softmmu/qemu-system-arm -M raspi2 -kernel unpacked/9pi2 -sd 9pi.img

Но это не обычный QEMU, а специальный, см. по ссылке.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

особенная строка нужна по той причине, что на самом деле QEMU не умеет эмулировать RPi, нужны либо костыли в ядре загружаемой ОС, либо особые строки запуска. Эмуляторов RPi несколько - raspi2, raspi3 и versatilepb, у них есть история развития и гниения, также есть разные прошивки, работающие по разному (начиная с того, что инициализация UART должна делаться по-разному в зависимости от версии прошивки). Т.е. там полно деталей и когда отступаешь от мейнстрима, сразу легко потонуть.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

как вариант, попробуй каким-нибудь contig/wincontig под виндой (под онтопиком даже не знаю чем) файл с образом виртуалки дефрагментировать. чтобы он был непрерывный, одним куском, без фрагментов.

anonymous ()

Вот как выглядил бы этот же пример на русском языке:

Я содрогнулся.
На русском не так, поверь мне. Как филолог филологу вопию в пустыне. Поправь, не позорь память предков.
Линк дать или сам найдёшь, где в столбик шириной 640 окошко от избушки моей бабушки нарисовано?

Brillenschlange ()

Извини, меня покорёжило чутка, но потом я глотнул баварского Балтики 3 и продолжил чтение.
Содрогнулся ещё раз через абзац от В том числе, тут есть и комментарии...
Запятую убери, пожалуйста. Хотя чуть выше есть но без оной. Если убирать не хочешь из принципа, то просто передвинь.
Понимаю, что мозг несколько испорчен зловещими англицизмами, но если уж ты назвал сайт программирование-по-русски.рф, то есть смысл всех этих неумёх научить и русскому заодно, а у тебя прям какая-то диверсия получается.

Brillenschlange ()

Долбаный стыд. Ну зачем ты так со мной и с моей филологией?

Мы разрабатываем такой пример - систему ЯОС, переводя швейцарскую систему A2, созданной в школе Вирта

Я начинаю что-то подозревать. Например то, что твой текст это автоперевод падежов и окончаниев с южно-уйгурского.
Гюльчатай, открой личико! Откуда переводные дровишки?

Brillenschlange ()
Ответ на: комментарий от den73

В общем, я пока отложил эту идею. Если вдруг кому-то понадобится, то я брал форк QEMU, в котором впервые была добавлена машина raspi2. Потом этот форк включили в основной репозиторий qemu и частично изуродовали, поэтому я запускал вот этот вариант:

https://github.com/budden/qemu/commit/4428307138ef8b1d8be64944b51a4adc15c84840

В исходном репозитории есть рецепт запуска Linux, вот он:

Note (June 2018): the bulk of the raspi2 emulation and Windows-related fixes were upstreamed to mainline QEMU years ago. There is no reason to be using this code unless you really care about (1) the raspi1 machine or (2) the very flaky and incomplete USB host emulation.
...
The main focus of this work is supporting Windows on Pi2, but it's also possible to boot a recent version of Raspbian using a command such as:
qemu-system-arm -M raspi2 -kernel raspbian-boot/kernel7.img -sd 2015-09-24-raspbian-jessie.vhd -append "rw earlyprintk loglevel=8 console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2" -dtb raspbian-boot/bcm2709-rpi-2-b.dtb -usbdevice mouse -usbdevice keyboard -serial stdio

Note that it is necessary to first comment out the contents of /etc/ld.so.preload to avoid executing an unimplemented SETEND instruction. There are also a number of errors and warnings, that I haven't attempted to debug.

Rasberry Pi 1 support is also still present, but has bit-rotted somewhat. It is possible to boot older versions of Raspbian up to 2014-09-09-wheezy, but there is an unresolved issue with interrupt timeouts on the SD card I/O, so it takes a very long time. Newer versions fail to boot entirely due to a kernel-mode setend instruction (apparently introduced by this commit) which qemu does not support.

она доходит до «rescue shell» или как его там называют, и что-то показывает в lsusb. Однако графический режим не работает.

Очень важно брать версию firmware из того же времени. Если версия более поздняя, то второй (не-mini) UART не запустится. Кроме того, в этой версии отдельно обрабатываются elf файлы и не elf. Считается, что если elf - то это bare-metal проект, а если бинарный образ - это это Linux. Соответственно, по разному происходит загрузка.

В общем и целом, без вникания во все детали тут особо делать нечего.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Кстати, есть и другие форки у данного форка, например,

https://github.com/smuehlst/qemu - сделан специально для низкоуровневой работы с raspberry pi

В прошлом сообщении последний абзац требует разъяснения: в plan9 UART вообще не заработал, и там не нужно никакого firmware - она всё своё несёт с собой. Вообще, для RPi фирмваре берётся с загрузочной флешки. Я говорю про другие «голометаллические» проекты для RPi. В частности, ядро A2 запустилось на RPi (на железной) только после того, как я взял своевременную версию прошивки (об этом есть на моём форуме).

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

до кучи, если кому интересно

~moody/barebones9

This is a barebones kernel inspired by the OSdev wiki designed to be a good starting point for kernel tinkering on 9front. There are no requirments for compiling and creating the cdrom iso outside of standard 9front utilities.

пример своего ядра «на голом железе», разрабатываемом из-под plan9

anonymous ()