LINUX.ORG.RU

Достучаться до кулера.

 , ,


2

0

Здравствуйте, форумчане. Помогите найти вот в этом кулер или все что с ним связано, мощность, пороги включения-отключения. Вентилятор у меня молотит на полную мощность при достижении 55 градусов и отключается когда остынет до 50. Поиском по значениям не нашел ничего что было бы можно связать с температурой. И где еще, кроме DSDT, может быть вентилятор?


Ответ на: комментарий от pS

Но lm_sensors не работает с acpi напрямую, так? А вообще, init_6, прежде чем что-то написать, ради интереса посмотри на свой поток сознания:

Твоё неокрепшее сознание смутил тот факт что иногда вентилятор как таковой может вообще отсутствовать в dsdt/proc-fs/sys-fs а следовательно и во всем остальном софте в том числе и в fancontrol? Так вот это не новость и во многих случаях именно так оно и есть.

Или тебя смущает что либо кривые настройки параметров acpi ядра linux (см со слов acpi_ ) либо их дефолтные значения в отдельных случаях могут вызывать глюки? Так вот ищи в своём любимом поисковике по «linux kernel acpi_osi=» и убедись сам.

Умник хорошенько подумай прежде чем писать и ответь на простой вопрос как работает acpi в этих наших linux-ах? После того как ты это сделаешь ты сам увидишь все возможные места в которых может поджидать баг. А до тех пор пожалуйста продолжай потому что твое мнение очень важно для меня.

init_6 ★★★★★
()
Ответ на: комментарий от pS

Не смущают, а скорее вызывают у меня отвращение упоротые хамы, уводящие разговор в сторону от исходной темы.

А мне посрать на твое отношение по крайней мере до тех пор пока ты не ответил на вопрос а за одно скажи выхлопы sensors-detect и lsmod уже помогли тебе решить исходную задачу «Достучаться до кулера.»?

init_6 ★★★★★
()
Ответ на: комментарий от pS

OK! Глянь сюда, пока дойдут руки до этого.

я все это уже, к сожалению, видел и рыдал, потому-что у меня в системе нет даже упоминаний о hwmon, fan, pwm и прочего, что связано с охлаждением.
Я даже, к своему великому стыду, установил другую ос, что бы посмотреть как обстоят дела там. Там тоже все грустно. Но нашлась одна програмулина которая подменяет реальные значения _SB.PCI0.LPCB.EC0.RTMP на заниженные, тем самым увеличивая температурный порог включения. В своем DSDT я это тоже проделал, отображаемую температуру можно загнать хоть в минус, однако вентилятору это пофиг.

Trauka
() автор топика
Ответ на: комментарий от Trauka

Есть возможность мониторинга через Intel Alert Standard Forrmat (ASF), но оно, вроде, для удалённого наблюдения и не для всякого железа.

pS
()
Ответ на: комментарий от init_6

это не совсем так.

В комплекте lm_sensors есть sensors-detect который может подсказать тип чипа, а дальше в hwmon можно найти близкий по параметрам чип.

vel ★★★★★
()
Ответ на: комментарий от vel

В комплекте lm_sensors есть sensors-detect который может подсказать тип чипа, а дальше в hwmon можно найти близкий по параметрам чип.

Проблема не в том может ли sensors-detect «подсказать тип чипа» или нет. А в том, что вкл/выкл вентиляторов может быть организовано в обход любых чипов которые видит или не видит sensors-detect, lm_sensors и все остальное вместе взятое… И да помимо этого даже сенсоры будут что-то показывать и создавать видимость активной работы. Учитесь читать внимательнее.

init_6 ★★★★★
()
Ответ на: комментарий от vel

unknown chip 0x8502 - это ужк интересно

modprobe -v it87 force_id=0x8512 и смотреть sensors

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

Trauka
() автор топика
Ответ на: комментарий от Trauka

С интересом наблюдаю за происходящим... Суть в том, что подменять нужно не отображаемую температуру (которую код в DSDT читает из _SB.PCI0.LPCB.EC0.RTMP), а само значение этой переменной. Она физически хранится в EC, специальном микроконтроллере на материнской плате, и вот он-то как раз управляет кулером.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Она физически хранится в EC, специальном микроконтроллере на материнской плате, и вот он-то как раз управляет кулером.

у меня нет какой-то секции в EmbeddedControl -100%.

Trauka
() автор топика
Ответ на: комментарий от Trauka

Нет, это как раз задача (почти) для acpi_call. Правда, я нашёл более простой способ это сделать. В течение часа кину скрипт.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

такой дериктории нет, насколько я помню, при сборке ядра можно это включить дебагер. Могу начать пересобирать, если будет толк. Но это- до утра. У мня атом

Trauka
() автор топика
Ответ на: комментарий от Trauka

Тогда попробуй для начала mount debugfs -t debugfs /sys/kernel/debug от рута; бывает так, что ядро собрано с отладкой, но по умолчанию отладочная ФС не примонтирована.

intelfx ★★★★★
()
Ответ на: комментарий от Trauka

Видимо, да. Надо включить опции:

  • DEBUG_FS (Kernel hacking -> Compile-time checks and compiler options -> Debug Filesystem)
  • ACPI_EC_DEBUGFS (Power management and ACPI options -> ACPI (Advanced Configuration and Power Interface) Support -> EC read/write access through /sys/kernel/debug/ec)
intelfx ★★★★★
()
Ответ на: комментарий от intelfx

может еще что-нит включить? ...про запас, мало ли пригодиться? ...бо ядро собирать на моем железе- о-о-о-о-о!

Trauka
() автор топика
Ответ на: комментарий от Trauka

А ты попробуй убрать оттуда всё, что не относится к твоему железу. :) Соберётся за час. Это можно сделать автоматически — make localmodconfig, но тогда лучше старое ядро забэкапить...

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

А ты попробуй убрать оттуда всё, что не относится к твоему железу. :) Соберётся за час.

localmodconfig? все равно долго собирается.
вобщем, понавтыркивал флешек кардридеров и прочего... собираю с localmodconfig

Trauka
() автор топика
Ответ на: комментарий от intelfx

Видимо, да. Надо включить опции:

DEBUG_FS (Kernel hacking -> Compile-time checks and compiler options -> Debug Filesystem) ACPI_EC_DEBUGFS (Power management and ACPI options -> ACPI (Advanced Configuration and Power Interface) Support -> EC read/write access through /sys/kernel/debug/ec)

...от души- спасибо, что помогаешь. Все время сидел на MAC, но сейчас пришлось сменить ноут. Вроде и железо нового ноута (вернее древнего) изучил, и команды знакомые, но немного путаюсь. Хотелось бы из своего железа нормальный комп сделать.

Trauka
() автор топика
Ответ на: комментарий от init_6

Сначала убедиться, что через hwmon это сделать нельзя - т.е. нет pwm_* или оно не управляется.

Сделать несколько раз modprobe & rmmod не сложно перед тем, как начать уродоваться с acpi-биосом.

Я совсем недавно сталкивался с левым it87 который не поддерживается ядром, но через force_id оно работает.

vel ★★★★★
()
Ответ на: комментарий от vel

it87 вообще не для моей материнки, чипсета и что там еще. Я не создавал бы тему если бы не перпробывал все способы и все решения. Я новичек в Linux, но я не нуб, который постит везде где можно

Trauka
() автор топика
Ответ на: комментарий от Trauka

Так, ну у меня есть скрипт, который может читать и писать любое поле в оперативной памяти EC.

Но вот здесь есть программа S10FanControl, которая, судя по всему, работает чуть правильнее, нежели путём подделывания температуры. Ждём ответа, поскольку мыло своё автор нигде не оставил...

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Но вот здесь есть программа S10FanControl, которая, судя по всему, работает чуть правильнее, нежели путём подделывания температуры. Ждём ответа, поскольку мыло своё автор нигде не оставил...

...это все не работает, работает только то что я в соседней теме писал. подмена температуры

Trauka
() автор топика
Ответ на: комментарий от Trauka

Окей, тогда склонь вот это — git://github.com/intelfx/embedded-controller (или забери архив) и возьми отсюда файл с определениями полей (его нужно скормить напрямую ec_access_field.sh).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Как разберёшься — тестируй примерно вот так:

while true; do
sudo ./ec_access_field.sh <файл с определениями> RTMP <фейковая температура>
sleep 0.05
done

Это заспамит тебе терминал отладочными сообщениями, можешь выпилить DEBUG=1 из util.sh.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

вроде со всем разобрался кроме ec_parse_definitions.sh

root@Lenovo-IdeaPad:/home/user/Downloads/embedded-controller-master# ./ec_parse_definitions.sh
Input/output file(s) not given. Usage:

        ./ec_parse_definitions.sh INPUT OUTPUT

INPUT should contain the Field() block defining the EmbeddedControl
operation region. Extract it from your decompiled DSDT.

[example:

OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
Field (ERAM, ByteAcc, Lock, Preserve)
{
        // INPUT starts here
        CDPR, 1,
        Offset (0x04),
        ....
        BDN0, 8
        // INPUT ends here
}

-- example end.]

OUTPUT will be a file following bash syntax and containing parsed
information about EC RAM fields.

Exiting.
...и dsdt не меняется

Trauka
() автор топика
Ответ на: комментарий от Trauka

ec_parse_definitions.sh не меняет DSDT. Это вспомогательный скрипт. Ты скармливаешь ему кусок существующего DSDT, в котором описаны переменные EC, и он генерирует некоторый промежуточный файл, который уже нужно дать скрипту ec_access_field.sh.

Но это я уже сделал, см. файл. Тебе нужно его скачать, сохранить в любом месте и сделать вот это.

Только проверь, сначала, что всё сработало как надо — сделай sudo ./ec_access_field.sh <файл с определениями> RTMP и проверь, что печатается текущая температура.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Второй раз пересобрал ядро,

ACPI_EC_DEBUGFS
включен- 100%. После
mount debugfs -t debugfs /sys/kernel/debug
в
/sys/kernel/debug/
появиляется все, кроме дериктории ec. Скрипт отрабатывает, но в терминале получаю
ec_access: /sys/kernel/debug/ec/ec0/io: No such file or directory.

вот мой текущий конфиг

Trauka
() автор топика
Ответ на: комментарий от Trauka

вот

root@Lenovo-IdeaPad:/home/user/Downloads/embedded_controller# sudo ./ec_access_field.sh ckp RTMP
Field:       'RTMP' (offset 704)
Byte offset: '88'
Bit offset:  '0'
Length:      '8'
Mask:        '255' (reverse: '0')
- reading byte 88
ec_access: /sys/kernel/debug/ec/ec0/io: No such file or directory
Failed to read byte 88 through 'ec_access'. Exiting.

Trauka
() автор топика
Ответ на: комментарий от Trauka

CONFIG_ACPI_EC_DEBUGFS=m

Почему не «y»? Сейчас у тебя не подгружен модуль, который добавляет эти файлы. Сделай modprobe ec_sys и попробуй заново.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

...Я тебя найду и проставлю ящик пива. О-о-о-о-о, тишина!

Trauka
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.