FB на Android
Проблема с фреймбуфером на android - ни одна нормальная програма не работает с ним.
Система собрана в chroot, работает с образа ext2 c -o loop на карте памяти. Там собирается быстрее, чем в эмуляторе.
Почти всё выдаёт в консоль VSCREENINFO: Operation not permitted.
Вот вывод mplayer
VO: [fbdev] 176x144 => 192x144 BGR 16-bit Can't put VSCREENINFO: Operation not permitted ФАТАЛЬНАЯ ОШИБКА: Не могу инициализировать видеодрайвер!
C иксами и fbida что-то похожее. sdl не работает
В dmesg ничего не вываливается. При cat /dev/urandom>/dev/fb0 заполняется шумом, как и положено.
fbv выводит картинку только на доли секунды. VNC использовать невозможно - слишком медленно работает.
После обновления заработал mplayer - показывает всё без проблем. Xfbdev и fbv показывают изображение на доли секунды, только если в этот же момент что-то рендерится на андройде (например, при воспроизведении видео mplayer'ом с -vo x11, сопровождающемся обеовлением изображения в терминале, видноикаждый 5ый кадр) и при закрытии окон. Хотя принципы управления фреймбуффером в mplayer и fbdev очень похожи (сравнивал исходники).
- Для комментирования войдите или зарегистрируйтесь
.
Вы забыли упомянуть, что собрали Gentoo в chroot на Android.
а эта строка - это просто подпись
Сразу написать не успел -
Сразу написать не успел - торопился.
Локальный оверлей растёт
После поломки поменяли нутро
После поломки поменяли нутро телефона, пересобрал 2 раза mplayer с добавлеными use'ами для кодеков и при попытке воспроизвести видео -vo fbdev заработал.
Локальный оверлей растёт
А можно подробнее как это
А можно подробнее как это устанавливать на телефон?
И, кстати, на какой телефон?
Acer beTouch e110
Телефон Acer beTouch e110
Для установки я использовал образ ext2 на карточке памяти и stage3 для armv5.
При выборе stage и fs можно руководствоваться /proc/filesystems и /proc/cpuinfo.
Ещё перед началом нужно убедиться, что для этой модели тела есть root-експлоиты и возможность chroot.
Для образа файловой системы нужно указать достаточное количество инодов (стандартного на 2 гб может не хватить).
Дерево и временный каталог portage лучше хранить на отдельных фс т. к. скорее всего не будет журналирования.
Установка простая: монтируем образ, распаковка stage3, проверка, что всё работает и запись всего остального.
Если при chroot будет что-то вроде illegal instruction, надо взять другую архитектуру. Желательно создать скрипт для монтирования всего.
Чтоб смонтировать образ с -o loop, возможно прийдётся сделать симлинки с /dev/block/loop* на /dev/loop*.
Ещё не помешает своп на карте, но желательно установить /proc/sys/vm/swappiness в 0, чтоб не сливал системные процессы в своп. Иначе будет невозможно дозвониться.
В make.conf нужно указать PORTAGE_NICENESS=19. Не помешает и ccache.
Вместо иксов (они не запустились из-за fb) использую VNC, но он очень тормозит. Сейчас думаю, как сделать быстрые и рабочие дрова для них.
При компиляции у меня часто вырубается карта памяти (8G) - bus error. Обычно отключает отдельные участки. Раньше на медленной карте 2G такого не было. Bluez под chroot'ом работает, а с dbus проблемы. Гимп работает, audacity собрался и запускается, но при записи/воспроизведении виснет. Чтобы работала alsa, а оно там однопоточное, нужно запретить андройду доступ к /dev/snd/* и fuser'ом прибить всё, что его использует. Только при попытке запуска звука с андройда будет виснуть, по этому не забываем вернуть обратно.
Локальный оверлей растёт