Создайте минимальную систему со встроенным Qt и запустите Qemu для x86.

Моя цель: попытаться

  • Создайте минимальную систему графического интерфейса пользователя на основе Qt с одним окном и датчиком, подключенным к USB.
  • продемонстрируйте это с помощью Qemu, а затем на встроенной плате с атомом
  • построить его с нуля
  • Используйте buildroot для сборки корневой файловой системы

Мой опыт У меня есть опыт разработки ядра Linux для драйверов устройств, qemu, Buildroot, USB, но нет опыта работы с графическим интерфейсом и кадровыми буферами.

Мои попытки: собрать ядро ​​и корневую файловую систему.

  • с помощью buildroot с помощью команды make qemu_x86_defconfig
  • Поддержка кадрового буфера в ядре Linux включена вместе со следующими CONFIG_FB, CONFIG_FRAMEBUFFER_CONSOLE и CONFIG_LOGO (все параметры ниже также включены)

В качестве первой вехи я ожидал увидеть логотип TUX при запуске образа с помощью команды qemu-system-i386 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2 -append root=/dev/sda -vga std, но я этого не сделал.

Я ошибаюсь в команде Qemu или фреймбуфер не включен?

P.S. Аналогичный вопрос GUI приложения Qt - автоматический запуск - linux. Но я не планирую использовать окно X, как предлагает большинство пользователей.


person Prajosh Premdas    schedule 27.02.2014    source источник


Ответы (2)


Я пропустил драйвер видеокарты cirrus. Qemu эмулирует карту Cirrus CLGD 5446 PCI VGA или фиктивную карту VGA с расширениями Bochs VESA (аппаратный уровень, включая все нестандартные режимы для i386.

Итак, шаги:

  1. Скачать корень сборки
  2. make clean
  3. make qemu_x86_defconfig
  4. make linux-menuconfig настроить ядро ​​и в Device drivers->Graphics support->Support for frame buffer devices включить Cirrus Logic support
  5. Сохраните конфигурацию и запустите make
  6. После завершения make запустите команду в board/qemu/x86/readme.txt
person Prajosh Premdas    schedule 28.02.2014
comment
Поделитесь своим .config , версией buildroot и версией QEMU, если они у вас еще есть :-) - person Ciro Santilli 新疆再教育营六四事件ۍ 03.09.2016

Где вы увидели, что в Buildroot есть i386_defconfig? Кажется, вы путаете defconfigs ядра и defconfigs Buildroot. Я бы порекомендовал вам начать с:

  make clean
  make qemu_x86_defconfig
  make

а затем прочитайте board/qemu/x86/readme.txt, чтобы узнать, как запустить сгенерированную систему.

person Thomas Petazzoni    schedule 27.02.2014
comment
Извините, это была опечатка. Я использовал qemu_x86_defconfig - person Prajosh Premdas; 27.02.2014