Pull to refresh

Comments 67

Есть ли похожие патчи для других моделей? Например на Optimus One как с этим вообще обстоит дело?
И есть ли похожие системы на нетбуках/ноутбуках и модули ядра?
Для Optimus One есть ядро Goldenleaf специально заточенное под энергосбережение. У меня телефон с ним стал на день дольше работать.
_http://forum.xda-developers.com/showthread.php?t=1227682
Да чувак круче чем раз в год выключающие свет на час.

С надеждой ждёт релиза для motorola defy
А что на defy моторола открыла загрузчик?
Интересно, можно ли это реализовать на HTC аппаратах?
А у вас телефон с google-talk video-chat? Написано, что это баг гуглток.
>> Но беглое изучение ядра Linux показало, что в операционной системе имеется только поддержка IDLE.

Баг гуглток? Не, не видел…
Про баг речь идет при уже пропатченном ядре, а человек интересуется возможен ли такой патч на НТС.
очевидный бардак в разработке android kernel. Зато ядра каждые пол года. Подозреваю очевидную вещь — у руля фанатик. Как бы не было сложно синхронизироваться — каждые пол года новое ядро это зло! Если бы я руководил разработкой — раз год, раз или даже раз в два. Это экономия времени для вендоров типа самсунга… А значит более быстрые релизы свежих версий. Ничего такого феноменального в ядре каждые пол года не происходит, а если и происходит — бекпорт.
android kernel? Пол года? По сути можно ядро хоть каждый день обновлять модули главное иметь, обновление ядра дает повышение качества работы и увеличение возможностей. Ради примера например со старыми ядрами десктопная ось запускается в 1.5 раза дольше.
скорость запуска влияют инит скрипты. Зато перфоманс проседает заметно начиная с 28 версии. Особенно заметно в тройке. Еще про abi не забываем. В итоге профита ноль, а накладные расходы колосальны.
У гугла порой не хватает жесткости руководства. Идут на поводу детским доводам девелоперов, молодая компания. Если бы я был Рубином я бы пол отдела разогнал за такие грабли на мобильном устройстве. Ну или лишил премий.
Думаю, их цель — не сделать идеальную мобильную систему, а наводнить рынок по возможности дешёвыми устройствами под управлением Android.
Вы вообще в код смотрели?
Там куча платформо-зависимых изменений, тут Google вообще не при делах, такими вещами должен заниматься _производитель_. Модуль, добавляющий режим DEEP IDLE сводится к добавлению следующих атрибутов в sysfs: enabled, idle_stats, reset_stats и version.
Интересует нас только первый пункт, остальное это отображение статистики по времени, которое было проведено в idle, сброс этой статистики и версия модуля соответственно.
А вот запись единицы в файл атрибута enabled (echo «1» > enabled) как раз и врубает наш deep idle, фактически просто выставляя значение переменной deepidle_enabled. Модуль экспортит функцию bool deepidle_is_enabled(void) для получения значения этого флага. В зависимости от значения этого флага при попытке перехода системы в idle при определённых условиях может быть активирована функция s5p_enter_didle(true), которая является абсолютно _аппаратно-специфичной_. Она уже порождает выполнение кучи низкоуровневого кода.

К чему вся эта басня? А к тому, что это именно производитель конкретного железа не озаботился о данной проблеме.
И для тех, кому было интересно, можно ли этот патч адаптировать для смартфонов на других процессорах, поясню: нет, нельзя. Данный патч специфичен для SoC Samsung S5PV210. Это значит что данный патч будет работать не только на Nexus S, но и на любой другой железке, построенной на том же процессоре.
Строго говоря, есть высокая вероятность того, что у других процессоров есть аналогичные возможности, аналогичным образом не использующиеся и возможен аналогичный (но другой) патч для них.
А объясните нубу, пожалуйста — изменения в ядро они вносятся отдельно? Как вообще это происходит? Надо заново перепрошивать телефон?
Конкретно в данном случае, изменения внесены непосредственно в низкоуровневую часть ядра, которая всегда в него жёстко «вкомпиливается». Так что да, нужно перепрошивать телефон.
В случаях, когда нужную функциональность удаётся добавить с помощью модуля ядра, при использовании рутованного телефона перепрошивка является не обязательной, можно просто подгрузить новый модуль с помощью insmod/modprobe.
Если еще помните, укажите revid'ы этих реальных функциональных изменений. Потому что попытка чтения commit log'а показывает, что 90% изменений — типично script-kiddies'овские штучки типа «newer glitch logo» да патчи каких-то левых для ядра скриптов.
Смотрел я вот этот коммит: github.com/Ezekeel/GLaDOS-nexus-s/commit/0ad0e3261895844e9d7983c3332ec23b6d039978
Раскручивать изменения следует от файла drivers/misc/deep_idle.c, как раз там экспортятся sysfs атрибуты, через которые всё это включается. А далее смотрим кто использует функцию deepidle_is_enabled, думаю дальше разберётесь и всё сами увидите.
вот только это устройство nexus s. И софтовая часть за гуглом. Самсунг им присылает хардварные ревизии, а они там уже извращаются.
вот только это устройство nexus s. И софтовая часть за гуглом. Самсунг им присылает хардварные ревизии

Нет, нет и ещё раз нет.
1. S5PV210 — это application процессор, применяемый не только в Nexus S. Он может применяться ещё в миллионе различных железок, посему Nexus S в данном случае лишь частный случай.
2. Низкоуровневая софтовая часть за тем, кто точно знает как эта железка устроена. В данном случае это Samsung, что подтверждают копирайты в коде:
Copyright © Samsung Electronics Co. Ltd

3. Google ожидает получить _готовый_ BSP Задача Google в данном случае, сводится к допиливанию именно пользовательского функционала, но никак не кода для работы с железом.
Спорить не буду, но копирайту там может быть потому что основанно на ядре к galaxy S?
Вот они, плюсы открытого ПО — то какой-то австралийский врач, никогда не обучавшийся программированию, пишет планировщик для ядра, который уделывает по производительности существующие аналоги, то теперь вот неизвестный разработчик, о котором известен лишь ник на форуме, уменьшает энергопотребление андроида на 55%, чего не смогли добиться огромные корпорации Гугл и Самсунг.
Ну так, они это планировали подать через полгода как адовую фичу, а тут такая подлянка.
Да вообще не факт что хоть как-то планировали, скорее всего, никто просто совершенно не заморачивается на настоящей оптимизации системы с т.з. требований, предъявляемых к мобильным телефонам. Там много вопросов на самом деле.
Современным программистам некогда заниматься оптимизацией, а временами и незачем. От них требуют быстрее, выше, мощнее, глубже, и всё это в очень сжатые сроки. А железо позволяет не заморачиваться и писать неэффективный код.

ИМХО единственные программисты, которые что-то да знают о оптимизации — это embedded(тот самый, адский, с считаными килобайтами RAM и flash) и highload, где только наращиванием вычислительной мощи не обойдёшься.
Думаю, что скорее всего некогда. Это вопрос собственно не к программистам ведь, а к проект-менеджерам. На самом деле, с этой стороны подход Apple мне больше нравится — пусть немного, но лучше отлажено. Хотя косяки и у них конечно есть, просто не думаю что у них дело в чем-то простом оказывается.
Тоесть то что гугл не осилил элементарное, причем просто даже не реализовал уже написанное, это по вашему плюсы опен соурса?
В закрытых исходниках тупизны столько же, мы просто её не видим.
Думаю даже больше, опасно же выкладывать если кто-то смотрит :)
в закрытых исходниках тупака и быдлокода в среднем ощутимо больше, чем в открытых проектах. Там тупак и быдлокод хоть как-то фильтруют.
Я думаю, тут всё упирается в то, что Android должен ровно работать на огромном количестве железа. А такие тонкие манипуляции с железом не всегда гладко работают.
Интересно, речь про выигрыш в «самолетном режиме» (когда все радиожелезки выключены), а дает ли deep idle какой-то видимый выигрыш при стандартном режиме использования когда сотовая связь и интернет включены?
Видимо, что-то может. И это что-то немалое.

Обычный режим — это с активным радио, но без мультимедиа, так что выигрыш тоже должен быть.
А что вообще может выключится в смартфоне при проигрывании мультимедиа? А если это будет еще и обычный режим работы, с активной радио-частью?
Всё. распаковали из MP3 100мС звука, что заняло 30 мС процессорного времени. Передали в буфер звуковой карты. Следующие 70 мС вообще можем не включаться. Это если на пальцах,
Протестировал ли Ezekeel нормальную работу с телефонией, Wi-Fi и голубым зубом при входе и выходе в/из DEEP IDLE, или только музыку повоспроизводил?
Как же хочется чуть более технических и чуть менее «журналистских» статей, если уж кто-то скомпилировал новость и 10500 страниц обсуждения на xda-developers…

Лично знаю, что инженеры самсунга и htc всех корейских собак съели на энергопотреблении и его оптимизации. Значит либо есть какая-то серьезная причина этот режим не включать, либо это такой косяк, что ОЙ.
Судя по количеству багфиксов к этому патчу, а их уже 14 штук, разработчик тестирует это, и скорее всего не один.
Судя по количеству багфиксов, дело очевидно не столь простое, и ему, видимо, еще далеко до статуса production. Это я к коментариям наверху «почему сразу/до сих пор не сделали?»
Причина… Ну, например, «мы выпустили новый смартфон в 2,5 раза блоее эффективным энергопотреблением!!!», а всего-то пропатчат ядро в паре строк
Такое бывает только в сказках :)
То, что инженеры съели собак, еще не значит, что им хватает времени заниматься этим. Это раньше платформа не менялось годами, а новые модели выходили нечасто. Последние же 2 года идет гонка платформ, да и на каждой платформе успевают выпустить аппаратов не меньше, чем раньше. Плюс, возможно, действительно, прием «туз в рукаве» — к концу жизни платформы выпускают какой-нибудь новый аппарат на ней, с более оптимизированным софтом, и выкачивают таким образом еще немного денег из старого железа.

Неспроста же практически всегда у кастомных прошивок энергопотребление ниже, чем у стандартных. У НТС вон, в стандартных прошивках было что-то (не помню что именно, то ли скрипт, то ли модуль ядра), запрещавший понижать частоту процессора. Убираешь его — сразу дольше работает, причем проблем никаких не возникает.

Багфиксы там, с виду, не то чтобы фиксы, а скорее тюнинг-оптимизация, на уровне «а что если не просыпаться на этот сигнал, а на этот наоборот, просыпаться?». Да и автор решил похоже привлечь народ для массового тестирования.
Отличное ядро) сижу на нем) спасибо Ezekeel!
Т.е. у вас Nexus S с патчами от Ezekeel? Тогда расскажите хоть насколько выросла автономность в реальных условиях. Сколько стал жить телефон?
дольше стал жить, на пол дня. при активном использовании держит 1.8 дня
А какой режим работы?
3g\edge, Wifi, игры, музыка, продолжительность звонков?

P.S. у меня Nexus One, на MIUI он живет 3 суток с постоянно включенным EDGE, +wifi около 30 минут в день. + 2 часа разговоров в день.
Да, конечно, синхронизация включена, есть 1 виджет погоды от yr.no на 7 дней. Почта приходит сразу.
Всегда включен EDGE и синхронизация. 5 часов переписки в WhatsApp, Twitter, почта, 4 часа Wi-Fi.
не наблюдается, только если играться с UV.
У меня на стоковых значениях CM иногда наблюдается, особенно на smartassV2 и это крайне печально.
Прошил GLaDoS, вроде как более отзывчиво стало, что удивительно. Потестируем время работы.
Вот, небольшой тест
До разрыва это стоковое ядро CM7.1 nightly, после разрыва это glados. Действительно наклон немного меньше :) Из-за чего такой дроп — не знаю. И да, Wi-Fi был включен, не знаю почему он не отображается до разрыва.

i.imgur.com/4cdhT.jpg
что вы называете разрывом?
Ну там на графике посередине разрыв
Скажите, а как заменяется ядро на телефоне?
Есть ли туториалы по этому?
Дело не в gtalk. Неправильный гтолк не даёт ядру войти в этот режим, но если этого режима нет, то правильный гтолк не поможет.
как тогда проверить есть этот режим или нет?
Sign up to leave a comment.

Articles