[Конкурс обзоров] Kernel-Power часть 1
Итак в данном обзоре речь пойдёт о самом лучшем способе разогнать процессор, без перепрошивок ядра, а так-же о способе в один клик сменить частоту и любые настройки процессора.
Все мы знаем о недавнем релизе прошивки PR 1.2 Вместе с этой прошивкой мы получили дюжину новых программ, в том числе программу Kernel-Power.(На PR 1.1.1 и более поздних не работает)
Что представляет из себя Kernel-Power?
Kernel-Power фактически новое ядро для телефона с возможностью менять любые его настройки через встроенную утилиту Kernel –power-settings. К сожалению утилита не снабжена графическим интерфейсом, поэтому речь пойдёт о командах, а так-же быстрой смене частоты с помощью виджета Desktop Command Execution Widget.
Установка:
Для установки необходимо выполнить команду
root
(остальные настройки подтянутся, установятся сами)
apt-get install kernel-power-settings
После того как вы набрали эту команду ядро должно быть автоматически перепрошито в “горячем” режиме, то есть без перезагрузки, после всего наберите комманду
uname –r
и удостоверьтесь что название ядра 2.6.28.10power37 (вместо 37 может быть число выше)
Если вы видите то-же, что и на скриншоте, то у вас всё установилось без проблем.
В итоге, что мы получаем?
- дополнительные модули для поддержки IPv6, packet filtering, QoS, NAT, tunneling;
- встроена поддержка ext3 для загрузки с других устройств, поддержка ФС ext4, XFS, reiserfs, NTFS (чтение), ISO9660, UDF, CIFS, squashfs, unionfs;
- поддержка EFI-разделов, кодовой страницы UTF8;
- поддержка получения инфы о батарейке, разгон и поддержка kexec.
-сбалансированное энергопотребление! До 24-х часов работы на частоте 900Мгц без подзарядки при средней нагрузке!
-свободное изменение любых настроек процессора, открытие всех множителей, стабильность, скорость(быстрее любых сборок, тестил pystones.py)
Не правда ли впечатляюще?
Далее предлагаю разогнать своего зверька и посмотреть на что способно новое ядро.
Для этого в командной строке нужно набрать
root
kernel-config show
Мы видим кучу параметров процессора, теперь давайте их расшифруем:
current frequency – текущая частота
supported frequencies – поддерживаемые частоты…и они открыты все! Все множители доступны без каких-либо ограничений!
min. frequency – минимальная частота
max. frequency – максимальная частота
avoid frequencies – блокированная частота
active frequencies – активные частоты X:Y,Z X-частота ядра процессора Y-напряжение ядра процессора Z-частота ядра видео процессора
SmartReflex – система управления питанием для OMAP процессоров, позволяющая экономить батарею
governor ondemand – режимы процессора
ignore nice load – игнорировать нагрузку создаваемую низкоприоритетными процессами(экономит батарею)
up threshold – нагрузка на процессор после которой идёт повышение частоты
sampling rate – задержка после которой процессор переходит на более высокую частоту (во избежание нестабильности и перезагрузок лучше не менять)
powersave bias – режим экономии батареи, процессор по возможности работает на минимальной частоте прописанной в min. Frequency
Самый простой способ сменить частоту-набрать комманду:
root
kernel-config limits 250 1000
и процессор будет работать на частоте от 250 до 1000 Мгц
Так-же можно набрать комманду
Kernel-config save <имя файла> и по адресу /home/user/.kernel будет сохранён файл конфигурации, который можно открыть обычным блокнотом
Рассмотрим это получше, поскольку благодаря этой функции можно создать несколько конфигов под своё усмотрение и в последствии в один клик переключаться между ними.
Для того чтобы легко менять частоту предлагаю сделать следующее:
root
kernel-config save config
cp /home/user/.kernel/config /home/user/MyDocs/config600
cp /home/user/.kernel/config /home/user/MyDocs/config900
cp /home/user/.kernel/config /home/user/MyDocs/config1150
Этими коммандками мы создали 3 файла конфигурации, давайте теперь изменим их.
Открываем файловый менеджер в корневой папке находим файл config600 и кликаем по нему, далее нам предложат открыть его с помощью программ, выбираем заметки, и видим
Примерно то-же что и при комманде kernel-config show
Так ещё раз что есть что:
MINFREQ – минимальная частота
MAXFREQ – максимальная частота
FREQS – активные частоты
SMARTREFLEX_VDD1 SMARTREFLEX_VDD2 – система управления питанием для OMAP процессоров
GOVERNOR – режим работы процессора ondemand – динамическая частота, userspace – фиксированная, powersave – энергосберегающая, conservative – при нагрузке постепенное повышение частоты процессора, вследствии чего отличная экономия заряда, но небольшое ухудшение производительности из-за задержки при переключении частот.
IGNORE_NICE_LOAD – игнорировать нагрузку создаваемую низкоприоритетными процессами
UP_THRESHOLD – нагрузка на процессор после которой идёт повышение частоты
SAMPLING_RATE – задержка после которой проц переходит на более высокую частоту
POWERSAVE_BIAS – режим экономии батареи
Меняем что надо, не советую менять SAMPLING_RATE во избежание перезагрузок и вылетов, UP_THRESHOLD лучше ставить на 97-98, не на 100, SMARTREFLEX_VDD1 SMARTREFLEX_VDD2 – иногда уходит в перезагрузку, я так-же не менял
Скажем ставим 1 в пункты IGNORE_NICE_LOAD и POWERSAVE_BIAS и получаем режим, который идёт с заметными тормозами, но который способен держать батарею по 2 дня без зарядки
После замены всех конфигов выполняем следующие команды
root
cp /home/user/MyDocs/config600 /home/user/.kernel/config600
cp /home/user/MyDocs/config900 /home/user/.kernel/config900
cp /home/user/MyDocs/config1150 /home/user/.kernel/config1150
И у нас получились 3 конфига с частотами 250-600 в энергосберегающем режиме и 250-900 250-1150
НО, согласитесь писать всё это в консоли долго…но есть выход, с помощью программы Desktop Command Execution Widget. Подробнее о программе тут
Итак скачиваем с репозиториев Desktop Command Execution Widget
После установки открываем терминал и вводим следующую команду:
sudo gainroot
chmod u+s /usr/sbin/kernel-config
После этого добавляем виджет на рабочий стол и в его настройках:
Add Cmd – придумываем название для комманды, скажем 600Mhz и в строке command вводим следующее /usr/sbin/kernel-config limits 250 600 ( в таком случае частота колеблется от 250 до 600) или благодаря нашим конфигам такую команду /usr/sbin/kernel-config load config600 после чего делаем следующее:
Width – ширина виджета, ставим в районе 13-14
Height –высоту строки можно оставить по умолчанию
Update on boot – снимаем галочку
Update when clicked – устанавливаем галочку
Update when switched to the desktop -снимаем галочку
Update Interval – Disabled
И сохраняем настройки, после чего в один клик на рабочем столе мы можем менять скорость работы нашего процессора!
Так-же при установке в меню телефона появляется программа Deinstall kernel-power которая при открытии вернёт родное ядро и удалит Kernel-power со всеми настройками(полезно если вы сдаёте свой аппарат в гарантийку на ремонт)
Пользуйтесь, разгоняйте!
Обсуждение на форуме: X Kernel-Power
P.S. Прислал на Конкурс обзоров Роман Ефремов “Libert”.
Пока что лучшая статья, на мой взгляд…
Какой хороший конкурс то)), и сайт развивает, и инфы полезной много получаем, ну и, надеюсь автор самой интересной и полезной статьи получит таки эти клевые “уши”))
голосую за эту, !)))
Статья в целом неплоха, но “ядро вашего процессора должно быть автоматически перепрошить в «горячем» режиме” это уже слишком. Речь здесь идет о ядре операционной системы и к процессору оно имеет самое косвенное отношение. Уважаемый автор при написании статьи разбирайтесь в предмете несколько глубже.
Во всем остальном очень дельно написано, спасибо
grey0ne
Я отлично разбираюсь с железом, просто не так выразился, сасибо за поправление, скину админам, может исправят)
Кстати, второй день не заряжаю, зверёк пашет на частоте 900, заряда 16% осталось, заряжал позавчера ночью. В режиме ожидания в отличии от родного ядра практически не ест батарею,даже с рабочей вафлей
Согласен. Лучшая статья! Автору респект и большое спасибо!!))
1) Кстати, kernel-power добавляет возможность загрузки модуля bq27×0_battery:
>sudo gainroot
>modprobe bq27×00_battery
после чего по пути /sys/class/power_supply/bq27200-0/ будет всякая полезная инфа, к примеру:
>cat /sys/class/power_supply/bq27200-0/temp
34
где 34 – температура батарейки в градусах цельсия (что может дать полезную информацию о процессе разгона проца)
Лично я модифицировал /etc/modules, добавив строку “bq27×00_battery” для загрузки модуля при запуске + отредактировал конфиг conky – /etc/conky/conky.conf:
отредактировав строку с CPU на:
${color yellow}Frequency:$color $freq MHz $alignc ${color yellow}Temp:$color ${head /sys/class/power_supply/bq27200-0/temp 1}C $alignr ${color yellow}Processes:$color $processes ${color yellow}Running:$color $running_processes
да обзор супер. Кстати, какой виджет показывает на какой частоте работает проц?
2) По поводу настройки разгона – вычитав маны на talk.maemo.org по поводу динамического разгона при локах девайса и понимаю, что в залоченном состоянии телефон ничего полезного по сути не делает:
настроил так, что когда n900 залочен – частота 250/600, при разлочивания – разгон – 250/1100
если интересно – отпишусь
IDis
в Desktop Command Execution Widget вводи в поле коммана cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
только как значение перевести в мегагеры незна, в герцах отображает
alexbou
Полезная инфа, в вики была, я не стал ставить, поскольку телефон экстремально не разгоняется, не думаю что он будет сильно греться)
alexbou
Видел скрипты по поводу автосмены частоты при залоченном девайсе, но есть смутные подозрения что это ядро так-же себя ограничивает, поскольку заряд намного дольше держит даже на более высоких частотах
Libert
Ну само ядро модифицировано в сторону энергосбережения (nice load, etc)… Но есть всякие демоны – типа почтовиков, rss, и т.п. – которым давать высокие частоты=>энергию – жаба душит… А так скрипты работают – только сразу советую не делать ниже 600 МГц в локе – ибо при разговоре по телефону лаги идут (ухо закрывает проксимити-датчик, девайс лочится, выполняется скрипт и готово – лаги )
P.S.: заказал BL-J5 на ебае, посмотрим
Libert
в терминале данная команда работает но в виджете не хочет. Пишит Invalid Command
alexbou
конечно интересно.
только вот вопрос: его не заглючит если я его из залоченного состояния раз в 2-3 минуты вывожу? Или можно поставить задержку на понижение/повышение частоты?
кстати наверно данный скрипт не выполняется потому что у него нету прав рута.
alexbou
знаю=) А при открытии частоты 125 он вобще звонки не принимает и на сенсорку не реагирует когда на этой частоте принудительно, ну а когда динамически то при отсутствии нагрузки дикие лаги)
IDis
awk ‘{print $1/1000″ MHz”}’ /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Вот, сообразил как заставить его показывать в мегагерцах=) Попробуй проверить правильность написания, у меня пашет спокойно, при чём в обоих случаях, права рута для просмотра не нужны, скорее в синтаксисе ошибка
Подскажите пожалуйста, если у меня стоит ядро на 1000Мгц от SR, это ядро поверх нормально встанет ?
Или нужно сначала стоковое прошить ?
kara_bass
встанет, сам перепрошивался с тысячного от SR
Всем привет!Ребята подскажите как сделать у меня не получается,может программу не ту ставлю .Если можете напишите дословно как называется.спасибо.
sergei_28 какую программу?
IDis
Я и чаще лочу-разлочиваю – по аське со своей девушкой ))
В оригинале скриптов – частоты разгона выбирались с учетом температуры батарейки – решил что это перебор, итак:
(все операции ниже – из-под рута)
ставим dbus-scripts:
>apt-get install dbus-scripts
делаем два файлика (locked и unlocked) – они вызываются, когда срабатываются соответствующие события – и запускают соответствующие скрипты, которые создадим далее:
>echo /usr/local/bin/underclock \* \* com.nokia.mce.signal tklock_mode_ind locked > /etc/dbus-scripts.d/locked
>echo /usr/local/bin/overclock \* \* com.nokia.mce.signal tklock_mode_ind unlocked > /etc/dbus-scripts.d/unlocked
и соответственно – сами скрипты (здесь – 250/600 для залоченного, 250/900 – для разлоченного):
>echo #!/bin/sh > /usr/local/bin/underclock
>echo kernel-config limits 250 600 >> /usr/local/bin/underclock
>chmod a+x /usr/local/bin/underclock
>echo #!/bin/sh > /usr/local/bin/overclock
>echo kernel-config limits 250 900 >> /usr/local/bin/overclock
>chmod a+x /usr/local/bin/overclock
для проверки скриптов:
>/usr/local/bin/underclock
>kernel-config show
…
min. frequency: 250
max.frequency: 600 /usr/local/bin/overclock
>kernel-config show
…
min. frequency: 250
max.frequency: 900 <—– проверяем
…
перезагружаемся – и готово, запустив conky – можно увидеть что сразу после разлока частота еще была которая в залоченном состоянии (экран конки обновляется раз в три секунды если не ошибаюсь)
Libert
копировал команду непосредственно с браузера. не работает
http://s55.radikal.ru/i147/1005/de/3c03eadf838b.jpg
http://i082.radikal.ru/1005/22/53bb836291ae.jpg
http://s58.radikal.ru/i159/1005/25/7090d75f14e3.jpg
ВНИМАНИЕ! здесь что-то кривой редактор
там где:
echo #!/bin/sh > /usr/local/bin/underclock
echo #!/bin/sh > /usr/local/bin/overclock
надо читать как:
echo [двойные кавычки]#!/bin/sh[двойные кавычки] > /usr/local/bin/underclock
echo [двойные кавычки]#!/bin/sh[двойные кавычки] > /usr/local/bin/overclock
alexbou
а как вбить свободную частоту разблокировки? Ну к примеру я хочу чтобы заблокированным он 600 был, а разблокированным по требованиям, то 900 то 1150, можно ли сделать так, чтобы он при разблокировке возвращал мою частоту, а не фиксированно 900?
alexbou
после перезагрузки.
процессор остался на старой частоте работать. 600 мГц
в залоченном/разлоченном состоянии.
Libert
ну это можно сделать двумя способами:
1) в скрипте underclock:
#!/bash/sh
kernel-config save /home/user/.kernel/last_my_cfg
kernel-config limits 250 600
в скрипте overclock:
#!/bash/sh
kernel-config load /home/user/.kernel/last_my_cfg
минусы – если вдруг underclock два раза подряд вызовется – то второй раз сохранится конфиг для 250 600
2) более корректный:
нужно, чтобы по твоим кнопкам оверклока выполнялся скрипт копирования твоего желаемого профиля в типа “текущий профиль” и потом грузился данный пофиль:
[строка запуска в Desktop Command Widget]
/home/user/.kernel/set_config900
[файл /home/user/.kernel/set_config900, который конечно помечен как исполняемый через chmod]
#!/bash/sh
cp /home/user/.kernel/config900 /home/user/.kernel/current_config
kernel-config load /home/user/.kernel/current_config
[а в скрипте overclock вместо установки лимитов загружался текущий профиль]
kernel-config load /home/user/.kernel/current_config
IDis
пакет dbus-scripts установлен?
если в консоле из-под рута запускать:
/usr/local/bin/overclock
частота меняется?
u menya uje davno prablema kogda payivlyaetsa deinstall kernel-power to esli vikluchit aparat on vzdoxnet pridyotsa pereprashitsa
alexbou
слушай,а так ведь и скрипт underclock можно править на загрузку конфига в котором включены nice road и batsave =)Тогда он в режиме ожидания вобще не будет батарейку жрать, ща буду тестить на предмет лагов и вылетов сюда отпишусь
Ах да, главное замечание по поводу kernel-power: если разгон не удался, и (по-моему) 5 перезагрузек за несколько минут, то настройки разгона сбрасываются… пруфлинк не могу дать – где-то вычитал
пакет dbus-scripts установлен?
да
если в консоле из-под рута запускать:/usr/local/bin/overclock
да
the limits were set to [250, 900]
и /usr/local/bin/underclock
тоже меняеться [250, 600]
IDis
выполни и проверь:
>cat /etc/dbus-scripts.d/locked
/usr/local/bin/underclock * * com.nokia.mce.signal tklock_mode_ind locked
>cat /etc/dbus-scripts.d/unlocked
/usr/local/bin/overclock * * com.nokia.mce.signal tklock_mode_ind unlocked
вроде тоже работает
Nokia-N900:~# cat /etc/dbus-scripts.d/locked
/usr/local/bin/underclock * * com.nokia.mce.signal tklock_mode_ind locked
Nokia-N900:~# /usr/local/bin/underclock * * com.nokia.mce.signal tklock_mode_ind locked
the limits were set to [250,600]
Nokia-N900:~# cat /etc/dbus-scripts.d/unlocked
/usr/local/bin/overclock * * com.nokia.mce.signal tklock_mode_ind unlocked
Nokia-N900:~# /usr/local/bin/overclock * * com.nokia.mce.signal tklock_mode_ind unlocked
the limits were set to [250,900]
Nokia-N900:~#
IDis
почему-то dbus-scripts не робит …. попробуй еще раз перезагрузиться, это раз,
во-вторых – обновись через диспетчер приложения (вдруг что-то не догналось), и третье, на всяк случай – переставь dbus-scripts…
а у тя прошивка PR1.2?
IDis
еще в консоли из-под рута выполни:
>ps | grep dbus-scripts
должна вывести строку типа:
917 root 3328 S /usr/sbin/dbus-scripts –system
Libert я имел ввиду программу kernel power ,программу которую я ставил и потом писал в терминале команды, у меня ничего не получается.
Nokia-N900:~# ps | grep dbus-scripts
766 root 3328 S /usr/sbin/dbus-scripts –system
1641 root 2092 S grep dbus-scripts
Nokia-N900:~#
прошивка последняя 1.2 / перегружался.
может просто еще что то забыли сделать?
переустанавливал этот скрипт
okia-N900:~# apt-get install dbus-scripts
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
dbus-scripts
0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Need to get 0B/8238B of archives.
After this operation, 86,0kB of additional disk space will be used.
Selecting previously deselected package dbus-scripts.
(Reading database … 53973 files and directories currently installed.)
Unpacking dbus-scripts (from …/dbus-scripts_2.0_armel.deb) …
Setting up dbus-scripts (2.0) …
Nokia-N900:~#
Спасибо! кажись усе заработало
alexbou
пометить как исполняемый chmod u+rx ? у меня чёт не выходит
IDis, еще раз перепроверил все – должно работать…
попробуй:
>/etc/init.d/dbus-scripts restart
А! покажи-ка результат (!!!):
>cat /etc/default/kernel
IDis, поспешил, т.е.:
>cat /etc/default/kernel-power
IDis, Заработало? супер
так и думал – что в мелочах…. поди dbus-scripts старый был
Libert
лично я использовал команду chmod a+x [файл] (запуск для всех)
кроме того – скрипты не должны лежать в /home/user/MyDocs – ибо там FAT32 и на исполнение нельзя поставить аттрибут
alexbou
просто на будущее. На всякий пожарный.
А как все вернуть назад?
IDis, просто удали файлы:
/etc/dbus-scripts.d/unlocked
/etc/dbus-scripts.d/locked
кстати а эта команда
cat /etc/default/kernel-power
выдает ошибку: не найден файл.
Так и должно быть?
Помогите,я поставил Kernel-Power потом написал команды
root
apt-get install kernel-power-settings что то пошло ,после этого команда
uname –r
ответ 2.6.28-omap1,что не так я сделал?
ты
1) не установил rootfs
2) у тебя не подключены репозитории.
я поставил rootfs и репозитории подключены,extra testing не обновляется.
повторил еще раз все заново,перезагрузил n900 и потом появилось 2.6.28.10power37 .наверное получается
IDis
А что ты сделал чтобы всё заработало? Та-же проблема, ставил скрипты, создавал файлы, всё работает, но частоту он не скидывает при перезапуске.
alexbou
Касательно скрипта
cp /home/user/.kernel/config600 /home/user/.kernel/curr_config
/usr/sbin/kernel-config load curr_config
После запуска тупо меняет частоту на 600 без записи файла как curr_config в чем проблема понять не могу…
Хмм почему то kernel-config нету ) все что связанное с kernrel это kernel-power-deinstall , но вроди как поменял через тулзу cpufreqUI , что думете? сойдет?
Libert
в последней команде ты не указал путь к файлу, который хочешь загрузить
alexbou да я уже разобрался, руть указывать ненадо, я с правами ошибся,ща поправил, но всё-равно частота при блокировке не падает, равно как и при разблокировке не повышается=(
Сейчас приложу скрины
Libert попробуй через cpufreqUI
все, заработало, ща тестить буду энергосберегающий режим
exzec я ставил автопереключение частоты при блокировке экрана, чуть попозже мануал напишу)
Libert а зачем ? если у проца частота динамическая зачем это надо?
некоторые процессы заставляют процессор работать на максимальной частоте,если ограничить ее в режиме ожидания то можно прилично экономить батарею
может они не спроста так кушают?
кстати по поводу энэрго сбережения, что то он у меня и пол дня протянуть не может
сегодня ночью заряжу, завтра целый день в разъездах, работа, документы, вобщем попользую его по полной потом график использования заряда батарейки выложу, сейчас за 3 часа что я был в кино он у меня на 4% сел в режиме ожидания
Ребята помогите!!! Зделал все по инструкции, только у меня не получилось…. Потом несколько раз удалил и заново установил эту прогу(кернел-повер-…) Выключил телефон, после этого он не загружатся! Загорается экран, поевлятеся лого нокиа и экран гаснет, и так до бесконечности. Что делать?
PS Прошить флашером не удалось. Пробывал с Wind Vista 32-bit , процес не запускается, а на телефоне загорается индекатор желтого цвета…
Народ может ветку сделаете на форуме для обсуждения? Все лучше чем в комментариях обсуждать?
Libert, где обещаная инструкция по автопереключению частоты процессора?))
NitrosXxx
терпения)))всё будет
Евгений, отличная мысль, напиример в конец статьи создать ссылочку “все технические вопросы сюда” и подтереть тут комменты)
Кто нибудь мне ответит здесь?
после 5-ой неудачной загрузки вроде как должно всё получиться, кернел востановит оригинальное ядро, если не вышло-качай с интернета дистрибютив линукс и через линукс прошивайся флешером, можешь скачать Knopix можешь MagOS можешь Ubuntu и все они не требуют установки и грузятся с диска
Спасибо Libert что ответил). После 11 раза прошился с флешером. Все сейчас норм, попробую заново установить повер-кернел
@Libert – сделал.
@Всем!
Дальнейшее обсуждение предлагаю продолжить на форуме Kernel-Power
P.S. Комментирование записи отключено.