Установка и настройка wiringRP в RepkaOS с патчем RT (ядро 6.1.11-rt7-sunxi)
Примечание: все команды выполняются в консоли от пользователя root
(или пишем sudo перед каждой командой)!.
Записываем на карту памяти образ дистрибутива
Repka OS RT (Real Time).
Запускаем устройство, обновляем пакеты командой
apt update & apt upgrade.
Важно! Для работы wiringRP на RepkaOS с RT патчем (ядро 6.1.11-rt7) необходимо исправить сборку, путем обновления ядра ОС. Для этого выполните следующие шаги:
1. Скачайте последнюю версию утилиты repka-config (
скачать).
2. Откройте каталог загрузки с скопируйте файл repka-config.sh в каталог /boot с заменой.
3. Установите на файл атрибут "исполняемый"
chmod +x repka-config.sh
4. Запустите утилиту ./config-repka.sh (или просто config-repka)
Далее выбираем по порядку пункты в диалогах утилиты...
а) System Options
б) S1 Select-kernel
в) Жмем OK
г) Kernel-3 6.1.11-rt7-sunxi (с патчем PREEMPT_RT)
д) Жмем Выбрать / Select
е) Ждем установки пакетов, перезагружаемся.
Если при обновлении ядра (установки пакетов) возникли ошибки - пишем техподдержке!
После перезагрузки устройства:
5. Установите пакеты git, gdb и cmake командой
apt install git gdb cmake
6. Создайте каталог для проектов в домашнем каталоге пользователя командой
mkdir ~/projects (не обязательно). Делаем его текущей -
cd ~/projects.
7. Загрузите библиотеку wiringRP из репозитория gitflic.ru командой
git clone https://gitflic.ru/project/repka_pi/wiring-repka.git
8. Зайдите в каталог wiring-repka.
Важно! В папке wiring-repka находятся следующие каталоги:
а) driver - содержит исходные коды драйвера repka_gpio.
б) example - содержит исходные коды примеров использования библиотеки.
в) utility - содержит собранные драйвера repka_gpio.ko:
- каталог `repka-pi_1.2-1.6_kernel_5.19` для RepkaOS с ядром 5.19 (типовая сборка)
- каталог `repka-pi_1.2-1.6_kernel_6.1.11-rt7` для RT RepkaOS с ядром 6.1.11-rt7-sunxi (ОСРВ)
В каждом каталоге расположен скрипт `init_dev.sh` для загрузки драйвера и настройки прав доступа к используемым библиотекой драйверам устройств.
г) wiringRP - содержит исходные коды библиотеки wiringRP.
Примечание: для проверки версии вашей операционной системы можно воспользоваться командой
uname -r.
Далее:
9. Зайдите в каталог utility -
cd utility.
10. Выберите каталог соответствующий версии вашей ОС.
11. Если файл init_dev.sh не является исполняемым установите ему соответствующий атрибут
chmod +x init_dev.sh
12. Запустите скрипт на выполнение
./repka_dev.sh
13. Если ошибок нет, но можно приступать к сборке примеров (см. п. 15). Если при запуске скрипта вы получили ошибку загрузки драйвера, то необходимо перекомпилировать его для вашей ОС (см. ниже).
Сборка драйвера для ОС:
14. Для сборки драйвера repka_gpio снимите комментарий со строки `#add_subdirectory(driver)` (удалите символ `#`) в файле `CmakeLists.txt` в корневом каталоге библиотеки (wiring-repka).
15. Создайте каталог для сборки проекта `mkdir build && cd build` (в каталоге wiring-repka).
16. Соберите и скомпилируйте проект командой
cmake .. && make
Результаты сборки сохраняются в каталогах:
- bin исполняемые файлы примеров;
- driver драйвер repka_gpio.ko (если вы настроили его сборку);
- lib библиотека libwiringrp.a для статической линковки.
Примечание: драйвер repka_gpio.ko необходимо загружать с помощью скрипта init_dev.sh после каждой перезагрузки устройства, поэтому при самостоятельной сборке драйвера рекомендуем заменить файл драйвера в каталоге ~/projects/wiring-repka/utility/ваша_версия_ОС/ файлом из каталога ~/projects/wiring-repka/build/driver/repka_gpio.ko и переименовать его (или исправить его имя в скрипте init_dev.ko).
Порядок использования библиотеки при написании программ смотрите
здесь.