LINUX.ORG.RU

Как включить графику или хотя бы текстовый цветной режим?

 , , ,


1

2

По этой восхитительной инструкции https://translatedcode.wordpress.com/2017/07/24/installing-debian-on-qemus-64... затащил Debian 10 arm64 (aarch64) на qemu. Правда установить нормально удалось только под Linux, к тому же по инструкции там нужно выдрать ядро и инитрамфс при помощи утилит, которые есть лишь в Linux. Слава Linux-у.

Когда я запускаю в инсталлятор среде konsole на Linux то у меня есть цветная консоль, правда только в инсталляторе, в рабочей системе всё черно белое.

В оффтопе, а чтобы нести ARM и Linux в массы я вынужден сначала это дать при помощи QEMU 64-bit для Windows, и тем более консоль паршивая, там даже черно белый режим тошнотен, работать даже в mc невозможно, нереально даже.

Получается запустить только в nographic режиме, что в Linux что в Windows, SDL GTK отрисовка или не работает или не показывает ничего. Всё пробовал. Как получить графику, а мне хотя бы консоль цветную нормальную???

P.S. Пробовал через PowerShell будь он проклят, не понимает тоже символы раскраски консоли.

P.P.S. Пробовал QEMU окошко режим serial0, что странно, оно загружает Debian с цветными строками. Когда система стартовала - только ЧБ режим и тошнотные поехавшие псевдографические символы, всё не так как ожидается и работать тоже невозможно!

qemu\qemu-system-aarch64 -M virt -m 256 -cpu cortex-a53 -kernel vmlinuz-4.9.0-11-arm64 -initrd initrd.img-4.9.0-11-arm64 -append "rootwait root=/dev/vda2" -drive if=none,file=hda.qcow2,format=qcow2,id=hd -device virtio-blk-pci,drive=hd -netdev user,id=mynet -device virtio-net-pci,netdev=mynet

Кстати без rootwait не находит корень и валится. Сеть работает, интернет есть софт ставить, но текстовый режим является огромной проблемой, пользоваться невозможно, текст редактировать нельзя толком, даже mc не отображается даже в чб режиме.

update: Тема решена, вот ссылка на решение Как включить графику или хотя бы текстовый цветной режим? (комментарий) После установки, достаточно убрать -drive file=debian-10.1.0-arm64-netinst.iso,if=none,format=raw,id=iso -device usb-storage,drive=iso и оно будет стартовать с основного носителя.

Ничего не понял. Почему QEMU под виндой? Там же встроенный хайпер-в. И консоль понимает esc-последовательности, в powershell вместо \033 $([char]27).

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

Уже страдаю - нет нормальной консоли даже в Linux у QEMU, ты тему читал? Воообще я бисексуал - могу и с линукс и с виндовс. Заметь, внутри QEMU сидит Debian Linux arm64 - это суперкошерно

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от fsb4000

Спасибо за интересную наводку, но я переживаю что надо на win7, и вообще хотелось бы это в архив затолкать, поэтому онлайн установка не подходит. Надеюсь можно будет скачать откуда то portable-версию

update: скачал вручную, распаковал архив, вижу «экзе», вечером попробую, надеюсь заработает

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
qemu-system-aarch64 -machine virt \
    -cpu cortex-a72 -smp 2 -m 1024 -vga none -device ramfb \
    -device virtio-rng-device,rng=urandom \
    -object rng-random,filename=/dev/urandom,id=urandom \
    -device qemu-xhci -device usb-kbd -device usb-tablet \
    -pflash edk2-aarch64-code.fd -pflash edk2-aarch64-vars.fd \
    -drive id=vda,file=vda.dsk,if=none,format=raw \
    -device virtio-blk-device,drive=vda \
    -device virtio-net-device,netdev=br,mac=52:54:00:c1:7b:b7 \
    -netdev bridge,id=br,br=br0 \

Для подключения инсталлятора, добавить:

    -drive file=debian-10.1.0-arm64-netinst.iso,if=none,format=raw,id=iso \
    -device usb-storage,drive=iso

При запуске в GRUB поменять параметры ядра, добавить console=tty0

edk2-aarch64-code.fd - есть в Arch, лежит в /usr/share/qemu, скопировать оттуда.

edk2-aarch64-vars.fd - создать через qemu-img create edk2-aarch64-vars.fd 64M

После установки, чтобы получить более высокое разрешение, или если надо что-то поправить в настройках UEFI, -device ramfb можно заменить на -device virtio-gpu-pci.

AEP ★★★★★ ()
Ответ на: комментарий от fsb4000

Запустил через cmdrmini и действительно, стало влезать много текста при загрузке системы, есть цветной текст. Но как только система загружена - mc htop и прочие утилиты скатываются в такой же трэш как и cmd.exe чернобелый, хотя это получше, потому что htop например уже нормально там отображается в ЧБ режиме

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от AEP

Это -vga none -device ramfb не помогает при -append «rootwait root=/dev/vda2 console=tty0». Наверное это работает только если при установке был такой режим? Придется переустанавливать?

Нет способа заставить отображать нормальную консоль для уже установленной системы, заставить ее цеплять, а то так даже serial0 текст в консоли пропал. Я применяю самый последний qemu на винде из официального бинаря, и последний же qemu собрал на Linux из исходников

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от AEP

Не работает:

qemu\qemu-system-aarch64 -M virt -m 256 -cpu cortex-a53 -kernel vmlinuz-4.9.0-11-arm64 -initrd initrd.img-4.9.0-11-arm64 -append "rootwait root=/dev/vda2 console=tty0" -drive if=none,file=hda.qcow2,format=qcow2,id=hd -device virtio-blk-pci,drive=hd -netdev user,id=mynet -device virtio-net-pci,netdev=mynet -vga none -device virtio-gpu-pci -device qemu-xhci -device usb-kbd -device usb-tablet -pflash qemu\edk2-aarch64-code.fd
После добавления pflash стало ну хоть что-то показывать в serial0. А вот на экране «guest disabled display» по прежнему

Что теперь делать? Попробовать переустановить с нуля?

Кстати файла edk2-aarch64-vars.fd у меня нет ни под Windows ни под Linux. Может из за его нехватки и не срабатывает как надо?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Кстати файла edk2-aarch64-vars.fd у меня нет ни под Windows ни под Linux. Может из за его нехватки и не срабатывает как надо?

Тут несколько проблем. Ты путаешь несколько рабочих вариантов настройки, которые при смешивании дают лажу.

  1. Путаница ramfb и virtio-gpu-pci.

  2. Путаница UEFI и прямой передачи ядра эмулятору.

Ограничения по работоспособности, о которых надо знать:

  • ramfb работает только в паре с UEFI;
  • UEFI - это edk2-aarch64-code.fd, ему еще нужен edk2-aarch64-vars.fd, содержащий 64 мегабайта нулей;
  • прямая передача ядра через -kernel несовместима с UEFI;
  • инсталлятор debian не поддерживает virtio-gpu-pci, но поддерживает efifb и поэтому работает с устройством ramfb;
  • установленная система по идее должна поддерживать virtio-gpu-pci, но у тебя это по непонятной причине не работает.

Так что да, советую переставить по хорошему на UEFI.

Если все еще непонятно, контакты в профиле, пиши, разберемся.

AEP ★★★★★ ()
Ответ на: комментарий от AEP

инсталлятор debian не поддерживает virtio-gpu-pci, но поддерживает efifb и поэтому работает с устройством ramfb

Понял. Воспользуюсь описанными выше рекомендациями, сделаю dd if=/dev/zero bs=1M count=64 для создания 64 мегабайта нулей. Попробую установить с нуля, и если сразу подцепится ramfb то и в рабочей системе я через него сидеть буду

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Появилась графическая консоль и работает GRUB, но установка Debian не стартует

Стартует она, просто на последовательном порту. Дебиановцы так сделали по умолчанию, поскольку ARM-устройств с работающим видеовыходом очень и очень мало. Чтобы таки уговорить инсталлятор показать что-либо не на последовательном порту, надо через GRUB в аргументы ядра добавить console=tty0.

AEP ★★★★★ ()
Ответ на: комментарий от AEP

Итоговая рабочая конфигурация:

qemu\qemu-system-aarch64 -machine virt -cpu cortex-a72 -smp 2 -m 512 -vga none -device ramfb -device qemu-xhci -device usb-kbd -device usb-tablet -pflash qemu\edk2-aarch64-code.fd -pflash qemu\edk2-aarch64-vars.fd -drive id=vda,file=ssd.qcow2,if=none,format=qcow2 -device virtio-blk-device,drive=vda -netdev user,id=mynet -device virtio-net-pci,netdev=mynet -drive file=debian-10.1.0-arm64-netinst.iso,if=none,format=raw,id=iso -device usb-storage,drive=iso
Действительно, запустив GRUB и нажав «e» над опцией Install я дописал после quiet строку console=tty0 и затем Ctrl+x. После этого инсталлятор запустился! Напомню читающим, что edk2-aarch64-vars.fd это просто 64*1024*1024 нулей (dd if=/dev/zero of=edk2-aarch64-vars.fd bs=1M count=64).

Установку я не завершил пока что, но почему-то кажется что всё будет нормально и во время установки. Посмотрим, запустится ли оно без ISO потом, но пока что всё хорошо.

Благодарю за помощь! Это поможет надеюсь другим последователям, желающим поработать с aarch64 в симуляторе. С трудом представляю сколько недель бы у меня это заняло чтобы дойти до такого результата самостоятельно... И этот vars.fd и это uefi и многое другое типа tty0, у меня просто не было шансов меньше чем за месяц это преодолеть и не сдаться. Эта помощь ценна, в интернете не было ничего толком, что помогло бы с графикой, хотя чисто консольную установку Debian aarch64 я нашел и осилил запустить, но графику...

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 2)