1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/QQxiaoming-quard_star_tutorial

Клонировать/Скачать
README.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 13:00 de1d109

Создание встроенной системы Linux на основе QEMU

Что такое Quard Star?

Quard Star — это название аппаратной платы, которую мы моделируем с помощью QEMU. Это процессор RISC-V с различными периферийными устройствами и контроллерами. Мы будем использовать эту плату, чтобы научиться создавать и запускать встроенную систему Linux с нуля.

Аппаратная архитектура:

Рисунок 1: Аппаратная архитектура

Поток программного обеспечения:

Рисунок 2: Поток программного обеспечения

Распределение памяти:

Рисунок 3: Распределение памяти

Особенности

  • Настроенный симулятор QEMU с поддержкой платы Quard Star.
  • Низкоуровневый загрузочный код и маска ROM.
  • Загрузчики OpenSBI и U-Boot.
  • Ядро Linux и дерево устройств.
  • Файловая система root на базе Busybox.
  • Графический пользовательский интерфейс на основе Qt.
  • Доверенный домен и безопасная загрузка.
  • Инструменты и скрипты для отладки.

Необходимые условия

Чтобы создать и запустить этот проект, вам потребуются следующие инструменты:

  • Компиляторы gcc и g++.
  • Утилиты make и cmake.
  • Система управления версиями git.
  • Эмулятор QEMU.
  • Компилятор дерева устройств dtc.
  • Интерпретатор Python3.

Вы можете установить их с помощью диспетчера пакетов. Например, в Ubuntu 20.04 вы можете выполнить следующую команду:

sudo apt-get update
sudo apt install ninja-build pkg-config libglib2.0-dev libpixman-1-dev libgtk-3-dev libcap-ng-dev libattr1-dev libsdl2-dev device-tree-compiler bison flex gperf intltool mtd-utils libpulse-dev libalsa-ocaml-dev libsdl2-dev libslirp-dev

Установка

Чтобы установить этот проект, вы можете клонировать этот репозиторий с помощью git:

git clone https://github.com/QQxiaoming/quard_star_tutorial.git

Затем вы можете запустить build.sh. Скрипт для компиляции симулятора QEMU и других компонентов:

cd quard_star_tutorial
./build.sh all all

Это создаст выходной каталог со всеми двоичными файлами и файлами, необходимыми для запуска проекта.

Использование

Чтобы запустить проект, вы можете использовать скрипт run.sh:

./run.sh graphic

Это запустит симулятор QEMU с платой Quard Star и загрузит систему Linux. Вы должны увидеть графический пользовательский интерфейс в новом окне.

Вы также можете использовать некоторые параметры командной строки для настройки запуска. Например:

./run.sh nographic

Для получения более подробной информации о том, как использовать эти параметры, обратитесь к файлам учебника.

Учебник

Этот проект поставляется с серией файлов учебника, которые объясняют каждый шаг создания и запуска встроенной системы Linux на основе QEMU. Вы можете найти их в каталоге учебника. Они доступны на китайском языке.

Файлы учебника охватывают следующие темы:

  • Настройка среды QEMU;
  • Написание низкоуровневого загрузочного кода и маски ROM;
  • Использование загрузчика OpenSBI и U-Boot;
  • Компиляция ядра Linux и дерева устройств;
  • Создание корневой файловой системы и загрузочного образа;
  • Разработка графического пользовательского интерфейса с помощью Qt;
  • Реализация доверенного домена и безопасной загрузки;
  • Отладка с помощью gdb и kgdb.

Вы также можете получить доступ к учебнику онлайн в моём блоге или на read the docs.

Вклад

Этот проект является открытым исходным кодом и приветствует вклад от всех, кто заинтересован в изучении или преподавании разработки встроенных систем Linux. Если вы хотите внести свой вклад, пожалуйста, выполните следующие шаги:

  1. Форкните этот репозиторий на GitHub.
  2. Создайте новую ветку для вашей функции или исправления ошибки.
  3. Внесите изменения и зафиксируйте их с чёткими сообщениями.
  4. Отправьте свою ветку в свой форкнутый репозиторий.
  5. Создайте запрос на вытягивание из своей ветки в основной репозиторий.
  6. Дождитесь проверки и обратной связи.

Пожалуйста, убедитесь, что ваш код соответствует стилю кодирования и соглашениям этого проекта. Также, пожалуйста, пишите комментарии и документацию для своего кода.

Лицензия

В этом проекте используются некоторые проекты с открытым исходным кодом в качестве компонентов или ссылок. Я хотел бы поблагодарить и отметить их авторов и участников за их отличную работу. Поэтому вновь добавленные коды каждой части соответствуют лицензии исходного проекта. Остальная часть исходного кода имеет лицензию с открытым исходным кодом BSD-3-Clause License. Подробнее см. в файле LICENSE.

Контакты

Если у вас есть какие-либо вопросы, предложения или отзывы об этом проекте, пожалуйста, не стесняйтесь обращаться ко мне по адресу 2014500726@smail.xtu.edu.cn или оставить комментарий в моём блоге.

Дальнейшее чтение

Если вы хотите узнать больше о процессе разработки и проблемах этого проекта, вы можете проверить мой файл заметок о разработке DEVELOPNOTE.md. Он содержит некоторые идеи и советы о том, как я построил и отладил этот проект.😎

Примечание: Этот проект также имеет экспериментальную ветку под названием next-kernel, которая использует новейшее ядро Linux из linux-next. Она используется для изучения и тестирования новых функций и возможностей. Она может быть нестабильной или несовместимой с некоторыми компонентами. Вы можете переключиться на эту ветку с помощью git checkout next-kernel, если вам интересно, но будьте осторожны и сообщайте о любых проблемах или ошибках, с которыми вы сталкиваетесь.😉

Спасибо

Я хотел бы выразить признательность AI-инструменту (New Bing) за помощь в написании части этого файла readme.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/QQxiaoming-quard_star_tutorial.git
git@api.gitlife.ru:oschina-mirror/QQxiaoming-quard_star_tutorial.git
oschina-mirror
QQxiaoming-quard_star_tutorial
QQxiaoming-quard_star_tutorial
main