Драйвер управления вентилятором для Repka Pi
Модуль ядра Linux для управления 4-пиновым PWM-вентилятором на одноплатных компьютерах Repka Pi. Управление осуществляется посредством программного ШИМ, скорость которого зависит от температуры процессора.
Ключевые особенности
- Программный ШИМ: Не требует аппаратного ШИМ-контроллера на GPIO.
- Настраиваемый GPIO: Управляющий пин задаётся как параметр модуля при загрузке.
Установка
Для установки модуля из исходного кода используется Makefile.
1. Требования для сборки
Убедитесь, что в системе установлены заголовочные файлы ядра и базовые инструменты для компиляции:
sudo apt-get update
sudo apt-get install build-essential linux-headers-$(uname -r) git
2. Установка сервиса
После подготовки системы, вернитесь в корневую директорию проекта и выполните одну команду:
make install
Эта команда выполнит все необходимые шаги: 1. Скомпилирует модуль ядра. 2. Соберёт .deb пакет с версией, основанной на Git-тегах. 3. Установит пакет в систему. 4. Пропишет модуль в автозагрузку.
После установки рекомендуется перезагрузить систему (sudo reboot) или загрузить модуль вручную (sudo modprobe repka_fan_driver).
Конфигурация
Управляющий GPIO пин
По умолчанию драйвер использует GPIO пин 117 (PD21).
Для использования другого пина необходимо передать параметр ядру при загрузке. На Repka Pi это делается через файл /boot/repkaEnv.txt.
Пример для использования пина 118 (PD22): 1. Откройте файл: sudo nano /boot/repkaEnv.txt 2. Добавьте или измените переменную extra, включив в неё repka_fan_driver.pin_num=118. extra="repka_fan_driver.pin_num=118" 3. Сохраните файл и перезагрузите систему.
Проверить, какой пин используется, можно в логе ядра:
dmesg | grep "Repka Fan"
Кривая вентилятора
Кривая зависимости скорости от температуры задана в исходном коде (src/repka_fan_driver.c) в виде массива fan_curve.
- < 45°C: 0% скорости
- 55°C: 30% скорости
- 65°C: 60% скорости
- > 75°C: 100% скорости
Для изменения кривой необходимо отредактировать этот массив и переустановить модуль командой make install.
Сборка и удаление
Для управления проектом используются стандартные цели Makefile.
-
Скомпилировать модуль (без установки):
makeРезультат появится в папке
.build/. -
Собрать
.debпакет (без установки):make packageПакет появится в корневой директории.
-
Удалить модуль из системы:
make uninstall -
Очистить проект от результатов сборки:
make clean