motofan logo
35 страниц V « < 32 33 34 35 >        
> 

Сборка ядра для ZN5. Compiling your own kernel, Компилим ядро. Мануал. 740 (798) MHz. Разгон

EXL
сообщение 29.11.2011, 5:26 Закрепленное сообщение!


Rock The Microphone
********

Группа: Администратор
Сообщений: 2 262
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





На днях поковырялся в ядре и немного повысил частоту работы процессора.
В целом, производительность устройства увеличилась. Это можно судить по тестам:

532 MHz:
Прикрепленное изображение

636 MHz (изначально неправильно высчитанная частота 665 MHz):
Прикрепленное изображение

740 MHz (изначально неправильно высчитанная частота 798 MHz):
Прикрепленное изображение

Кроме того аппарат начал быстрее работать в некоторых меню, к сожалению поднятие частоты процессора конечно же не помогло избавится полностью от глюков и фризов Qt оболочки. Телефон нормально запускается и работает на 798 MHz у меня уже примерно две недели. 798 MHz лишь заменяет 532 MHz при нагрузке, поэтому все утилиты типа zCpu, aiCPU и др. будут работать.
Насчёт продолжительности от работы аккумулятора точно сказать не могу, т.к имею убитый на морозе аккум. Кто протестирует и отпишется о результатах - буду рад. Но скажу точно, денёк у меня держит, если не играть и пользоваться телефоном - как телефоном.
Кроме того, немного повысилась производительность в играх и эмуляторах. Например, pscx4all стал работать быстрее, Picodrive от rock88 вообще выдаёт фуллспид, а в quake 1 разогнался настолько, что играть стало не реально. crazy.gif Подробнее можете посмотреть на видео:

[video]https://www.youtube.com/watch?v=TJLPbUxXoSc[/video]

Ядра собраны под Symbiosis X.2 - 0DR, для ZN5 РСТ 64 Mb RAM. Кто портирует под ZN5 T-mobile - буду только рад. По-моему там просто загрузчик в sbf файлах поменять... P.S. Ядро от стандартного отличается только наличием возможности работы со свапом + другая частота.
665 MHz - Скачать 0DR
798 MHz - Скачать 0DR
665 MHz - Скачать 2CR_128 (ZE 0.9)
798 MHz - Скачать 2CR_128 (ZE 0.9)

Установка - обычная прошивка sbf-файла с помощью RSD Lite.

Изменения в сорцах ядра
Файл hardhat/linux-2.6.x/arch/arm/mach-mxc91231/mxc_pm.c, функция static ap_pll_mfn_values_t opinfo[NUM_DVFSOP_INDEXES], там где комментом отмечено /* 532 */:
значение ap_pll_dp_hfs_op: 0x000000A0 меняем на ap_pll_dp_hfs_op: 0x000000E0 для 798 и на ap_pll_dp_hfs_op: 0x000000C0 для 665.

Напоминаю, что ответственность за ваши действия лежит только на вас.

Полезная информация
Температурные тесты работы процессора ZN5
Прикрепленный файл 665MHz_Kernel_062A_Symbiosis_X.2.7z   ( 1.36 мегабайт ) Кол-во скачиваний: 622
Прикрепленный файл 798MHz_Kernel_062A_Symbiosis_X.2.7z   ( 1.36 мегабайт ) Кол-во скачиваний: 780
Прикрепленный файл ZE0.9_beta_665.7z   ( 1.36 мегабайт ) Кол-во скачиваний: 1158
Прикрепленный файл ZE0.9_beta_798.7z   ( 1.36 мегабайт ) Кол-во скачиваний: 1159
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 9.9.2021, 22:45


Гуру
******

Группа: Пользователи
Сообщений: 1 097
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 370



Кстати, на тему версии ядра я уже как-то писал, что хоть мы и отталкиваемся от цифры 2.6.10, по факту это не так.
Если в кратце то там изначально montavista взял 2.6.9 или даже 2.6.8 ядро и потом заплатками догнал до 2.6.10, а после пошла отдельная история со своими заплатками в перемешку с еще какими-то. Вообще не зря папка называется 2.6.х , точной версии там не понять ибо есть заплатки от 2.6.18 даже.
Ну так вот, недавно с удивлением для себя обнаружил на линуксовой хранилке официальные заплатки для поднятия версии, правда там только до 2.6.13, но нам все пригодится. И возникла мысль поиграться и поподымать версию ядра.
Сообственно, не глядя на то, что есть смещение по строкам(montavista все таки добавляла свой код) во время применения заплатки можно заметить , что многие вещи уже добавлены, даже есть заметки аля 2006-Mar-01 Motorola Backport of 2.6.14 patch to 2.6.10 kernel.
Так что все как бы очередной раз намекает, что ядро во многих вещах имеет версию выше 2.6.10

Сообщение отредактировал fill.sa - 13.9.2021, 4:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 10.9.2021, 16:53


Rock The Microphone
********

Группа: Администратор
Сообщений: 2 262
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





Как и обещал ранее, скомпилировал это официальное мотороловское приложение для каких-то тестов IPU из дерева исходников ZN5 T-Mobile на 2CR_128, пакет ihal-R6637_G_81.11.2CR_128.tgz, директория "test".

Рецепт сборки примерно такой:

Код
cd ihal && make COMPILERTOOLPATH=/opt/toolchains/motomagx/arm-eabi2/bin PLATFORM_DIR=/home/exl/Downloads/zn5/platform BOOTSTRAP=/home/exl/Downloads/zn5/platform/Makefile.bootstrap COMPTOP=/home/exl/Downloads/zn5/ihal PROPFILES=/home/exl/Downloads/zn5/ihal/properties BUILDTOP=/home/exl/Downloads/zn5/build/ihal test


Похоже библиотека libihal.so взаимодействует с модулем ihal.ko (kernel space) и предоставляет доступ к функциям IPU (user space) прикладным приложениям. Попробуйте запустить эту штуку у себя на мобилках через Telnet, интересно что оно вообще из себя представляет и как тестирует. Там есть следующие пункты (когда приложение запущено, просто нажимайте в Telnet нужные цифры и затем Enter):

Тесты номера которых отмечены как рабочие:
1. Какой-то простой тест IPU и дисплея. Вероятно что-то связанное с отображением цветов, а потом идёт отображения двух изображений которые размещаются в RAM в сыром RAW виде и на битмап просто делается memcpy().
2. Отображение BMP-изображения, файл которого идёт вместе с приложением.
5. Некий CSC-тест, в котором похоже происходит какая-то аппаратная постобработка кадров MPEG4 QCIF (176x144) в которую входит поворот картинки и её ресайз. Вот эта штука интересно что делает, и возможно ли через неё аппаратно ускорить тот же MPlayer.
10. FG/BG-тест. Похоже просто переключение IPU на разные буферы background/foreground.
20. Какой-то BLiT-тест. Похоже какой-то аппаратный блиттинг. Интересно, что именно там происходит, на обычном десктопе подобными фичами могли быть реализованы аппаратные курсоры и т. д., а на игровых консолях всякие операции со спрайтами.

Тесты, номера которых отмечены как нерабочие:
3. Какой-то тест железки подцепленной по протоколу I²C, кажется это что-то с референсных плат тестировалось, оно там закомментировано, но в этом коде есть упоминание некого чипа "Micron MT9M111", при гуглении выяснилось что это какой-то модуль камеры. Там дёргают какие-то регистры и включают подсветку, но похоже ничего в DMA/буферы для IPU не пишут, что странно.
40, 50, 60. Какое-то чтение, запись и просмотр регистров IPU.
70. Какой-то дамп связанный с DMA.
80. Дёргают что-то по GPIO. Похоже на очистку экрана?

Из того что я вижу, можно кормить IPU в неком DMA-режиме, напрямую редактируя его аллоцированные буферы и использовать более-менее удобный API для всяких функций поворота и изменения размера.

Ant-ON, ты не видел эту штуку и вообще не тестил ihal-библиотеку в MotoMAGX? Я посмотрел исходники SDL HW, но похоже там имплементация видеодрайвера вообще это не задействует, а как-то в обход всего этого действует через mmap'ы на DMA. В MPlayer от kuznet похоже было точно так же? Похоже, что с этим прикладным API из библиотеки libihal.so можно было куда быстрее написать драйвер для MPlayer'а и SDL, эх... Посмотри пожалуйста прикреплённый файлик ihapp.c в архиве ihal_test_src.zip, дай свой комментарий насчёт этого API для IPU, почему оно не было заюзано в нативных приложениях для MotoMAGX?

ps.gif А исходники MPlayer'а у кого-нибудь сохранились? Или их так никто и не выкладывал? Интересно можно ли туда прикрутить аппаратные манипуляции с MPEG4 на этом IPU, или оно только для QCIF (176x144) там сделано. А в хедерах IPU ещё и что-то по H.264 имеется.

Файлы прикрепляю:
Прикрепленный файл ihal_test_src.zip   ( 503.12 килобайт ) Кол-во скачиваний: 4
Прикрепленный файл ihal_test_bin.tar.gz   ( 353.64 килобайт ) Кол-во скачиваний: 2
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 10.9.2021, 18:49


Rock The Microphone
********

Группа: Администратор
Сообщений: 2 262
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





VINRARUS,
fill.sa,
Имеется ли на Z6 библиотека libihal.so? Похоже она была добавлена в более поздние MotoMAGX телефоны, вроде ZN5, E8 и VE66. Не вижу её исходников в релизе Motorola для Z6 на SourceForge.

В общем, немного поковырялся, нашёл kuznet'овскую реализацию MPlayer для Z6 с использованием IPU и кодеков специально под проц MotoMAGX-телефонов. Все его наработки до сих пор доступны по адресу: http://www.inr.ac.ru/z6/

В файле z6-mplayer-2008-02-11-v1.tar.bz2 как раз всё необходимое в виде патчей и альтернативного ядерного драйвера для IPU, где kuznet пытался пофиксить какие-то остановки MPlayer'а:

Код

@@ -429,14 +430,30 @@
       printk("mxc_ipu_pp: error setting PP_PP_ROT middle output buffer\n");
       goto err0;
     }
+
+int retry = 0;
+again:
     err = ipu_update_channel_buffer(MEM_ROT_PP_MEM, IPU_INPUT_BUFFER, 0, (void*)mid->addr);
     if(err < 0) {
       printk("mxc_ipu_pp: error setting PP_PP_ROT middle input buffer\n");
+      if (retry == 0) {  
+        retry = 1;
+        __raw_writel(0, IPU_CHA_BUF0_RDY);
+        goto again;
+      }
       goto err0;
     }
+
+    retry = 0;
+again2:
     err = ipu_update_channel_buffer(MEM_ROT_PP_MEM, IPU_OUTPUT_BUFFER, 0, (void*)out->addr);
     if(err < 0) {
       printk("mxc_ipu_pp: error setting PP_PP_ROT output buffer\n");
+      if (retry == 0) {  
+        retry = 1;
+        __raw_writel(0, IPU_CHA_BUF0_RDY);
+        goto again2;
+      }
       goto err0;
     }
     if(pp_data.ic_combine_en != 0) {


Драйвер, который создаёт устройство /dev/alt_mxc_ipu_pp — это модифицированная альтернатива драйвера IPU от kuznet'а, а вот драйвер, создающий устройство /dev/mxc_ipu_pp — оригинальный мотороловский.

Но вот с библиотекой и модулем ihal не всё ясно. Похоже этот дополнительный слой API к IPU был добавлен в более поздних версиях LJ, потому что на Z6 его вообще нет. Видимо поэтому Ant-ON и не заюзал его для SDL и для порта MPlayer для ZN5. А ведь оно бы сильно облегчило жизнь.

ps.gif Камера как раз через этот libihal.so на ZN5 работает:

Код
$ arm-linux-gnueabi-objdump -x apps_acs | grep NEEDED | grep ihal
  NEEDED      libihal.so

$ arm-linux-gnueabi-objdump -x libomx.so.1.0.23 | grep NEEDED | grep ihal
  NEEDED      libihal.so


ps.gif ps.gif А ещё к вопросу о том, почему памяти для IPU у Z6 3.5 МБ, а у ZN5 -- 0.5 МБ:

Код
/* Date         Author      Comment
* ===========  ==========  ==================================================
* 5-Jun-2006  Motorola    Initial revision.
* 3-Jul-2007  Motorola    Compliance issue fix
* 15-Jul-2007 Motorola    Support setting of ADC serial interface bit width
* 24-Jul-2007 Motorola    Compliance issue fix
* 15-Oct-2007 Motorola    Free IPU 3M reserved RAM           !!! <================================================== ВОТ ЗДЕСЬ
* 10-Mar-2008 Motorola    Add three interface functions
* 07-May-2008 Motorola    introduced ipu_disable_channel_no_delay
*/


Это в хедере ih.h ядерной части ihal (в модуле ihal.ko).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ant-ON
сообщение 11.9.2021, 6:30


Гуру
******

Группа: Разработчики
Сообщений: 1 329
Регистрация: 22.8.2005
Из: Екатеринбург
Пользователь №: 49 304
Модель телефона: N5 / Defy / VE66
Прошивка: CM12 / CM10 / PM2
Финалист Конкурса 2010

Рейтинг: 1790



EXL,
Да, по сути это это обертка для того, что сейчас используется в SDL и MPlayer. Функционал +- такой же, но в более человеческом виде)

ps А по поводу доступности наработок... Это сайт Институт Ядерных Исследований РАН, там всё до сих пор в стиле 2000х smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.9.2021, 12:51


Термоядерный
********

Группа: Пользователи
Сообщений: 3 380
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
Радиоактивные осадки...



Рейтинг: 1135



Цитата(EXL @ Вчера, 21:49)
* Имеется ли на Z6 библиотека libihal.so?

Я ненашол.
Цитата(EXL @ Вчера, 19:53)
* Попробуйте запустить эту штуку у себя на мобилках через Telnet, интересно что оно вообще из себя представляет и как тестирует.

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

Цитата(EXL @ Вчера, 19:53)
* Тесты номера которых отмечены как рабочие:

1.Цветные полосочки заменяются клубничкой с лимоном и кокосиком.
Enter
Пляж.
Жолтый портал вертикальный через пляж.
2. Какой то снегур с долгим клювом под пальмой.
3. Выход.
5. Стадион с мячом который играет людьми.
10. Серый экран. 2й запуск показал Bus error. 3й повесил терминал, хотя подсветка на экране гасла и засвечивалась как обычно. Интересно шо если ещо раз запустить телнет он вроде работает, но вешается во время выполнения ps.
20. То самое шо и 10.
80. Хз.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 12.9.2021, 17:41


Rock The Microphone
********

Группа: Администратор
Сообщений: 2 262
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





Цитата(Ant-ON @ 11.9.2021, 13:30)
* EXL,
Да, по сути это это обертка для того, что сейчас используется в SDL и MPlayer. Функционал +- такой же, но в более человеческом виде)

Ясно, спасибо. Странно что эта библиотека и модуль отсутствуют в первых MotoMAGX. Видимо там не так много приложений в стандартной прошивке использовали IPU. Возможно только камера.

VINRARUS, Ясно, я вот тоже не нашёл упоминания libihal.so и ihal.ko в опубликованных исходниках Motorola Z6 на SourceForge.

Отлично, что это приложение работает, значит эти API не висят мёртвым грузом, а реально используются в той же камере. То что оно примитивное, это понятно, это не бенчмарк а проверка того, что IPU корректно работает. Похоже оно рисует в какой-то специальный буфер, который не зависит от буфера WindowServer в Qt или даже /dev/fb/0, видимо как раз размер этого буфера и откусывается от RAM и разработчики Motorola позже посчитали, что в Z6 они откусили от RAM много. Наверное, если никаких багов не будет, можно смело ставить там то же значение, что и у ZN5 -- 0.5 MB. Дополнительные З MB для 64 MB RAM в Z6 далеко не лишние. Ты, кстати, проверял меняется ли выхлоп команды free на ядре где fill.sa уменьшил память у IPU?

ps.gif По поводу тестов, из написанного тобой не совсем понял, есть ли там какие-то анимации или эффекты накладывания/перемещения изображений? Или лишь статичные картинки?

Эх, раскопать бы этот API не сейчас, а 12 лет назад! Там всё по сути с открытыми исходниками: либа, модуль, тестовый пример с использованием API...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 13.9.2021, 2:19


Гуру
******

Группа: Пользователи
Сообщений: 1 097
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 370



Цитата(EXL @ 10.9.2021, 19:49)
* Имеется ли на Z6 библиотека libihal.so? Похоже она была добавлена в более поздние MotoMAGX телефоны, вроде ZN5, E8 и VE66. Не вижу её исходников в релизе Motorola для Z6 на SourceForge.

Все верно, появилось оно уже на lj6.3 и на z6 соответственно нету.
На з6 вообще много чего нету, вернее оно есть но как правило все жестко прибито в коде, а уже начиная с lj6.3 более гибки инструменты появились, функции разные которые можно подергать что-то и тд.
Как для телефона, то это пофигу, а вот для смартак это хорошо, можно что-то уже выполнять свое на основе этих функций.

Цитата(EXL @ 10.9.2021, 17:53)
* . Какой-то тест железки подцепленной по протоколу IІC, кажется это что-то с референсных плат тестировалось, оно там закомментировано, но в этом коде есть упоминание некого чипа "Micron MT9M111",

да, i2c шина как раз в камере задействована, вроде еше пару каких-то элементов связывает типо тв выхода на зине.

Сообщение отредактировал fill.sa - 13.9.2021, 2:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 13.9.2021, 4:15


Термоядерный
********

Группа: Пользователи
Сообщений: 3 380
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
Радиоактивные осадки...



Рейтинг: 1135



Цитата(EXL @ Вчера, 20:41)
* По поводу тестов, из написанного тобой не совсем понял, есть ли там какие-то анимации или эффекты накладывания/перемещения изображений? Или лишь статичные картинки?

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

Сообщение отредактировал VINRARUS - 13.9.2021, 4:16
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 14.9.2021, 15:52


Гуру
******

Группа: Пользователи
Сообщений: 1 097
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 370



По случаю пока копнул, опишу чтобы не забылось.
Как происходит загрузка ядром размера и адреса памяти для IPU.

-Если включен параметр CONFIG_MOT_FEAT_IPU_MEM_ADDR, то последовательность следующая.
Первоначально в файле https://github.com/fillsa/motomagx-kernel_l...h/arm/mm/init.c задается переменная ipu_mem_size и размер для нее в 2Мб, причем изначально на lj6.1 там было 5Мб , а также для ауры свой размер равный 9М.

Далее по коду функция static int __init ipu_mem_setup(char *str) может читать параметры ядра, куда можно передавать свои значения "ipu_mem=" размера и адреса памяти для IPU.
Что собственно успешно и делается на lj6.1, а вот на lj6.3 уже не передаются в параметрах ядру такие значения, т.е. берутся изначальные заданные 2Мб в переменной ipu_mem_size и адрес высчитывается так ipu_mem_addr = PHYS_OFFSET + SDRAM_MEM_SIZE - DSP_MEM_SIZE - ipu_mem_size;

Далее уже в драйвере IPU https://github.com/fillsa/motomagx-kernel_l...s/mxc/ipu/ipu.h появляется новая переменная которая присваивается нашему размеру
#define MXCIPU_MEM_ADDRESS ipu_mem_addr
#define MXCIPU_MEM_SIZE ipu_mem_size

-Если наоборот параметр CONFIG_MOT_FEAT_IPU_MEM_ADDR не включен, то
сразу из файла соответствующего нужной машине, например для scma11 https://github.com/fillsa/motomagx-kernel_l...d-scma11phone.h задаются переменные
#define MXCIPU_MEM_SIZE (SZ_4M + SZ_1M)
#define MXCIPU_MEM_ADDRESS (PHYS_OFFSET + MEM_SIZE)
Кстати тут же стоит заметить интересную помету в этом файле
/*!
* Size and physical start address of IPU buffer memory
* 5MB is a safe value for 2 MP camera support.
* The exact size depends on the hardware configuration.
*/

И дальше по коду все действия идут уже с MXCIPU_MEM_SIZE и MXCIPU_MEM_ADDRESS . Т.е. если что-то и искать то уже грепать эти значения в /linux-2.6.x/drivers

Сообщение отредактировал fill.sa - 14.9.2021, 16:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 15.9.2021, 1:11


Rock The Microphone
********

Группа: Администратор
Сообщений: 2 262
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





fill.sa, Интересно нафига AURA столько памяти для IPU... Понимаю, там по идее у дисплея разрешение больше чем у всех остальных MotoMAGX-телефонов, т. е. адресуется 480x480 вместо 320x240. Да и камеры там нет крутой.

Unreal_man, ты не помнишь fill.sa собирал тебе SDL HW под AURA?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Сборка ядра для ZN5. Compiling your own kernel, Компилим ядро. Мануал. 740 (798) MHz. Разгон · ZN5 · Forum
 

35 страниц V « < 32 33 34 35 >
Ответ в темуСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.9.2021, 20:19

Форум живёт: