Динамический разгон Nokia N900 с помощью Desktop Command Widget


Наш читатель Rumata продолжает спамить на наш ящик:

На просторах рунета мелькал скрипт, который меняет частоту процессора N900 с помощью Desktop Command Widget.

Я хочу привести свою версию скрипта. Этот скрипт работает для разгонщика “kernel-flasher-maemo”, что разгоняет без перепрошива. Но его можно заточить и под любой другой, где разгон осуществляется програмной, а не прошивочно (о загнул, да?)

Итак.

Шаг1. Мы установили “kernel-flasher-maemo”. Как это делается, ищите в яндексе (гугле, рамблере, яху – у кого на что фантазии хватит). Тут речь не об этом.

Шаг2 . Далее устанавливается “Desktop Command Execution Widget”.

Шаг3. Создаём где угодно файл “boost.sh” со следующим содержанием:

chmod a+x /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
 
a=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
 
if [ $a = 599000 ]
then
`echo 900000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
echo 900Mhz
else
`echo 599000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
echo 600Mhz
fi

Что тут происходит? Даются права на запуск программе изменения частоты. Далее получается текущая частота. Если эта частота 599 Мхз (почему именно 599, я не понял, но так надо), то ставим 900 Мхз. И наоборот, если сейчас 900 Мхз, то ставим 599 Мхз.

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

Шаг4. Добавляем на рабочий стол виджет “Desktop Command Execution Widge” и создаём новую команду. Называем её как-нить (я назвал CPU: (потому что виджет будет показывать текущую частоту)).

Command: sh ПУТЬ_К_/boost.sh В моём случае sh ~/MyDocs/boost.sh

Шаг5. Сохраняем команду. Выставляем Width = 0,43 Height = 1,5. Ставим галочку “Display Title”, “Update when clicked”, остальные снимаем, где выбор – там Disabled. Виджет готов.

Шаг6. Увы, придётся делать каждый раз после перезагрузки. Открывает X-Terminal пишем:

sudo gainroot
 
chmod 777 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

Таким образом мы дали права для запуска (лично я эту строку завернул в sh файл). Я так и не понял, почему оно сбрасывает права при ребуте. Кто знает – скажите.

P.S. За ламерство не судить – лучше научить ;)




28 комментариев

  1. pine пишет:

    sudo sh ПУТЬ_К_/boost.sh на шаге 4 не вылечивает проблему с шагом 6?

  2. Rumata пишет:

    @pine как ни странно, но нет. При этом если убрать чмод из boost.sh, то тоже не будет работать. Я ХЗ почему. :-(

  3. littre пишет:

    Rumata, а почему не хочешь прописать свои команды в какой нибудь автозагрузочный скрипт?
    да
    заодно, открою тебе секрет, почему на scaling_max_freq слетают после перезагрузки права
    просто он динамически генерируется при загрузке все в тех же стартовых скриптах
    так что красивее всего ему давать права именно в них же
    надо только найти где
    я свое автомонтирование –bind делал как раз там, где это делает сама система – в rcS-late

    так что и ты поищи аналогичный стартовый скрипт
    команда grep ищет файлы по содержимому
    ну или по простетцки – в mc тоже мона…

    удачи

  4. littre пишет:

    “@pine как ни странно, но нет. При этом если убрать чмод из boost.sh, то тоже не будет работать. Я ХЗ почему. :-(”

    объясняю
    777ые права – это в принципе слишком большие права – это ты ему еще и на исполнение даешь. а надо только чтение и запись всем – это 666 (да, да именно так)))) но дъявольщина тут ни при чем, тут это число в битах так выглядит..

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

  5. Rumata пишет:

    @littre спасибо за науку! На досуге разберусь.

  6. ilya пишет:

    Desktop Command Widget пишет “invalid command” :oops:

  7. Rumata пишет:

    @ilya проверь правильность пути к boost.sh а так же в самом файле что знак ` стоит правильный

  8. ilya пишет:

    как я понял boost.sh надо в блакноте создавать так ведь?

  9. revazrezo пишет:

    простите, а можно просто установочный файл сделать, в котором и виджет будет и все что надо, чтобы в результате после установки мне оставалось бы только частоту при необходимости переключать? или это технически невозможно? стремаюсь я команды в х-терминале писать, не умею и не врубаюсь потому что…

  10. Rumata пишет:

    @ilya я это в МС делал. Но можно и в блокноте.
    @revazrezo в принципе можно. Если руки дойдут – сделаю.

  11. revazrezo пишет:

    @Rumata: было бы круто…!

  12. ilya пишет:

    chmod a+x /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

    a=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`

    if [ $a = 900000 ]
    then
    `echo 599000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
    echo 600Mhz
    else
    `echo 900000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
    echo 900Mhz
    fi

    это правельно? :?:

  13. DLINNY777 пишет:

    как правильно прописать путь к boost.sh
    что означает ~
    такой вариант правильный-
    \home\user\MyDocs\boost.sh
    если файл лежит в MyDocs

  14. star_vision пишет:

    нет правильно так
    /home/user/MyDocs/boost.sh

  15. Rumata пишет:

    @ilya Да, правильно :-)

  16. ilya пишет:

    не работает всё равно!

  17. artist33 пишет:

    простите уважаемые, но с технической точки зрения – это идиотизм. Я делаю виджет. жму на него, тело разгоняется, когда мне не надо – жму снова – частота падает. А не то ли самое происходит с пропатченым процом? Я меняю ядро – и проц 900мегов. Он и так при простое или по состоянию задачи падает до 300, до 250, до 50 мегов. Спрашивается- зачем изобретить велосипед? Имхо – бессысленый скрипт как и гаджет. разогнаный проц не всегда работает на частоте по максималке. а по уровню задачи и состоянию вычисления процесса.

  18. Rumata пишет:

    @artist33
    поясняю. Сий проц, поддерживает подобие технологии Cool’n'quiet и при малейшей нагрузке сразу даёт максимум.
    Соответственно, когда ты что-то начинаешь делать, то проц поднимает частоту до 900 сразу же -> греется и работает в неоптимальном режиме.
    Для того и виджет, чтобы он работал под нагрузкой в оптимальном режиме.

  19. artist33 пишет:

    Rumata я процитирую сначало тебя, а потом ты сам увидишь абсурд.
    “при малейшей нагрузке сразу даёт максимум – когда ты что-то начинаешь делать, то проц поднимает частоту до 900 сразу же -> греется и работает в неоптимальном режиме.” – ты где нибудь в своих словах логику видишь?
    При малейшей нагрузке – во-первых проц никак не выдаст тебе 900! Можешь тут до пены во рту со мной спорить, но ты посмотри на процессы и кто столько из них реально съедает время и частоту проца, и ты увидишь – лишь объемные приложения действительно могут потреблять ресурс вычисления. Не забывай – что герцы это не нагрузка на проц – это степень скорости вычисления одного конкретного процесса на единицу времени работы самого процессора, другими словами – если процесс требует больше и дольше процессорного времени чем другие, то приоритет и ставится соответственно. как тока процессов вычислил задачу(процесс) он сразу переходит к другой инструкции, при этом матемитически в самом процессе просчитано время оспользования и РАМ и проца. Не говори дуристику если не понимаешь как работает и вычисляет проц.
    С технической точки зрения(с точки зрения вычисления) – процеесору нет нужды говорить, вот ща мне надо 900, а потом 500, это ему пофиг. Для того и есть распределенное время обработки процессов(инструкций от проги), как и в какой последовательности что обрабатывать. Откуда допустим мне знать, вот это приложение емкое – мне надо 900, а это не емкое – надо тока 100? Зачем юзеру это знать? На то и разгон проца – я увеличиваю тактовую частоту на тот комфортный максимум для проца(если бы был не комфортный он бы глючил и не грузил бы вообще ничего), когда при требовании вычилить быстрее процесс, он по нструкции ядра и вычисляет его на нужной частоте для процесса.
    Вот и вся логика вычисления.

  20. artist33 пишет:

    Rumata, цитирую – “при малейшей нагрузке сразу даёт максимум”, ” когда ты что-то начинаешь делать, то проц поднимает частоту до 900 сразу же -> греется и работает в неоптимальном режиме.” – ты сам тут логику видишь?
    сначало внимательно изучи как вычисляет проц инструкцию(то бишь процесс), а потом уже говори. Если бы проц даже при разгоне работал в неоптимальном режиме – он бы уже глючил и не загружал приложения.
    Речь идет не об этом, а о том, что как юзер может определить , когда на приложение надо 100герц, а где 900? на это и есть ядро ОС, которое распределяет ресурсы железа. а не виджет – ткнул- стало 900, ткнул – стало 100. С точки зрения вычисления процессорного времени – это абсурд.

  21. Rumata пишет:

    @artist33
    >Если бы проц даже при разгоне работал в неоптимальном режиме – он бы уже глючил и не загружал приложения.

    Хочешь сказать, что та частота на которой работает процессор – для него оптимальная? Проц N900 разгоняли до 1700 – на фото он примотан к куллеру. Т.е. ты предлагаешь сразу ему дать максимум, при котором он будет работать и сказать, что, мол ОС виднее?
    Вообще, ОС будет давать приложению максимум исходя из чиселки, которая прописана у неё в конфиге процессора. Даже если открыть conky и потыкать пальцем по экрану, то с 250Mhz простоя нагрузка возрастёт до максимума (будь то 600 или 900)

    Кроме того, если процессор работает на 900 или 1700, это вовсе не значит, что он будет выполнять все инструкции. Суть в том, что не все приложения использую ВСЕ инструкции проца, поэтому возможен разгон.

  22. artist33 пишет:

    Rumata, вопрос насчет виджета так и остался открытым – как простому юзеру знать, где важен разгон а где нет?
    Если не углублятся во все тонкости технической стороны – как мне догадатся когда разгонять проц?
    На мой взгляд и есть ядро ОС.Ты как программер прописываешь нужное число, и ОС пашет как положено – 900! Все!Если надо, то скорость вычисления спадет сама по потреблению ресурсов. А суть виджета по твоему описанию такова – я должен точно понимать когда мне разгонять проц! Бо если я для каждого приложения буду тыкать его – какой тогда смысл в виджете? Проще уж пропатчил ядро и всё!
    Обьясни по полочкам суть виджета и желательно как он влияет на работу проца и вычисления процесса(инструкции).

  23. Rumata пишет:

    artist33, юзер понимает, что надо включить 900, когда много приложений запускает и оно начинает тормозить. Например, кучу страниц браузера.
    Почему не включить постоянно? Потому что, при малейшем использовании телефона ядро включит сразу 900 без вопросов – тут не идёт большая градация от потребления – либо минимум, либо максимум.

    А виджет именно задаёт максимум для проца. 900 герц – это всё-таки не оптимальный режим работы

  24. Zege368 пишет:

    Ротман а Можеш сделать прошивку от 500 до 900? :wink:

  25. Zege368 пишет:

    чтоб минимум 500 и мах 900?

  26. Zege368 пишет:

    http://maemos.ru/2010/04/08/overclock-manual/ чтоб этим способом разогнать? :roll:

  27. Wrangler пишет:

    подскажите плиз. “kernel-flasher-maemo”
    “POWER” и другие пакеты ставяться на прошивку третью? или это работает все на 2 только? проблема только это поставить ..

  28. Wrangler пишет:

    дайте пожалста рабочие ссылки на
    /zImage700.fiasco (700mhz)
    /zImage750.fiasco (750mhz)
    в теме и источники уже не работают