Activating the Cooling Fan in VIM3 running Libreelec

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

https://github.com/hyphop/khadas-utils/tree/master/utils

При запуске скрипта на 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

CONFIG_REGMAP_I2C=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_MESON=y
CONFIG_I2C_RK3X=y
CONFIG_I2C_SLAVE=y
CONFIG_DRM_I2C_CH7006=y
CONFIG_DRM_I2C_SIL164=y
CONFIG_DRM_I2C_NXP_TDA998X=y
CONFIG_DRM_I2C_NXP_TDA9950=y
CONFIG_RTC_I2C_AND_SPI=y

а так посмотри мои вариант! я его как раз активно пытаюсь утрести
https://github.com/hyphop/khadas-linux-kernel

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

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

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

Не стоит зацикливаться ! это опен сорс - можно всегда поправить как кому угодно! это утилитка не закончена 1 - создавалась для определенный целей 2 - под скорою руку для теста - 3 - подождите пару дней - попробую учесть все пожелания )

Между прочим - ты|вы не преподователем информатики работаешь ? )))

Такие вопросы - в личку. :slight_smile:

hello,@hyphop
I use Armbian_19.11.3_Aml-g12_buster_legacy_5.3.0_20191126 on VIM2 with 3705 Cooling Fan
and after install apt-get install i2c-tools,run ./fan 1
[i] i2c device not found by 0x18 0x88

thanks

plz check this post Activating the Cooling Fan in VIM3 running Libreelec - #15 by hyphop

looks like incorrect dts (lost i2c node)

hi @hyphop ,here is the info. of mine,Isn’t that right? how to fix this problem

root@armbian:~# cat /boot/uEnv.ini
dtb_name=/dtb/amlogic/meson-gxm-khadas-vim2.dtb
bootargs=root=LABEL=ROOT_EMMC rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

root@armbian:~# ls /dev/i2c-?
/dev/i2c-0 /dev/i2c-1 /dev/i2c-2

root@armbian:~# i2c_scan | grep 18
i2c_scan: command not found

root@armbian:~# zgrep I2C /proc/config.gz | grep =y
CONFIG_REGMAP_I2C=y
CONFIG_TCG_TIS_I2C_INFINEON=y
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_MUX_PINCTRL=y
CONFIG_I2C_DEMUX_PINCTRL=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_MESON=y
CONFIG_I2C_RK3X=y
CONFIG_I2C_CROS_EC_TUNNEL=y
CONFIG_I2C_SLAVE=y
CONFIG_BATTERY_BQ27XXX_I2C=y
CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_WM831X_I2C=y
CONFIG_MFD_WM8350_I2C=y
CONFIG_VIDEO_V4L2_I2C=y
CONFIG_DRM_I2C_CH7006=y
CONFIG_DRM_I2C_SIL164=y
CONFIG_DRM_I2C_NXP_TDA998X=y
CONFIG_DRM_I2C_NXP_TDA9950=y
CONFIG_DRM_I2C_ADV7533=y
CONFIG_DRM_I2C_ADV7511_CEC=y
CONFIG_SND_SOC_I2C_AND_SPI=y
CONFIG_RTC_I2C_AND_SPI=y
CONFIG_CROS_EC_I2C=y

sorry try this one

for i in 0 1 2 ; do i2cdetect -y $i; done

must works

You mean before I run fan shell script,do this first?

root@aml:~# for i in 0 1 2 ; do i2cdetect -y $i; done
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- 18 – -- – -- – -- –
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: 30 – -- – -- – -- 37 – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: 50 – -- – 54 – -- – -- – -- – -- – -- –
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
root@aml:~# ./fan 3
[i] set FUN SPEED: 3

BUT here is noting happend,fan was not running,then I try

root@aml:~# ./fan 2
[i] i2c device not found by 0x18 0x88

the error was shown again,then I do

root@aml:~# for i in 0 1 2 ; do i2cdetect -y $i; done
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: 30 – -- – -- – -- 37 – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: 50 – -- – 54 – -- – -- – -- – -- – -- –
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
root@aml:~# ./fan 2
[i] i2c device not found by 0x18 0x88
root@aml:~#

ok first try we have i2c 18 add at 1 node
but after its lost - this one strange behavior
plz check dmesc -c