Pull to refresh
21
0
Dmitriy Beykun @RZK333

Linux Engineer

Send message
ondemand можно по-разному настроить, у него много параметров, вот пример linux-sunxi.org/Cpufreq 300-1000 с большим sample-rate.
у freescale это главная киллер-фича :)
это и есть исходники от одного из участников linux-sunxi, просто в основную ветку еще не встроенны, получили неделю назад всего.
тут противоположенная ситуация, он просто врубает максимум по первому требованию после idle.
по умолчанию кажется 100мгц, могу путать.
В дефолтной прошивке это тоже можно исправить, в ядре «полноценный» cpufreq-ondemand с мордой в sysfs, можно хоть навсегда его закрепить на 100МГц, было бы желание. Без настройки он по первому же чиху врубает максимальную частоту, что естественно не совсем правильно для мобильного устройства.
Я просто оставлю это здесь:
lichee-3.3-a31-dev kernel sources.
Благодарите allwinner за заботу о коммьюнити и слив сорцев, А10 это спасло так, что до сих пор, через полтора года после релиза, новые продукты появляются.
Периметр (ign, wiki), Тургор (он же The Void, ign, wiki).
лучше всего вам ответит вот этот кадр www.youtube.com/watch?feature=player_detailpage&v=W-HCb55X_XU#t=1954s плюс послушайте что Luc говорит про это, там разговор идет об опенсорсности R-Pi.
в том, что она включает в себя достаточно много математики и понимания внутренней работы oGL. собственно вся идея lima — сниффить что дергает оригинальный драйвер/реверсить оригинальную библиотеку и написать на основе этого свою, уже открытую.

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

если все еще интересно, посмотрите эту презентацию самого автора Lima — libv, проведенную на FOSDEM 2013 www.youtube.com/watch?feature=player_embedded&v=W-HCb55X_XU
в этой презентации описывается состояние открытых драйверов для разных платформ. у Lima еще самая лучшая ситуация, у PowerVR например унифицированный шейдерный движок, в котором черт ногу сломит, у Broadcom вообще свое arm ядро внутри с DSP-like расширениями, загружающее из юзерспейса только прошивку и отдающее кадры напрямую в фреймбуффер (т.е. разобрать общение с ним будет еще более забавной задачей, потому что кроме собственно матана oGL нужно еще раздуплится как они его переводят в матан своего arm ядра/dsp, в прошивке вообще неизвестной смеси нескольких архитектур и т.д.). в общем, всячески рекомендую посмотреть.
наверное вы что-то путаете, Mali мы в linux-sunxi всегда собирали с исходников, а чувак из Allwinner нам давал библиотеки из своего SVN репо от ARM. собственно по этому к нам пришел libv, он занимался Lima на платформе от telechips под android, в итоге ему это надоело и он теперь использует наш рабочий сетап с Mali kernel драйвером и пишет свою юзерспейс либу. как-то так.
ниже ответил, там есть одна тонкость, нужны данные о реализации в SoC, по каким адресам в ОП экспортированны ядра Mali (их всего три типа, geometry processor, pixel processor и MMU), это у них называется platfrom-setup (очевидно) и без этого драйвер естественно не заработает. некоторые недобросовестные производители не дают данные об этом и всем лениво реверсить драйвер на предмет этих настроек, в итоге берут что есть.
еще раз.
kernel драйвер свободен, потому что GPL и ARM от этого не отвертится. юзерспейсовые драйвера для X.org тоже свободные, потому что они просты до ужаса (тупой DRI2 ctrl+c/v из мануала). Лицензируется реализация стандарта oGLES.

Эта реализация представляет собой открытые хедеры от Khronos, одинаковые для всех, плюс, закрытая библиотека, занимающаяся работой с kernel драйвером, сам kernel драйвер экспортирует в систему ТОЛЬКО базовые вещи в духе «добавить работу», «удалить работу», «отсортировать очередь». Он вообще даже не в курсе что такое oGLES.

Вернемся к закрытым библиотекам, они занимаются тем, что экспортируют набор oGLES функций, которые вы используете в своей программе, эти функции занимаются тем, что используют этот открытый kernel драйвер, тем самым используя железо. в общем, это напоминает frontend-backend структуру. фронт у вас oGLES функции, бэк — ядрённый драйвер. вот и вся структура, она одинакова везде.
ниже вам ответил, habrahabr.ru/post/170527/#comment_5928363
если вы не понимаете, что там написано — пожалуйста, просто не обещайте oGLES, это очень сложная тема, которую компаниям, производящим тысячи тысяч девборд в месяц бывает сложно решить. как вам например ODROID, которые почти год добавились от ARM разрешения на использование бинарных библиотек? сравните себя с официальным партнером samsung.
пожалуйста, не путайте kernel driver, userspace X11 driver для DRI2/DRM, и OpenGLES библиотеки, предоставляющие связь между вашей программой и собственно самим kernel драйвером (дергающие за место вас его ioctl'ы, выполняющие промежуточные вещи и т.д.).

первые два — свободные, последний — стоит бешеных денег и бинарный. второй не работает без третьего. Lima заменяет только третий, она работает с оригинальным kernel драйвером.

бинарные драйвера — это когда у вас .ko от производителя для жестко заданной версии ядра и блобы в юзерспейсе, вот это конец света.
здесь — ситуация другая.
Eсли это Allwinner A10, который постоянно в ритейле зачем-то называют Boxchip, хотя Allwinner отделились от них года три назад — то вот вам результаты кучи бенчмарков linux-sunxi.org/Benchmarks
Например, сравните скорость работы OpenSSL с и без FPU.

tl;dr: A10 не самый медленный процессор, если его использовать с умом.
Некоторые всерьез этого не понимают — ru.wikipedia.org/wiki/Contiki

Оно умеет делать GUI по VNC, SQL и браузер, работая на AVR…
да, IRC тот же. #arm-netbook@freenode.
arm-netbook уже достаточно давно не является нашим ML, разработка ведется в linux-sunxi на google groups.

проблема с подходом в том, что наш SoC не самый удачный SoC в этом мире — и когда к нам придут десятки сотен нубов, не понимающих тонкий ARM мир — все будет печально, более чем.

поддержка от него вполне очевидна — предоставление устройств, я не собираюсь покупать его планшет, что бы фиксить баги в нашем софте при работе с ним, а они будут. по русски это называется спонсорство.
В IRC и на wiki он присутствовал и ему объяснили достаточно точно, что нашей помощи без помощи с его стороны он не дождется, с таким подходом. Денег он себе уже нашел www.indiegogo.com/pengpod, так что дело осталось за малым. Может что и выйдет.

Тем временем я почти набил linux-sunxi.org/Benchmarks — если кому-то интересна сухая производительность A10 — добро пожаловать.

Information

Rating
Does not participate
Location
Токио, Токио, Япония
Date of birth
Registered
Activity