| Русский Русский | English English |
   
Главная Архив номеров
19 | 12 | 2024
10.14489/vkit.2023.03.pp.040-049

DOI: 10.14489/vkit.2023.03.pp.040-049

Сидякин И. М.
АВТОМАТИЗАЦИЯ СБОРКИ ОБРАЗА ВСТРАИВАЕМОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX В ВЫСОКОПРОИЗВОДИТЕЛЬНОМ ВЫЧИСЛИТЕЛЬНОМ КЛАСТЕРЕ
(с. 40-49)

Аннотация. Рассматривается методика автоматической компиляции бинарного образа операционной системы Linux для встраиваемых устройств в вычислительном кластере на основе технологии непрерывной интеграции и непрерывного развертывания, позволяющая существенно сократить время проектирования программного обеспечения, высвободить вычислительные ресурсы на локальных рабочих местах и организовать совместную работу над проектом команды разработчиков. Приведен практический пример настройки программных инструментов, необходимых для компиляции загрузчика, ядра и корневой файловой системы встраиваемой операционной системы Linux для миникомпьютера BeagleBone Black c процессором ARM семейства Cortex A8. Сформулированы требования к рабочему месту разработчика. Материалы статьи могут быть использованы для эффективной организации процесса проектирования системного программного обеспечения устройств Интернета вещей, а также в учебных целях.

Ключевые слова:  ARM; Embedded Linux; Yocto; Docker; CI/CD; GitLab; Git; встраиваемые операционные системы; системное программирование; загрузчик; ядро; корневая файловая система.

 

Sidyakin I. M.
AUTOMATING BUILD OF EMBEDDED LINUX BINARIES IN A HIGH-PERFORMANCE COMPUTING CLUSTER
(pp. 40-49)

Abstract. A method for automating the build process of the embedded Linux operating system binary images in a high-performance computing cluster based on continuous integration and continuous deployment technology is discussed. The method proposed can significantly reduce software design time, free up computing resources at local workstations and organize joint work on a team project. A practical example of setting up the software tools necessary to compile the boot-loader, embedded Linux kernel and root file system for BeagleBone Black device with an ARM Cortex A8 processor is provided. Basic requirements for the server and workstation software are formulated. The materials of the article can be used to organize system software design for Internet of Things devices effectively, as well as for educational purposes. Tools used to develop embedded operating systems based on Linux Yocto as well as GitLab source code management system and configuring of CI/CD feature are described. The build system environment proposed includes GitLab service installed on a high-performance virtual machine in a computing cluster and set of workstations connected to the local network. The project repository is physically located on the server and managed by GitLab service. Docker virtualization is used to isolate build process from the server operating system. Building of operating system image is started automatically using CI/CD runner script, every time changes to the source code of the project are made. Git protocol is used to modify project repository remotely. Intermediate compilation data is stored outside of the Docker sandbox to prevent data integrity between compilation events. This data includes a significant amount of third-party library source code downloaded from external Linux repositories on the Internet. Thus, rebuilding the project after making changes does not require a complete rebuild and reloading of library sources, and takes much less time. Requirements for the workplace of a development engineer are minimized because the main computing load is transferred to a remote server. The proposed method of building an image of the Linux Yocto operating system allows manage team to work on a project and significantly increases the speed of the project rebuild procedure, therefore, reduces the time spent on designing and debugging system software for embedded systems. The effectiveness of the proposed method was confirmed practically with sample project Linux Yocto for the BeagleBone Black minicomputer based on the ARM Cortex A8 processor. The article contains examples of settings taken from this project. The proposed method can be used to study design of system software for embedded systems. Handson training sessions are a good example of team-based software development in a time-constrained environment.

Keywords: ARM; Embedded Linux; Yocto; Docker; CI/CD; GitLab; Git; Bootloader; Kernel; Root File System.

Рус

И. М. Сидякин (Московский государственный технический университет имени Н. Э. Баумана (национальный исследовательский университет), Москва, Россия) E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript  

Eng

I. M. Sidyakin (Bauman Moscow State Technical University (National Research University), Moscow, Russia) E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript  

Рус

1. Yocto Project. Сайт. URL: https://www. yoctoproject.org/ (дата обращения: 26.09.2022).
2. GitLab. Сайт. URL: https://about.gitlab.com/ (дата обращения: 26.09.2022).
3. BeagleBone Black. Сайт. URL: https:// beagleboard.org/black (дата обращения: 26.09.2022).
4. GitHub. Yocto Project. Сайт. URL: https://github. com/yoctoproject (дата обращения: 26.09.2022).
5. Install Self-Managed GitLab. Сайт. URL: https:// about.gitlab.com/install/ (дата обращения: 26.09.2022).
6. GitLab CI/CD. Сайт. URL: https://docs.gitlab. com/ee/ci/ (дата обращения: 26.09.2022).
7. Get Started with GitLab CI/CD. Сайт. URL: https://docs.gitlab.com/ee/ci/ (дата обращения: 26.09.2022).
8. Docker. Сайт. URL: https://www.docker.com/ resources/what-container/ (дата обращения: 26.09.2022).
9. Install Docker Engine on Ubuntu. Сайт. URL: https://docs.docker.com/engine/install/ubuntu/ (дата обращения: 26.09.2022).
10. The Docker Executor. Сайт. URL: https://docs. gitlab.com/runner/executors/docker.html (дата обращения: 26.09.2022).
11. Docker Hub. Сайт. URL: https://hub.docker.com/ (дата обращения: 26.09.2022).
12. Git Downloads. Сайт. URL: https://git-scm.com/ downloads (дата обращения: 26.09.2022).
13. CLion. Сайт. URL: https://www.jetbrains.com/ ru-ru/clion/ (дата обращения: 26.09.2022).
14. Qt Creator. Сайт. URL: https://www.qt.io/ product/development-tools (дата обращения: 26.09.2022).
15. Visual Studio Code. Сайт. URL: https://code. visualstudio.com (дата обращения: 26.09.2022).
16. Git. Сайт. URL: https://git-scm.com (дата обращения: 26.09.2022).

Eng

1. Yocto Project. Available at: https://www.yocto-project.org/ (Accessed: 26.09.2022).
2. GitLab. Available at: https://about.gitlab.com/ (Accessed: 26.09.2022).
3. Beagle Bone Black. Available at: https://beagle-board.org/black (дата обращения: 26.09.2022).
4. GitHub. Yocto Project. Available at: https://github. com/yoctoproject (Accessed: 26.09.2022).
5. Install Self-Managed GitLab. Available at: https:// about.gitlab.com/install/ (Accessed: 26.09.2022).
6. GitLab CI/CD. Available at: https://docs.gitlab. com/ee/ci/ (Accessed: 26.09.2022).
7. Get Started with GitLab CI/CD. Available at: https://docs.gitlab.com/ee/ci/ (Accessed: 26.09.2022).
8. Docker. Available at: https://www.docker.com/ resources/what-container/ (Accessed: 26.09.2022).
9. Install Docker Engine on Ubuntu. Available at: https://docs.docker.com/engine/install/ubuntu/ (Accessed: 26.09.2022).
10. The Docker Executor. Available at: https://docs. gitlab.com/runner/executors/docker.html (Accessed: 26.09.2022).
11. Docker Hub. Available at: https://hub.docker.com/ (Accessed: 26.09.2022).
12. Git Downloads. Available at: https://git-scm.com/ downloads (Accessed: 26.09.2022).
13. CLion. Available at: https://www.jetbrains.com/ ru-ru/clion/ (Accessed: 26.09.2022).
14. Qt Creator. Available at: https://www.qt.io/ product/development-tools (Accessed: 26.09.2022).
15. Visual Studio Code. Available at: https://code. visualstudio.com (Accessed: 26.09.2022).
16. Git. Available at: https://git-scm.com (Accessed: 26.09.2022).

Рус

Статью можно приобрести в электронном виде (PDF формат).

Стоимость статьи 500 руб. (в том числе НДС 20%). После оформления заказа, в течение нескольких дней, на указанный вами e-mail придут счет и квитанция для оплаты в банке.

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

Для заказа скопируйте doi статьи:

10.14489/vkit.2023.03.pp.040-049

и заполните  форму 

Отправляя форму вы даете согласие на обработку персональных данных.

.

 

Eng

This article  is available in electronic format (PDF).

The cost of a single article is 500 rubles. (including VAT 20%). After you place an order within a few days, you will receive following documents to your specified e-mail: account on payment and receipt to pay in the bank.

After depositing your payment on our bank account we send you file of the article by e-mail.

To order articles please copy the article doi:

10.14489/vkit.2023.03.pp.040-049

and fill out the  form  

 

.

 

 

 
Поиск
Rambler's Top100 Яндекс цитирования