Activating the Cooling Fan in VIM3 running Libreelec

Is it possible to activate the Cooling Fan in VIM3 running Libreelec?

yes its easy

just two commads like this

enable fan

i2cset -y 0 0x18 0x88 3 b # max speed
i2cset -y 0 0x18 0x88 2 b # mid
i2cset -y 0 0x18 0x88 1 b # low 

disable fan

i2cset -y 0 0x18 0x88 0 b

PS: may be u need install i2c-tools before like sudo apt-get install i2c-tools

or u can use this my script


In LE not there is package management and concepts of conventional packages. This is a binary system (all compiled from source code).

brrr )) yes its LE i forget
but we can build i2c-tools still from sources ))
or just change config for busybox its have same i2c-tools

This should be checked. There may be another problem, the entire system is mounted in read-only mode and need to check the availability of making changes to the fan control settings.

1 Like

i will try to improve this script ! for work in automatic mode (monitor temp + change cooler state)
and after we can move all fan functionality from kernel to user-space


I already did a similar fan control script for VIM1 and VIM2 (Nick included it in FENIX sources).


Can you give me instructions on how to use this script? Many thanks.

1 Like

download this script

wget -O fan
chmod 0777 fan


fan [0|1|2|3|min|mid|max|on|off] [--help]

yes i know about it - its lil diffrent
my script work directly with i2c bus and no need special khadas fan kernel driver

1 Like

Thanks. I will try that when I have time.

Is there actually any plan to add a new option to control the cooling fan in the settings menu of LE?

1 Like

What kernel did you test the script on ?

u can use this script for any kernel which not have special khadas mcu/fan driver :wink: (for example i use last mainline 5.3.xx)
this script just use raw i2c bus

При запуске скрипта на 5.3.0 выдаёт ошибку, что нет i2c устройства.

должно быть !

root@Krescue-init:/# ls /dev/i2c-?
/dev/i2c-0  /dev/i2c-1  /dev/i2c-2

i2c_scan что дает ?

должно быть!!!

root@Krescue-init:/# i2c_scan | grep 18
10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 

если нет то проверить DT активированы и есть ли i2c вообше поддержка ?

root@Krescue-init:/# zgrep I2C /proc/config.gz | grep =y


а так посмотри мои вариант! я его как раз активно пытаюсь утрести

ЩЫ: включили IKCONFIG_PROC=y бы эту штуку в libreelec /proc/config.gz
а то не удобно же когда ее нет

1 Like

Зачем столько дублирующих опций ? И нет автоматического управления по температуре. Когда я писал про свой скрипт, речь была про автоуправление.

автоуправлению думаю сделать на днях!
больше опций чтоб удобнее было)

Лишние опции - хуже работа (длиннее обработка, выше риск ошибок) и путаница для пользователей.

спорно)) для примера shot-option and long-options почти во всем GNU всех устраивает!!

в моем случае как мне кажется довольно интуитивный для пользователя подход

fan on | fan enable | fan 1 # дает одинаковый резльтат
fan 0 -> fan 1 -> fan 2 -> fan 3 #  выбор скорости 
fan 0 | fan off | fan disable # отключение

PS: я думаю на этом не стоит заострять внимание !!

Длинные и короткие опции имеют единый “стиль” , а тут совершенно разное обозначение, ни как не связанное между собой (цифры и текст).

Правильный интрфейс, это основа юзабилити для пользователей, и отсутствие “точек” для получения ошибок. В хелпе не указано вообще, что обозначают эти параметры.