Journal influence
Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)
Bookmark
Next issue
№3
Publication date:
16 September 2025
Methods of developing graphics subsystem drivers
Date of submission article: 28.04.2018
UDC: 004.454
The article was published in issue no. № 3, 2018 [ pp. 425-429 ]Abstract:The paper describes problems of software development for the problems of interaction between systems-on-a-chip (SoC) and the Linux operating system (OS). The OS architecture provides various instruments for creating a driver that is a component allowing the device data exchange using a software interface. The development of drivers for an open source OS is difficult due to continuous changes in functions and a kernel structure. The paper describes graphics subsystem structure and components. The subsystem is a component kit located in different address spaces of OS virtual storage. The components interact through a system call interface. Programming of a graphics engine is performed by filling a command buffer. Each application has a graphics engine context that contains its own command buffer and all necessary data used by the graphics engine for rendering/calculations: coordinates, normal vectors, colors, textures. There are several approaches to setting graphics mode. However, the most reasonable solution is using KMS module (Kernel Mode Setting). Key manufacturers of microprocessors and graphics cards commonly use these modules. It is necessary to ensure the interaction between OS kernel modules and user space through creating own specific system calls. These system calls regulate low-level operations with the device and allow taking full advantage of the graphics unit capabilities. Using FPGA-based prototyping platforms allows verifying software functionality, getting performance characteristics and finding errors in SoC hardware design at early stages. Debugging kernel modules is time-consuming due to limitations imposed both by a prototyping platform and the OS. In addition, the errors in a kernel code are difficult to reproduce, which also complicateы debugging of kernel modules. The paper considers some approaches to implementation of Linux OS KMS module and graphics subsystem components, which provide correct interaction of the OS and the SoC display controller.
Аннотация:В статье описаны проблемы разработки ПО для задач взаимодействия систем на кристалле и ОС Linux. Архитектурой ОС предусмотрено создание драйвера – компонента, обеспечивающего прием и передачу данных устройства с использованием программного интерфейса. Разработка драйверов для ОС с открытым исходным кодом затрудняется из-за непрерывных изменений функций и структуры ядра. Описаны структура и составные части графической подсистемы, представляющей собой набор компонентов, находящихся в разных адресных пространствах доступа виртуальной памяти ОС и взаимодействующих между собой, в том числе посредством интерфейса системных вызовов. Программирование графического ядра выполняется при помощи заполнения буфера команд: для каждого приложения создается контекст графического ядра, содержащий свой командный буфер и все необходимые данные, используемые графическим ядром для отрисовки/расчетов, – координаты, векторы нормали, цвета, текстуры. Существуют несколько подходов к установке графического режима, однако наиболее оправданным решением является применение модуля KMS (Kernel Mode Setting), который используется ключевыми производителями микропроцессоров и графических карт. Для полной реализации возможностей графического ядра необходимо обеспечить взаимодействие модулей ядра ОС и пространства пользователя посредством создания собственных системных вызовов, регламентирующих низкоуровневую работу с устройством. Применение платформ прототипирования на основе FPGA-матриц позволяет проверить работоспособность ПО, получить некоторые характеристики производительности и выявить ошибки в системе на кристалле на ранних стадиях проектирования. Отладка модулей ядра занимает значительное время в силу ограничений, накладываемых со стороны как платформы для прототипирования, так и ОС. Кроме того, ошибки, возникающие в коде ядра, трудновоспроизводимы, что также затрудняет отладку модулей ядра. В статье рассмотрены подходы к реализации KMS-модуля и компонентов графической подсистемы ОС Linux, которые позволяют обеспечить корректное взаимодействие ОС и контроллера вывода на экран системы на кристалле.
Authors: Efremov I.A. (i350300800e@gmail.com) - FGU FNTS NIISI RAS, Moscow, Russia, , Mamrosenko K.A. (kirillam@ya.ru) - SRISA RAS, Moscow, Russia, Ph.D, Reshetnikov V.N. (rvn_@mail.ru) - Center of Visualization and Satellite Information Technologies SRISA (Professor, Supervisor), Moscow, Russia, Ph.D | |
Keywords: gpu, driver, linux, soc, development, kernel module |
|
Page views: 14702 |
PDF version article Full issue in PDF (29.03Mb) |
Методы разработки драйверов графической подсистемы
DOI: 10.15827/0236-235X.123.425-429
Date of submission article: 28.04.2018
UDC: 004.454
The article was published in issue no. № 3, 2018. [ pp. 425-429 ]
The paper describes problems of software development for the problems of interaction between systems-on-a-chip (SoC) and the Linux operating system (OS). The OS architecture provides various instruments for creating a driver that is a component allowing the device data exchange using a software interface. The development of drivers for an open source OS is difficult due to continuous changes in functions and a kernel structure.
The paper describes graphics subsystem structure and components. The subsystem is a component kit located in different address spaces of OS virtual storage. The components interact through a system call interface. Programming of a graphics engine is performed by filling a command buffer. Each application has a graphics engine context that contains its own command buffer and all necessary data used by the graphics engine for rendering/calculations: coordinates, normal vectors, colors, textures.
There are several approaches to setting graphics mode. However, the most reasonable solution is using KMS module (Kernel Mode Setting). Key manufacturers of microprocessors and graphics cards commonly use these modules. It is necessary to ensure the interaction between OS kernel modules and user space through creating own specific system calls. These system calls regulate low-level operations with the device and allow taking full advantage of the graphics unit capabilities.
Using FPGA-based prototyping platforms allows verifying software functionality, getting performance characteristics and finding errors in SoC hardware design at early stages. Debugging kernel modules is time-consuming due to limitations imposed both by a prototyping platform and the OS. In addition, the errors in a kernel code are difficult to reproduce, which also complicateы debugging of kernel modules.
The paper considers some approaches to implementation of Linux OS KMS module and graphics subsystem components, which provide correct interaction of the OS and the SoC display controller.
Efremov I.A. (i350300800e@gmail.com) - FGU FNTS NIISI RAS, Moscow, Russia, , Mamrosenko K.A. (kirillam@ya.ru) - SRISA RAS, Moscow, Russia, Ph.D, Reshetnikov V.N. (rvn_@mail.ru) - Center of Visualization and Satellite Information Technologies SRISA (Professor, Supervisor), Moscow, Russia, Ph.D
Ссылка скопирована!
Permanent link: http://swsys.ru/index.php?page=article&id=4480&lang=en |
Print version Full issue in PDF (29.03Mb) |
The article was published in issue no. № 3, 2018 [ pp. 425-429 ] |
The article was published in issue no. № 3, 2018. [ pp. 425-429 ]
Perhaps, you might be interested in the following articles of similar topics:Perhaps, you might be interested in the following articles of similar topics:
- Особенности применения предметно-ориентированных языков для тестирования веб-приложений
- Генерация компиляторов мультисинтаксических языков программирования мультиверсионных систем
- Некоторые технологические аспекты создания учебно-тренировочных средств подготовки командиров и специалистов Военно-морского флота
- Технология разработки систем поддержки научных исследований
- Подходы к обеспечению визуализации данных на устройствах с использованием современных операционных систем реального времени
Back to the list of articles