LINUX.ORG.RU

Как снять ограничения частоты cpu в linux?


3

2

Доброго здоровья!

Пробовал более гибко настроить систему управления потреблением энергии на нетбуке ASUS N10J в linux. Оттестировал свой Atom N270 утилитой SetFSB. Сносно работает с частотами 400Мгц-2000Мгц и без ошибок, но столкнулся с ограничениями в настройке рабочих частот в linux. Командой cpufreq-set не лечится.

Системные ограничения для Atom N270:

# cpufreq-info -l

800000 1600000

Подскажите, пожалуйста, как снять нижние и верхние ограничения частоты в linux? Заранее благодарен.

★★

Последнее исправление: glibych (всего исправлений: 1)

Подскажите, пожалуйста, как снять нижние и верхние ограничения частоты в linux?

У меня 280 атом, допустимые частоты устанавливаются в BIOS (потому что после обновления биоса они изменились в более высокую сторону). Сейчас у меня:

max@laptop ~ $ cpufreq-info -l
1000000 1667000

При этом в режиме разгона до 1.88 GHz cpufreq и ядро показывают старые частоты, потому что Линукс не хавает изменение частоты во время работы системы, но частота меняется. Это к тому, что настоящую частоту нельзя узнать ни через cpufreq, ни из /proc/cpuinfo.

Оттестировал свой Atom N270 утилитой SetFSB. Сносно работает с частотами 400Мгц-2000Мгц

Что такое SetFSB? Как добился такой низкой частоты, как 400 MHz? 2000 MHz — это, наверное, разгон уже (270 гонятся лучше)?

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

В биос Asus N10J невозможно выставить другие частоты иначе, чем самостоятельно перепрограммировав таблицу переключения частот и залив измененную прошивку. Но не факт, что она заработает. У многих это закончилось восстановлениями биос через программатор вследствие того, что документация на это дело отсутствует. Поэтому хочу обойтись только изменением параметров в linux, так как отсутствуют проверенные пропатченные прошивки.

SetFSB - это утилита (виндовая), которая имеет нужный генератор (ICS9LPR310BGLF) к Asus N10J для установки и тестирования разгона-торможения cpu.

Конкретно мой процессор зависает при частоте менее 250Мгц, а верхний предел находится выше 2200Мгц при штатном охлаждении. Но считаю, что разумный предел снижения-разгона где-то около 400Мгц-2000Мгц. Хотя ошибок нет и при более экстремальных значениях (300Мгц-2150Мгц).

Непосредственно изменить параметры даже для пробы в /sys/devices/system/cpu/ у меня не получается(

Поэтому и возник вопрос к более опытным пользователям о снятии ограничения на установку частот непосредственно в linux.

glibych ★★
() автор топика

Попробуйте: http://sourceforge.net/projects/lfsb/
Хотя утилита довольно старая. Мои поиски говорят о том, что нормально управлять частотой FSB linux умеет только в eeepc при помощи специального модуля ядра (eee.ko).

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

>В биос Asus N10J невозможно выставить другие частоты иначе, чем самостоятельно перепрограммировав таблицу переключения частот и залив измененную прошивку.

В моём биосе ситуация такая же; просто после обновления до новой версии частоты поменялись, а до этого максимальная была 1.33 GHz вместо положенных 1.66 GHz.

SetFSB - это утилита (виндовая), которая имеет нужный генератор (ICS9LPR310BGLF) к Asus N10J для установки и тестирования разгона-торможения cpu.

Она позволяет устанавливать не ту частоту, которая настроена в биосе? Интересно, не слышал о таком. Линуксовый cpufreq (с драйвером acpi-cpufreq) по любому умеет только то, что ему сказал ACPI, то есть то, что настроено в биосе. Может, стоит поискать другой драйвер cpufreq, но мой 280 атом работал только с acpi-cpufreq, но с тех пор могло что-то поменяться. Также можно попробовать поменять таблицы ACPI во время работы компьютера, а не прошивая биос, но я этим никогда не занимался и совершенно не представляю, как это делать.

Непосредственно изменить параметры даже для пробы в /sys/devices/system/cpu/ у меня не получается(

Не во все файлы в /sys и /proc можно писать, туда можно писать только от рута и только в те файлы, на которых есть право на запись.

Конкретно мой процессор зависает при частоте менее 250Мгц, а верхний предел находится выше 2200Мгц при штатном охлаждении.

Тут надо быть осторожным, потому что вентиляция забивается, и может перегреться, если её не чистить. У меня после чистки вентиляции температура процессора упала на 15 градусов.

А идея на самом деле хорошая, я тоже хочу затормаживать процессор до более низких частот, чем 1 GHz. Тем более, что со старым биосом он тормозился до 800 MHz.

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

>Попробуйте:

Большое спасибо за программу, буду сейчас у себя пробовать, не зря же я собрал ядерный модуль i2c-i801 =)

Ещё меня просто убило в README:

If your PLL is not supported you can do following:

3. Go to Bobrooysk and drink poison.

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

>cpufreq-set -r -f 1.00GHz

И это никак не поможет установить частоту, не записанную в BIOS.

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

>rdtsc смотрит на тебя с непониманием

Кстати, x86info у меня правильно определял частоту, он, наверное, её и вызывает.

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

Для любителей поиграть в винде на asus n10j

Чуть отвлекусь от темы, но думаю информация будет полезна заядлым игроманам.

Управление SetFSB в командной строке. Создаем ярлык до этой утилиты:

«Путь_до_папки_с_программой»\setfsb.exe -w1 -cg[ICS9LPR310BGLF] -s540 -i2 -u0 -b1

"-w": Задержка перед переключением частоты [00-99 сек] (По умолчанию=10 сек)

"-cg[string]": Имя_генератора (По умолчанию=none, до 15 символов)

"-s": Устанавливаемая_частота_FSB [000-999 Mhz]

"-p": PCI-E [000-999 Mhz] (По умолчанию=none, частота PCI)

"-i": Какими шагами происходит изменение частоты [00-99 Mhz] (По умолчанию максимальными)

"-u": 0(По умолчанию)=normal, 1=ultra (Ультра режим включен или выключен)

"-b": 0(По умолчанию)=normal, 1=background (Запуск в фоновом режиме)

"-q": Не показывать окно программы

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

Ты делаешь rdtsc через определенные dt - замеряешь число тактов - получаешь _реальную_ частоту. Это то, что ты хотел.

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

>Ты делаешь rdtsc через определенные dt - замеряешь число тактов - получаешь _реальную_ частоту.

Я знаю, как это делается. Для этого программу писать надо, в ядре такого нет (точнее, есть, но один раз при загрузке). x86info, скорее всего, так и делает.

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

Исходники SetFSB

Откопал даже исходники программы SetFSB, не уверен правда, что это поможет решить вопрос - описание на японском...

http://www13.plala.or.jp/setfsb/SetFSBprogramming.html

Чем дальше ковыряю тему, тем больше понимаю насколько я мало разбираюсь в этом... Похоже нужно искать спецификацию к этому генератору и потом пробовать состыковать с ACPI в linux. А наивно думал то сначала, что в линукс это можно сделать проще, чем пропатчить биос...

glibych ★★
() автор топика

Путешествуя по ЛОРу, я встречал такую проблему, когда в BIOS поднимаешь частоту процессора, а в Linux она остаётся прежней. Помогает отключение какого-то модуля. Проявляется только на Intel, поэтому я сразу об этом и забыл, у меня AMD.

У тебя эта проблема?

ZenitharChampion ★★★★★
()
Ответ на: Исходники SetFSB от glibych

>Откопал даже исходники программы SetFSB

Исходники пока не смотрел, но что-то мне кажется, что там не все. В lfsb, например, для каждого генератора отдельный файл, а тут такого не наблюдается, и я сомневаюсь, чтобы это всё было в одном файле здесь. Было бы хорошо именно исходники драйверов генераторов.

Похоже нужно искать спецификацию к этому генератору и потом пробовать состыковать с ACPI в linux.

Это не надо пихать в ACPI, он тут не при чём. Тут идёт обмен по i2c и SMBus. Моя шина даже поддерживается ядром, поэтому надо просто дописать драйвер для этого lfsb. Вот только где бы взять даташиты к генераторам? У меня ICS9LPRS906CGLF, если верить интернету (нетбук не разбирал, чтобы посмотреть, там клавиатуру надо снимать).

А наивно думал то сначала, что в линукс это можно сделать проще, чем пропатчить биос...

Для меня проще уже написать патчик к lfsb, чем сидеть и дизассемблировать биос, к тому же меньше шанс поломать железку.

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

>Путешествуя по ЛОРу, я встречал такую проблему, когда в BIOS поднимаешь частоту процессора, а в Linux она остаётся прежней. Помогает отключение какого-то модуля.

Модуль acpi-cpufreq, скорее всего. Частота на самом деле меняется (подтверждено бенчмарками лично), просто cpufreq этого не показывает пользователю, и юзер думает, что она не поменялась. Настоящую частоту можно узнать командой 'x86info -mhz'. Отключение модуля лишает возможности менять частоту. Это не та проблема, тут надо без биоса изменить частоту на ЛЮБОЕ значение. Этого не может никакой cpufreq.

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

Написал разработчику lfsb с просьбой о помощи в адаптации к генератору ASUS N10J. Сам никогда не писал низкоуровневые программы в кодах, разве что для калькуляторов MK-64 и аналогичных.. Хотя мне кажется на них писать проще. Пока буду изучать последние исходники lfsb, чтобы понять какую именно информацию о генераторе ему будет нужно скормить.

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

Пока буду изучать последние исходники lfsb, чтобы понять какую именно информацию о генераторе ему будет нужно скормить.

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

static const PLL_t const pll[] =
{
	{ 90, 0x03,  90.00, 30.00, 60.00},
	{ 95, 0x13,  95.00, 31.67, 63.33},
	{100, 0x43, 100.70, 33.57, 67.13},
	{101, 0x23, 100.99, 33.66, 67.33},
	{102, 0x07, 102.00, 34.00, 68.00},
	{103, 0x53, 103.00, 34.33, 68.67},
	{104, 0x17, 104.00, 34.76, 69.33},
	{105, 0x63, 105.00, 35.00, 70.00},
	{106, 0x27, 106.00, 35.33, 70.67},
	{107, 0x37, 107.00, 35.67, 71.33},
	{108, 0x47, 108.00, 36.00, 72.00},
	{109, 0x57, 109.00, 36.33, 72.67},
	{110, 0x67, 110.00, 36.67, 73.33},
	{111, 0x77, 111.00, 37.00, 74.00},
	{112, 0x0B, 112.00, 37.33, 74.67},
	{113, 0x1B, 113.00, 37.67, 75.33},
	{114, 0x2B, 114.00, 38.00, 76.00},
	{115, 0x33, 115.00, 38.33, 76.67},
	{116, 0x3B, 116.00, 38.67, 77.33},
	{117, 0x4B, 117.00, 39.00, 78.00},
	{118, 0x5B, 118.00, 39.33, 78.67},
	{119, 0x6B, 119.00, 39.67, 79.33},
	{120, 0x7B, 120.00, 30.00, 60.00},
	{121, 0x0F, 121.00, 30.25, 60.50},
	{122, 0x1F, 122.00, 30.50, 61.00},
	{123, 0x2F, 123.00, 30.75, 61.50},
	{124, 0x3F, 124.00, 31.00, 62.00},
	{125, 0x4F, 124.00, 31.25, 62.50},
	{133, 0x5F, 133.33, 33.33, 66.67},
	{140, 0x6F, 140.00, 35.00, 70.00},
	{150, 0x7F, 150.00, 37.50, 75.00},
	{0}
};

Где её взять для нужного генератора, я не знаю. Даташит не нашёл, в исходниках SetFSB тоже. И там (в lfsb) ничего низкоуровневого нет, просто код на Си, отсылающий по SMBus нужную последовательность. Если будет даташит с нужной информацией, я, в принципе, могу сам попробовать написать.

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

Спасибо. Попробую выудить этот даташит.

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

Вдогонку выкладываю ссылки на значения непосредственно в программе. Там где был перехлест с предыдущей страницы выделил красным.

http://clip2net.com/clip/m23976/1311339722-clip-59kb.png

http://clip2net.com/clip/m23976/1311339802-clip-49kb.png

http://clip2net.com/clip/m23976/1311339899-clip-44kb.png

http://clip2net.com/clip/m23976/1311339965-clip-18kb.png

http://clip2net.com/clip/m23976/1311340027-clip-43kb.png

http://clip2net.com/clip/m23976/1311340063-clip-44kb.png

glibych ★★
() автор топика

Это не ограничения, дубина, эти частоты прописаны производителем в acpi.

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

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

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

Я и собираюсь попробовать его написать.

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

Посмотрел, пока что составил такую табличку:

Частота     байт
26666       0x03
13333       0x06
20000       0x04
16666       0x06
33333       0x03
10000       0x08
40000       0x02
20000       0x04
Но составив её, я запутался ещё больше. Во-первых, меня смущает то, что тут есть одинаковые байты (0x03), соответствующие разным частотам. Во-вторых, я не совсем понял, в каких единицах записана частота. В-третьих, это всё, что я смог почерпнуть полезного из предоставленных сведений, но этого недостаточно. Если посмотреть на код драйверов lfsb, то видим следующее:
#define BYTECOUNT   6
#define CONTROLBYTE 0
#define CMD 0x00

static const PLL_t const pll[] =
{
        {50, 0x08, 25.00},
        {60, 0x68, 30.00},
        {67, 0x78, 33.40},
        {69, 0x38, 34.50},
        {75, 0x18, 32.00},
        {83, 0x28, 41.65},
        {0}
};

/* ... */

unsigned char buf[] = {0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
То есть тут явно видна таблица соответствия частоты FSB (первый столбик) контрольному байту (второй). Здесь на место buf[CONTROLBYTE] подставляется одно из чисел из второго столбика, и буфер посылается по smbus, причём CMD — это один из аргументов функции посылки. Из данных SetFSB я не смог найти buf, CONTROLBYTE, CMD, а таблица pll получилась странной. В крайнем случае buf можно и подобрать, там в большинстве случаев CONTROLBYTE либо первый, либо последний, а на остальных местах (кроме первого) 0xFF.

Но в любом случае спасибо за информацию. Я думаю, теперь пригодится ещё аналогичная информация для одного из генераторов, поддерживаемых lfsb (чтобы можно было сравнить, может, тогда прояснится), например, ICS9148-04, и для моего генератора ICS9LPRS906CGLF, чтобы я у себя мог тоже проверить работоспособность. Заранее спасибо.

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

Хорошо. Если эти PLL присутствуют в базе - я их вытащу в виде файлов и выдам в виде ссылок на скачивание из моего clip2net. Думаю через час-полтора смогу выложить как доберусь до компа с виндой.

P.S. анонимусу - имей уважение к себе и другим. можешь помочь - помоги, а ежели не можешь или не хочешь, так и нечего впустую писать. или манечка к переписке?

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

>я их вытащу в виде файлов

Лучше не в виде файлов, а скриншотами, как выше. Формат файла я не смог распарсить, информацию брал только из скриншотов.

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

Разработчик ответил - обещал помочь. У него возникли вопросы:

1.Виден ли генератор по I2C шине? 2.Читается ли с него дамп?

Дадим ответ - получим решение как добавлять генераторы. Даташиты, как я понял, у него есть.

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

>1.Виден ли генератор по I2C шине?

Мой виден. Я для этого загрузил модули i2c-i801 и i2c-dev, далее командой 'i2cdetect 14' видно, что он на 0x69.

2.Читается ли с него дамп?

Да, читается, командой 'i2cdump 14 0x69 s'. Но сейчас у меня какие-то глюки — ОН ПРОПАЛ! Перезагружусь, проверю ещё, если заработает — выложу.

У вас может отличаться число 14 (другая шина), а 0x69, скорее всего, будет таким же.

Я надеюсь, вы о моём генераторе не забыли упомянуть разработчику? =) Они же разные у нас.

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

Перезагрузился

Вот мои дампы:

laptop ~ # i2cdetect 14
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-14.
I will probe address range 0x03-0x77.
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- 08 -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
laptop ~ # i2cdump 14 0x69 s
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-14, address 0x69, mode smbus block
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 41 8f ff fb fd a6 54 01 1f 07 e3 89 0f 0b 24 83    A?.???T???????$?
10: 11 ff 3b e9 c9 4f ff 11 0f 0f 11 11 11 00 3d       ?.;??O.??????.=
laptop ~ # i2cdump 14 0x69 s 0xd
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-14, address 0x69, mode smbus block
Using command 0x0d.
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 0b 24 83 11 ff 3b e9 c9 4f ff 11 0f 0f 11 11 11    ?$??.;??O.??????
10: 00 3d ff 00 15 6e 7d 66 00 00 aa 99 55 00 00       .=..?n}f..??U..

gentoo_root ★★★★★
()
Ответ на: Перезагрузился от gentoo_root

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

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

у меня видно только это

# i2cdetect -l

i2c-0 i2c NVIDIA i2c adapter I2C adapter

i2c-1 i2c NVIDIA i2c adapter I2C adapter

i2c-2 i2c NVIDIA i2c adapter I2C adapter

i2c-3 i2c NVIDIA i2c adapter I2C adapter

i2c-4 i2c NVIDIA i2c adapter I2C adapter

i2c-5 i2c NVIDIA i2c adapter I2C adapter

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

>У меня почему-то не детектируется - сейчас стоит стандартное ядро кальки.

А модули загружены? Обязательно нужен i2c-dev и модуль, специфичный для оборудования (у меня i2c-i801). Что пишет? И, возможно, вместо 14 надо взять другое число. Определить его просто:

i2cdetect -l | awk '{ print $1,$2 }' | sed -n '/ smbus$/s/^i2c-//;s/ smbus$//p'

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

>у меня видно только это

Ага, тут нет SMBus. Это плохо. Если реально нет поддержки, то через i2c не получится. Но SetFSB же работает, поэтому надо проверить конфиг ядра на наличие поддержки SMBus в нём и загруженные модули.

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

У меня дело вот в чем: модуль i2c-dev загружен, а вот какой еще специфичный модуль нужен для генератора я не знаю( Я сейчас переставляю систему - пишу с резервной. Как подключу свое ядро - может увижу генератор.

P.S. SetFSB только из-под винды пашет.

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

>модуль i2c-dev загружен, а вот какой еще специфичный модуль нужен для генератора я не знаю(

Если ядро бинарное дистрибутивное, он должен там быть и сам загружаться. Можно попробовать liveCD какой-нибудь бубунты, чтобы посмотреть.

P.S. SetFSB только из-под винды пашет.

Это понятно, но идея в том, что он тоже через i2c и smbus работает, значит, сам интерфейс аппаратно присутствует. Возможно, нет поддержки в ядре, или оно криво собрано.

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

Понял. Есть гентушный liveCD.

Мне вот что непонятно:

- «Some cpu/bios configurations may have difficulties to scale to the maximum frequencies or scale to highter frequencies at all. Sadly there is only a workaround right now. Add „processor.ignore_ppc=1“ to your kernel boot line and/or edit the value in /sys/module/processor/parameters/ignore_ppc from 0 to 1.»

При установке в 1, игнорирования не происходит. Это собственно почему я затронул эту тему.

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

Данные по генератору ICS9LPRS906CGLF, красным выделена предыдущая страница. Скопируйте себе - clip2net недолговечен.

http://clip2net.com/clip/m0/1311411331-clip-47kb.png

http://clip2net.com/clip/m0/1311411445-clip-43kb.png

http://clip2net.com/clip/m0/1311411490-clip-37kb.png

http://clip2net.com/clip/m0/1311411532-clip-40kb.png

http://clip2net.com/clip/m0/1311411575-clip-37kb.png

http://clip2net.com/clip/m0/1311411624-clip-35kb.png

А генератора ICS9148-04 у меня нет(

http://clip2net.com/clip/m0/1311411903-clip-42kb.png

glibych ★★
() автор топика

ну все еще зависит от проца, ну на каких он частотах работает. А так установите демон cpufreqd, у меня он автоматом все подхватывает и сбрасывает частоту когда надо.

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

>А так установите демон cpufreqd, у меня он автоматом все подхватывает и сбрасывает частоту когда надо.

Тред не читай @ Сразу отвечай?

cpufreq с драйвером acpi-cpufreq может изменять частоту только на определённые значения, которые вернул ACPI, они настраиваются в прошивке BIOS. На самом деле наши процессоры поддерживают гораздо больший диапазон частот, чем можно регулировать через Линуксовый cpufreq за счёт изменения частоты FSB. Это подтверждает ещё тот факт, что у меня на старой версии биоса процессор работал на частотах 800 МГц, 1 ГГц, 1.33 ГГц, а после обновления биоса процессор заработал на частотахх 1 ГГц, 1.33 ГГц, 1.66 ГГц. Также его можно разогнать до 1.88 ГГц одной кнопкой. Если написать драйвер для lfsb, то можно будет во время работы без перепрошивки биоса использовать все эти частоты + ещё несколько вариантов <800 МГц и >1.88 ГГц. Согласитесь, что гораздо круче иметь возможность переключаться среди 8 возможных значений, чем среди 3, которые предоставляет cpufreq. Поэтому cpufreq не подходит.

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

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

Но тут ещё решил поиграться с i2cdump и i2cset и пришёл к интересному результату. Похоже, что нужная шина находится не по адресу 0x69, а в 0x44. В 0x69 я пытался писать с помощью i2cset, ничего не произошло и не записалось. Но есть дамп с 0x44:

laptop ~ # i2cdump 14 0x44 i
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-14, address 0x44, mode i2c block
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
20: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
Очень похоже на то, что писала в шину lfsb (там тоже был сначала контрольный байт, потом куча 0xFF). Решил я записать на этой шине по адресу 0x00 значение 0x01, и нетбук сразу завис, возможно, из-за слишком низкой частоты FSB или некорректного байта. Сейчас буду пробовать другие варианты. Писал так: ‘i2cset 14 0x44 0x00 0x01’.

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

Думаю дело не в этом... не похоже на описание частот. У меня вообще кроме Nvidia отказывается показывать. Ломаю голову как обнаружить свой генератор. Вроде понаподключал уже через край модулей i2c, а толку пока нет - не детектируется хоть тресни. Руки видимо кривые у мну.

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

У меня задачка выйти за пределы прописанных в биос частот, тут cpufreqd не помощник. В винде-то он может на таких частотах нормально работать, почему бы и в линуксе этого не сделать.

glibych ★★
() автор топика

Я аффтар

Граждане не волнуйтесь, счастье будет.

Основные препятствия для счастья:
Производители прячут i2c шину.
TME-lock

Если виден 0х69 адрес и TME бит выставлен в ноль (для ICS чипов это 6-й в 9-м байте, отсчёт с нуля), то от счастья вас отделяет только моя и ваша лень, т.к. разбираться с датащитом и писать код всё равно надо.

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

deusexbeer
()
Ответ на: Я аффтар от deusexbeer

Николай спасибо за оклик! Я не могу найти свой генератор для ASUS N10J( Видно только Nvidia. Как размаскировать скрытый генератор?

# i2cdetect -l

i2c-0 i2c NVIDIA i2c adapter I2C adapter

i2c-1 i2c NVIDIA i2c adapter I2C adapter

i2c-2 i2c NVIDIA i2c adapter I2C adapter

i2c-3 i2c NVIDIA i2c adapter I2C adapter

i2c-4 i2c NVIDIA i2c adapter I2C adapter

i2c-5 i2c NVIDIA i2c adapter I2C adapter

# i2cdetect 2

WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-2. I will probe address range 0x03-0x77. Continue? [Y/n]

0 1 2 3 4 5 6 7 8 9 a b c d e f

00:  — -- — -- — -- — -- — -- — -- —

10: — -- — -- — -- — -- — -- — -- — -- — --

20: — -- — -- — -- — -- — -- — -- — -- — --

30: — -- — -- — -- — -- — -- — -- — -- — --

40: — -- — -- — -- — -- — -- — -- — -- — --

50: 50 — -- — -- — -- — -- — -- — -- — -- —

60: — -- — -- — -- — -- — -- 6a — -- — -- —

70: — -- — -- — -- — --

glibych ★★
() автор топика
Ответ на: Я аффтар от deusexbeer

Спасибо за ответ.

Если виден 0х69 адрес

Это значит, что я зря полез потом в 0x44? Интересные эффекты нашёл, кстати, в зависимости от значения: иногда компьютер виснет, иногда выключается, а иногда перезагружается.

TME бит выставлен в ноль

У меня в 9-ом байте 0x07, значит, 6-ой бит таки нулевой.

разбираться с датащитом

А где вы их берёте, если не секрет? Я не смог нагуглить.

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