Activating the Cooling Fan in VIM3 running Libreelec

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

1 Like

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: я думаю на этом не стоит заострять внимание !!

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

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