Общая информация #
Троттлинг (thermal throttling) — это механизм защиты процессора от перегрева. При достижении заданной температуры система автоматически снижает частоту CPU, уменьшая тепловыделение и предотвращая повреждение устройства.
На платах Repka Pi троттлинг основан на показаниях встроенного термодатчика самого SoC, а не внешних датчиков на плате.
Источник температуры #
Температура CPU считывается через контроллер термодатчиков (THS, thermal sensor), встроенный в процессор:
-
В Repka Pi 4 (SoC H6) используется датчик:
&ths 0(канал 0 встроенного THS). Ниже представлено его описание по путиu-boot-2020-04-rc3/arch/arm/dts/sun50i-h6.dtsi:ths: thermal-sensor@5070400 { compatible = "allwinner,sun50i-h6-ths"; reg = <0x05070400 0x100>; interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_THS>; clock-names = "bus"; resets = <&ccu RST_BUS_THS>; nvmem-cells = <&ths_calibration>; nvmem-cell-names = "calibration"; #thermal-sensor-cells = <1>; }; -
В Repka Pi 3 (SoC H5) используется датчик:
&ths 0(канал 0 встроенного THS). Ниже представлено его описание по путиu-boot-2022-04/arch/arm/dts/sun50i-h5.dtsi:ths: thermal-sensor@1c25000 { compatible = "allwinner,sun8i-h3-ths"; reg = <0x01c25000 0x400>; interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; resets = <&ccu RST_BUS_THS>; clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; clock-names = "bus", "mod"; nvmem-cells = <&ths_calibration>; nvmem-cell-names = "calibration"; #thermal-sensor-cells = <1>; };
Таким образом, троттлинг ориентируется именно на температуру кристалла процессора.
Как работает троттлинг #
При достижении температурных порогов (trip points), заданных в системе:
- активируется механизм охлаждения через
cooling-device(обычно CPU); - снижается частота процессора;
- уменьшается энергопотребление и тепловыделение.
Если температура продолжает расти, возможно аварийное отключение системы.
Особенности настройки на Repka Pi #
Repka Pi 5 #
Для Repka Pi 5 параметры термоконтроля задаются в базовом описании SoC. Основные thermal trip points и таблицы частот находятся в файле repka-os_linux-rockchip/arch/arm64/boot/dts/rockchip/rk3588s.dtsi, который подтягивается через описание платы repka-os_linux-rockchip/arch/arm64/boot/dts/rockchip/rk3588-repka-pi5.dts.
В Repka OS для Repka Pi 5 используется единый алгоритм термоконтроля: при температуре ниже 50°C вентилятор выключен; при 50°C, 55°C, 60°C, 65°C и 70°C вентилятор последовательно переключается на уровни 1, 2, 3, 4 и 5. При 75°C thermal zone переходит в режим passive, при 85°C начинается активный thermal throttling, в ходе которого Linux поэтапно снижает частоты процессорных кластеров и GPU по таблицам OPP. Для cluster0 используются ступени до 1.8 ГГц, для cluster1 и cluster2 до 2.4 ГГц. При достижении 115°C срабатывает критический порог и выполняется аварийное отключение системы.
| Температура | Вентилятор | Cortex Quad-Core A55 (cluster0) |
Cortex A76 Dual (cluster 1) |
Cortex A76 Dual (cluster 2) |
|---|---|---|---|---|
< 50°C |
выкл |
1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
50–55°C |
уровень 1 |
1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
55–60°C |
уровень 2 |
1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
60–65°C |
уровень 3 |
1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
65–70°C |
уровень 4 |
1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
70–75°C |
уровень 5 |
1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
75–85°C |
уровень 5 |
до 1800 МГц |
до 2400 МГц* |
до 2400 МГц* |
> 85°C |
уровень 5 |
1608 МГц |
2208–2352 МГц* |
2208–2352 МГц* |
> 87°C |
уровень 5 |
1416 МГц |
2016–2208 МГц |
2016–2208 МГц |
> 89°C |
уровень 5 |
1200 МГц |
1800–2016 МГц |
1800–2016 МГц |
> 91°C |
уровень 5 |
1008 МГц |
1608–1800 МГц |
1608–1800 МГц |
> 93°C |
уровень 5 |
816 МГц |
1416–1608 МГц |
1416–1608 МГц |
> 95°C |
уровень 5 |
600 МГц |
1200–1416 МГц |
1200–1416 МГц |
> 100°C |
уровень 5 |
408 МГц |
816–1200 МГц |
816–1200 МГц |
> 105°C |
уровень 5 |
408 МГц |
600–816 МГц |
600–816 МГц |
> 110°C |
уровень 5 |
408 МГц |
408–600 МГц |
408–600 МГц |
>= 115°C |
уровень 5 |
shutdown |
shutdown |
shutdown |

Repka Pi 4 #
Для Repka Pi 4 параметры термоконтроля задаются в базовом описании SoC (dtsi). Само описание можно найти по пути u-boot-2020-04-rc3/arch/arm/dts/sun50i-h6.dtsi в репозитории u-boot-2020-04-rc3.
В Repka OS предустановлен единый алгоритм троттлинга:
| Версия платы | Алгоритм работы троттлинга | |
|---|---|---|
| Для всех версий плат | <70 С° — 1968 МГц, >70 С° — 1896 МГц, >74 С° — 1800 МГц, >76 С° — 1704 МГц, >78 С° — 1608 МГц, >80 С° — 1488 МГц, >82 С° — 1320 МГц, >84 С° — 1080 МГц, >86 С° — 888 МГц, >88 С° — 720 МГц, >90 С° — 480 МГц, >97 С° — Power Off |
![]() |
Repka Pi 3 #
Для Repka Pi 3 профиль троттлинга формируется не одним оверлеем, а комбинацией базового дерева устройств sun50i-h5-repka-pi3-1ghz.dts, оверлеев с частотами из u-boot-2022-04/arch/arm/dts/overlays/freq/ и оверлеев с температурными порогами из u-boot-2022-04/arch/arm/dts/overlays/throttling/ (например, profile-ver1.3 или profile-ver1.4-1.6-passive). Все эти файлы доступны в репозитории u-boot-2022-04.
В Repka OS предустановлены следующие алгоритмы троттлинга:
| Версия платы и максимальная частота процессора | Алгоритм работы троттлинга | График алгоритма троттлинга |
|---|---|---|
| 1.3 и младше и 1.2 ГГц | <55 С° — 1200 МГц, >55 С° — 1056 МГц, >60 С° — 1008 МГц, >65 С° — 816 МГц, >70 С° — 648 МГц, >75 С° — 480 МГц, >80 С° — 336 МГц, >85 С° — 288 МГц, >88 С° — 240 МГц, >97 С° — Power Off |
![]() |
| 1.3 и младше и 1.4 ГГц | <55 С° — 1368 МГц, >55 С° — 1200 МГц, >60 С° — 1008 МГц, >65 С° — 816 МГц, >70 С° — 648 МГц, >75 С° — 480 МГц, >80 С° — 336 МГц, >85 С° — 288 МГц, >88 С° — 240 МГц, >97 С° — Power Off |
![]() |
| 1.4 и 1.5 (Для версий с активным охлаждением) | <75 С° — 1368 МГц, >75 С° — 1200 МГц, >78 С° — 1008 МГц, >81 С° — 816 МГц, >84 С° — 648 МГц, >87 С° — 480 МГц, >90 С° — 336 МГц, >92 С° — 288 МГц, >95 С° — 240 МГц, >97 С° — Power Off |
![]() |
| 1.4 и 1.5 (Для версий без активного охлаждения) | <61 С° — 1368 МГц, >61 С° — 1200 МГц, >65 С° — 1008 МГц, >69 С° — 816 МГц, >74 С° — 648 МГц, >78 С° — 480 МГц, >82 С° — 336 МГц, >86 С° — 288 МГц, >88 С° — 240 МГц, >97 С° — Power Off |
![]() |
| 1.6 (Для версий с активным охлаждением) | <75 С° — 1416 МГц, >75 С° — 1320 МГц, >78 С° — 1008 МГц, >81 С° — 816 МГц, >84 С° — 648 МГц, >87 С° — 480 МГц, >90 С° — 336 МГц, >92 С° — 288 МГц, >95 С° — 240 МГц, >97 С° — Power Off |
![]() |
| 1.6 (Для версий без активного охлаждения) | <61 С° — 1416 МГц, >61 С° — 1320 МГц, >65 С° — 1008 МГц, >69 С° — 816 МГц, >74 С° — 648 МГц, >78 С° — 480 МГц, >82 С° — 336 МГц, >86 С° — 288 МГц, >88 С° — 240 МГц, >97 С° — Power Off |
![]() |
Температурные датчики #
В системе доступны несколько температурных зон, например:
cpu-thermalgpu-thermalthermal_zone0,thermal_zone1(с несколькими точками измерения)
Точное соответствие этих датчиков физическим точкам на плате зависит от конкретной реализации SoC и прошивки. Однако ключевым для управления троттлингом обычно является датчик процессора (cpu-thermal), т.к. она привязана к встроенному датчику SoC (ths, канал 0).
Допустимые температуры #
Согласно даташиту процессора рабочий диапазон: примерно от -20°C до +125°C. Однако: троттлинг активируется при более низких температурах и аварийное отключение также настроено заранее, чтобы избежать достижения критических значений.
Влияние нагрузки #
Наибольшее тепловыделение создаёт процессор (CPU). Нагрузка на другие компоненты оказывает значительно меньший эффект: RAM, Ethernet (LAN), Wi-Fi и SD-карта. Их вклад в общий нагрев платы обычно несоизмеримо ниже по сравнению с CPU.






